Я ищу способ создания новых заполнителей для темы и письма получателей при создании нового заказа?Я создал новые поля с помощью ACF: вызваны «chantier» и «conducteur de travaux», и я хочу иметь возможность добавить {chantier} в мою тему письма и добавить {conducteur} к моему получателю.
Здесь мойкод поля ACF:
if( function_exists('acf_add_local_field_group') ):
acf_add_local_field_group(array(
'key' => 'group_5c49b50b45a52',
'title' => 'Nom du chantier',
'fields' => array(
array(
'key' => 'field_5c49b5127665d',
'label' => 'Chantier',
'name' => 'chantier',
'type' => 'post_object',
'instructions' => '',
'required' => 0,
'conditional_logic' => 0,
'wrapper' => array(
'width' => '',
'class' => '',
'id' => '',
),
'show_fields_options' => array(
0 => 'order',
1 => 'email',
),
'post_type' => array(
0 => 'chantier',
),
'taxonomy' => '',
'allow_null' => 0,
'multiple' => 0,
'return_format' => 'object',
'ui' => 1,
),
array(
'key' => 'field_5c541edb71030',
'label' => 'Conducteur de travaux',
'name' => 'conducteur_de_travaux',
'type' => 'user',
'instructions' => '',
'required' => 0,
'conditional_logic' => 0,
'wrapper' => array(
'width' => '',
'class' => '',
'id' => '',
),
'show_fields_options' => array(
0 => 'order',
1 => 'email',
),
'role' => array(
0 => 'conducteur-de-travaux',
),
'allow_null' => 0,
'multiple' => 0,
'return_format' => 'array',
),
),
'location' => array(
array(
array(
'param' => 'checkout',
'operator' => '==',
'value' => 'wc-before-billing-form',
),
),
),
'menu_order' => 0,
'position' => 'normal',
'style' => 'default',
'label_placement' => 'top',
'instruction_placement' => 'label',
'hide_on_screen' => '',
'active' => 1,
'description' => '',
));
endif;
Я пытался использовать этот код, предложенный здесь:
Создание дополнительных переменных / заполнителей для темы уведомлений Woocommerce по электронной почте
Но это не работает, вот мой код:
add_filter( 'woocommerce_email_format_string' , 'add_custom_email_format_string', 20, 2 );
function add_custom_email_format_string( $string, $email ) {
// The post meta key used to save the value in the order post meta data
$meta_key = '_chantier';
// Get the instance of the WC_Order object
$order = $email->object;
// Get the value
$value = get_field( $meta_key, $order_id );
// Additional subject placeholder
$new_placeholders = array( '{chantier}' => $value );
// Return the clean replacement value string for "{chantier}" placeholder
return str_replace( array_keys( $additional_placeholders ), array_values( $additional_placeholders ), $string );
}
Когда я получаю письмо, я получаю его: Order {chantier}.Я не знаю, где моя ошибка ...
А для поля "conducteur-de-travaux" (пользовательское поле) я хотел бы восстановить адрес электронной почты "conducteur de travaux" и добавитьэто на новый адрес электронной почты получателя заказа.Является ли это возможным?