Пользовательская тема для уведомления о новом заказе по электронной почте в Woocommmerce

В Woocommerce я хотел бы установить продукт, купленный в строке темы электронного письма "новый заказ", что-то вроде этого: New Order - [{product_name}] ({order_number}) - {order_date}

Я это понимаю product_name Возможно, его нельзя использовать из-за нескольких продуктов. Есть ли способ, которым я все еще могу сделать это, отфильтровав заказанный товар или просто разрешив несколько товаров, так как не проходит много заказов.

Очень новичок в изменении кода темы, но любая помощь будет принята с благодарностью.

1 ответ

Настройки электронной почты для "Нового заказа" должны быть предметом (как в вашем вопросе):
New Order - [{product_name}] ({order_number}) - {order_date}

В коде ниже я заменяю {product_name} по наименованиям товаров товаров (разделенных тире), поскольку в заказе может быть много товаров…

Эта пользовательская функция подключена woocommerce_email_subject_new_order сделает свое дело:

add_filter( 'woocommerce_email_subject_new_order', 'customizing_new_order_subject', 10, 2 );
function customizing_new_order_subject( $formated_subject, $order ){
    // Get an instance of the WC_Email_New_Order object
    $email = WC()->mailer->get_emails()['WC_Email_New_Order'];
    // Get unformatted subject from settings
    $subject = $email->get_option( 'subject', $email->get_default_subject() );

    // Loop through order line items
    $product_names = array();
    foreach( $order->get_items() as $item )
        $product_names[] = $item->get_name(); // Set product names in an array

    // Set product names in a string with separators (when more than one item)
    $product_names = implode( ' - ', $product_names );

    // Replace "{product_name}" by the product name
    $subject = str_replace( '{product_name}', $product_names, $subject );

    // format and return the custom formatted subject
    return $email->format_string( $subject );
}

Код помещается в файл function.php вашей активной дочерней темы (или активной темы).

Проверено и работает.


Вы получите что-то вроде этого:

Другие вопросы по тегам