Создайте дополнительные переменные / заполнители для темы уведомлений по электронной почте Woocommerce

При активации новых уведомлений по электронной почте из статусов пользовательского заказа у меня есть следующие параметры для заполнителей темы:

"You can use the following placeholders: {order_date}, {order_number}, {order_status}, {billing_first_name}, {billing_last_name}, {billing_company}, {blogname}, {site_title}"

Есть ли способ создать новые заполнители для других полей? По сути, я создал новое скрытое поле под названием test_pw и хочу иметь возможность добавлять {billing_email} и {test_pw} в свои собственные электронные письма.

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

// Only for woocommerce versions 3.2 + (up to 3.2)
add_filter( 'woocommerce_email_format_string' , 'filter_email_format_string', 20, 2 );
function filter_email_format_string( $string, $email ) {
// Get the instance of the WC_Order object
$order = $email->object;

// Additional wanted placeholders in the array of find / relace pairs
$additional_placeholders = array(
    '{custom_one}'      => __('my replacement one','woocommerce'),
    '{billing_email}'   => $order->get_billing_email(),
    '{test_pw}'   => $order->get_test_pw(),
);

// return the clean string with new replacements
return str_replace( array_keys( $additional_placeholders ), array_values( $additional_placeholders ), $string );
}
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
2
0
1 709
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вот пример, который покажет вам, как добавить новые заполнители для уведомлений по электронной почте Тема:

// Only for woocommerce versions 3.2 + (up to 3.2)
add_filter( 'woocommerce_email_format_string' , 'filter_email_format_string', 20, 2 );
function filter_email_format_string( $string, $email ) {
    // Get the instance of the WC_Order object
    $order = $email->object;

    // Additional wanted placeholders in the array of find / relace pairs
    $additional_placeholders = array(
        '{custom_one}'      => __('my replacement one','woocommerce'),
        '{shipping_city}'   => $order->get_shipping_city(),
        '{yudu_pw}'         => $order->get_meta( 'yudu_pw' ), // <=== HERE
    );

    // return the clean string with new replacements
    return str_replace( array_keys( $additional_placeholders ), array_values( $additional_placeholders ), $string );
}

Код находится в файле function.php вашей активной дочерней темы (или активной темы). Проверено и работает только для Woocommerce версии 3.2 и выше…

Я пытаюсь, но не могу понять. Я хочу включить адрес электронной почты клиента и созданное мной скрытое поле, которое я назвал test_pw. '{billing_email}' => $ order-> get_billing_email (), '{test_pw}' => $ order-> get_test_pw (),

user1915410 01.05.2018 23:52

Большое спасибо, но я недостаточно хорош, чтобы знать, где и как вставить код в остальное. Спасибо за попытку, но вы, вероятно, предполагаете, что я программист, лол

user1915410 02.05.2018 00:42

Я изменил вопрос

user1915410 02.05.2018 12:13

Это не работает для текста нижнего колонтитула. Чтобы добавить настраиваемые заполнители в текст нижнего колонтитула, расширьте фильтр woocommerce_email_footer_text.

Navidot 25.11.2019 21:15

До сих пор работает;).

Davor 29.01.2021 16:59

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