функция показа заметки о покупке в электронной почте Woocommerce устарела - PullRequest
0 голосов
/ 03 сентября 2018

Я пытаюсь показать заметку о покупке под продуктом в электронном письме customer_processing_order, которое генерирует Woocommerce.

Я добавил следующее в мой файл functions.php:

function sww_add_images_woocommerce_emails( $output, $order ) {

// set a flag so we don't recursively call this filter
static $run = 0;

// if we've already run this filter, bail out
if ( $run ) {
    return $output;
}

$args = array(
    'show_purchase_note'    => true,
);

// increment our flag so we don't run again
$run++;

// if first run, give WooComm our updated table
return $order->email_order_items_table( $args );
}
add_filter( 'woocommerce_email_order_items_table', 'sww_add_images_woocommerce_emails', 10, 2 );

Это работает, однако печатает сообщение об ошибке в электронном письме с указанием следующего:

"Примечание: WC_Order :: email_order_items_table устарела с версии 3,0!
Вместо этого используйте wc_get_email_order_items. в /nas/content/staging/ishgamultisite/wp-includes/functions.php на линии 3853"

если я изменю woocommerce_email_order_items_table на wc_get_email_order_items, функция не будет работать.

Я надеюсь, что кто-то может сказать мне, как я должен изменить код, поскольку я не уверен?

Ответы [ 2 ]

0 голосов
/ 15 мая 2019

Немного поздно, но если кому-то все еще нужно показывать заметки о покупке, то есть более простой способ:

/**
 * PURCHASE NOTE
 * Edits the email order items args to show purchase notes
 */
function ag_add_wc_order_email_purchase_notes( $args ) {

    $args['show_purchase_note'] = true;

    return $args;

}
add_filter( 'woocommerce_email_order_items_args', 'ag_add_wc_order_email_purchase_notes', 10, 1 );

Фильтр woocommerce_email_order_items_args содержит аргументы для отображения в электронных письмах заказа.

$array — Optional. (callback) => array( 'order' => $order, 'items' => $order->get_items(), 'show_download_links' => $order->is_download_permitted() && ! $args['sent_to_admin'], 'show_sku' => $args['show_sku'], 'show_purchase_note' => $order->is_paid() && ! $args['sent_to_admin'], 'show_image' => $args['show_image'], 'image_size' => $args['image_size'], 'plain_text' => $args['plain_text'], 'sent_to_admin' => $args['sent_to_admin'], )

Источник: http://hookr.io/filters/woocommerce_email_order_items_args/

Протестировано с WooCommerce 3.6.2 и работает нормально.

0 голосов
/ 03 сентября 2018

заменить return $order->email_order_items_table( $args );

с

return wc_get_email_order_items( $order, $args );
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...