Intereting Posts
Обновление базы данных WordPress с 2,6 до 3,2 Электронная почта отправителя отправителя Динамически создавать термины в таксономии, когда публикуется пользовательский тип публикации. Почти готово! Как создать страницу пользовательского архива Как я могу синхронизировать таблицу wordpress с автономным php-скриптом? Служить ресурсами из согласованного URL-интерфейса GT Metrix Передача данных POST с одной должности WP на другую Обновление почтовых индексов (опубликовано, черновик, неприкрепленный) в интерфейсе администратора Как сделать изображение вырезания полным размером, а не эскизом? каковы условия WP_DEBUG? Каков наилучший способ структурирования многопользовательского блога? PDF, отображаемый как страница в Google Analytics со сломанной ссылкой Добавить URL изображения автоматически в настраиваемое поле? Сумма Custom Meta, написанная Authour Ошибка: файлы cookie заблокированы или не поддерживаются вашим браузером.

WooCommerce – добавление атрибутов продукта в CSV-экспорт

Я пытаюсь настроить WooCommerce CSV Export plugin, чтобы добавить дополнительные столбцы для двух стандартных атрибутов продукта («фонд» и «код апелляции»).

Я могу добавить фактические заголовки, но не могу получить данные в строках. Вот код, который я пытаюсь:

// add custom column headers function wc_csv_export_modify_column_headers( $column_headers ) { $new_headers = array( 'fund' => 'fund', 'appeal' => 'appeal_code', // add other column headers here in the format column_key => Column Name ); return array_merge( $column_headers, $new_headers ); } add_filter( 'wc_customer_order_csv_export_order_headers', 'wc_csv_export_modify_column_headers' ); // set the data for each for custom columns function wc_csv_export_modify_row_data( $order_data, $order, $csv_generator ) { $custom_data = array( 'fund' => wc_get_product_terms( $product->id, 'pa_fund' ), 'appeal' => wc_get_product_terms( $product->id, 'pa_appeal-code' ), // add other row data here in the format column_key => data ); $new_order_data = array(); if ( isset( $csv_generator->order_format ) && ( 'default_one_row_per_item' == $csv_generator->order_format || 'legacy_one_row_per_item' == $csv_generator->order_format ) ) { foreach ( $order_data as $data ) { $new_order_data[] = array_merge( (array) $data, $custom_data ); } } else { $new_order_data = array_merge( $order_data, $custom_data ); } return $new_order_data; } add_filter( 'wc_customer_order_csv_export_order_row', 'wc_csv_export_modify_row_data', 10, 3 ); 

С помощью более знающего коллеги мы получили его работу. Вот код:

 /** Add custom column headers **/ function wc_csv_export_modify_column_headers( $column_headers ) { $new_headers = array( 'fund' => 'fund', 'appeal' => 'appeal_code', ); return array_merge( $column_headers, $new_headers ); } add_filter( 'wc_customer_order_csv_export_order_headers', 'wc_csv_export_modify_column_headers' ); /** Set the data for each for custom columns **/ function wc_csv_export_modify_row_data( $order_data, $item, $order, $csv_generator ) { // Determine the product ID from the SKU, and use that to find the fund and appeal code $pid = wc_get_product_id_by_sku($item[sku]); $fund = wc_get_product_terms( $pid, 'pa_fund' ); $appeal = wc_get_product_terms( $pid, 'pa_appeal-code' ); // Add the fund & appeal code to the order_data & return each line $order_data["fund"] = $fund[0]; $order_data["appeal"] = $appeal[0]; return $order_data; } add_filter( 'wc_customer_order_csv_export_order_row_one_row_per_item', 'wc_csv_export_modify_row_data', 10, 4 );