Помощь в написании функции Woocommerce
-
Помогите, пожалуйста, с решением проблемы.
На сайте стоит woocommerce.
Есть кастомный плагин, который делает «анализ записи голоса».
Есть товар, который продаётся по штучно в качестве доступа к функционалу этого плагина.Т.е. покупатель приобретает товар, затем у него в личном кабинете появляется то количество доступных «анализов голоса», которое он приобрёл.
Количество купленных или оставшихся «анализов голоса» хранится в таблице wc_customer_lookup
Проблема: если покупатель приобретает товар впервые, то количество увеличивается, если же он делает это повторно, то количество не прибавляется к оставшимся, а просто обновляется на приобретённое количество.
Функция обновления количества:
function add_activations($order_id, $order_status_transition_from, $order_status_transition_to) { global $wpdb, $table_prefix; if ( !in_array($order_status_transition_to, ['processing', 'completed']) || ($order_status_transition_from == 'processing' && $order_status_transition_to == 'completed') ) { return; } $order = wc_get_order($order_id); $activations = 0; foreach ($order->get_items() as $item) { if (in_array($item->get_product_id(), $this->activation_product_ids)) { $activations += $item->get_quantity(); } } if ($activations > 0) { $user_id = $order->get_user_id(); if ($user_id) { $result = $wpdb->query(" UPDATE <code>" . $table_prefix . "wc_customer_lookup</code> SET <code>media_recorder_activations</code> = <code>media_recorder_activations</code> + " . (int) $activations . " WHERE <code>user_id</code> = '" . $user_id . "' "); } } }
- Тема «Помощь в написании функции Woocommerce» закрыта для новых ответов.