Пользовательский столбец с метаданными заказа в списке заказов администратора WooCommerce HPOS ⇐ 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. Я проверил совместимость, просмотрев документацию, но источник/носитель все еще не отображается. И теперь я просто хочу знать, в чем я делаю ошибку.
Из-за обновления плагина 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. Я проверил совместимость, просмотрев документацию, но источник/носитель все еще не отображается. И теперь я просто хочу знать, в чем я делаю ошибку.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Добавить количество заказов клиентов в список заказов администратора WooCommerce (HPOS)
Anonymous » » в форуме Php - 0 Ответы
- 43 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Добавить общий вес заказа в список заказов администратора WooCommerce (совместимо с HPOS)
Anonymous » » в форуме Php - 0 Ответы
- 24 Просмотры
-
Последнее сообщение Anonymous
-