Пользовательский столбец с метаданными заказа в списке заказов администратора WooCommerce HPOSPhp

Кемеровские программисты php общаются здесь
Ответить Пред. темаСлед. тема
Гость
 Пользовательский столбец с метаданными заказа в списке заказов администратора WooCommerce HPOS

Сообщение Гость »


Из-за обновления плагина woocommmerce исчез фильтр, с помощью которого показывался носитель/источник. Я каким-то образом извлекаю столбец и среду/источник обратно, но мои данные в нем не заполняются. Код полностью оптимизирован для HPOS, и мой код:

Это часть, в которой показан столбец:

публичная функция source_medium_column($columns) { $new_columns = (is_array($columns))? $столбцы: массив(); $new_columns['MyPluginOne_source'] = __('Источник/Средство', 'wp-MyPluginOne-woocommerce'); вернуть $new_columns; } Эта часть показывает данные для носителя/источника, но эта часть не работает:

публичная функция source_medium_value($column, $order_id) { $order = wc_get_order($order_id); if ($column == 'MyPluginOne_source') { // Сначала проверяем новый метаключ $source = $order->get_meta('MyPluginOne_woo_order_source', true); если ($ источник) { эхо $источник; возвращаться; } // Если новый метаключ не найден, попробуйте устаревший $source_medium_deprecated = $order->get_meta('MyPluginOne_woo_single_source', true); если ($source_medium_deprecated) { эхо $source_medium_deprecated; возвращаться; } // Извлекаем источник/носитель по запросу. if (!$source && isset($_GET['MyPluginOne_woo_fetch_sale_source'])) { error_log('Извлечение источника/канала для заказа' . $order_id); $post_date = get_the_date('Г-м-д', $order->get_id()); $start_date = date('Г-м-д', strtotime($post_date . '- 5 дней')); $end_date = date('Г-м-д', strtotime($post_date . '+ 5 дней')); // Получаем исходники из ga4. if (method_exists('WPMyPluginOne_Utils', 'get_ga_mode') && 'ga4' === WPMyPluginOne_Utils::get_ga_mode()) { $stats = $GLOBALS['WP_MyPluginOne']->get_reports( 'MyPluginOne_woo_order_source', множество(), множество( 'start' => $start_date, 'конец' => $end_date ), множество( 'источникСредний', 'ID транзакции', ), множество(), множество( 'логика' => 'И', 'фильтры' => массив( множество( 'тип' => 'размер', 'имя' => 'идентификатор транзакции', 'тип_соответствия' => 1, 'значение' => $order->get_id() ) ) ), 0, ЛОЖЬ ); error_log('Статистика:' . print_r($stats, true)); if (!empty($stats['rows'][0]['sourceMedium'])) { $order->update_meta_data('MyPluginOne_woo_order_source', $stats['rows'][0]['sourceMedium']); $source = $stats['rows'][0]['sourceMedium']; } } еще { $stats = $GLOBALS['WP_MyPluginOne']->pa_get_analytics_dashboard('ga:totalEvents', $start_date, $end_date, 'ga:sourceMedium,ga:eventCategory,ga:eventLabel', false, 'ga:eventCategory==MyPluginOne_orders; ga:eventAction==order_created;ga:eventLabel==' .$post->ID); if (isset($stats['rows'][0][0])) { $source = $stats['rows'][0][0]; $order->update_meta_data('MyPluginOne_woo_order_source', $source); } } } error_log('Окончательный источник:' . $source); эхо $источник; } } Хуки:

add_filter('manage_woocommerce_page_wc-orders_columns', array($this, 'source_medium_column')); add_action('manage_woocommerce_page_wc-orders_custom_column', array($this, 'source_medium_value'),10,2); Мой предыдущий код не был совместим с HPOS. Я проверил совместимость, просмотрев документацию, но источник/носитель все еще не отображается. И теперь я просто хочу знать, в чем я делаю ошибку.
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Php»