Я получил быстрый вопрос, поскольку я исследовал пару часов и не нашел подходящего ответа.
Я хотел бы отправить электронное письмо нового типа, когда будет сделан новый заказ, и отправить его на адрес электронной почты, указанный в настраиваемом поле оформления заказа.
Я реализовал Woocommerce и добавил дополнительные поля оформления заказа через плагин (Checkout Field Editor.
Одно из этих полей извлечения содержит адрес электронной почты (имя поля — [client_email]).
Мне также удалось создать новый тип электронной почты через плагин Woo Custom Emails.
Единственная проблема, которую я имею, состоит в том, чтобы установить получателя для этого электронного письма с помощью ввода из пользовательского поля извлечения [client_email].
Есть мысли или решения?
Большое спасибо!
Я нашел бы этот маленький фрагмент:
add_filter( 'woocommerce_email_recipient_customer_processing_order', 'processing_order_replacement_email_recipient', 10, 2 );
function processing_order_replacement_email_recipient( $recipient, $order ) {
// Set HERE your replacement recipient email(s)… (If multiple, separate them by a coma)
$recipient = '<email adress>';
return $recipient;
}
И это файл шаблона электронной почты.
<?php
/**
* Customer processing order email
*
* This template can be overridden by copying it to yourtheme/woocommerce/emails/customer-processing-order.php.
*
* HOWEVER, on occasion WooCommerce will need to update template files and you
* (the theme developer) will need to copy the new files to your theme to
* maintain compatibility. We try to do this as little as possible, but it does
* happen. When this occurs the version of the template file will be bumped and
* the readme will list any important changes.
*
* @see https://docs.woocommerce.com/document/template-structure/
* @author WooThemes
* @package WooCommerce/Templates/Emails
* @version 2.5.0
*/
if ( ! defined( 'ABSPATH' ) ) {
exit; // Exit if accessed directly
}
$email_heading = get_option( 'ec_woocommerce_customer_processing_order_heading' );
/**
* @hooked WC_Emails::email_header() Output the email header
*/
do_action( 'woocommerce_email_header', $email_heading, $email ); ?>
<?php echo get_option( 'ec_woocommerce_customer_processing_order_main_text' ); ?>
<?php
/**
* @hooked WC_Emails::order_details() Shows the order details table.
* @hooked WC_Structured_Data::generate_order_data() Generates structured data.
* @hooked WC_Structured_Data::output_structured_data() Outputs structured data.
* @since 2.5.0
*/
do_action( 'woocommerce_email_order_details', $order, $sent_to_admin, $plain_text, $email );
/**
* @hooked WC_Emails::order_meta() Shows order meta data.
*/
do_action( 'woocommerce_email_order_meta', $order, $sent_to_admin, $plain_text, $email );
/**
* @hooked WC_Emails::customer_details() Shows customer details
* @hooked WC_Emails::email_address() Shows email address
*/
do_action( 'woocommerce_email_customer_details', $order, $sent_to_admin, $plain_text, $email );
/**
* @hooked WC_Emails::email_footer() Output the email footer
*/
do_action( 'woocommerce_email_footer', $email );
Задача ещё не решена.
Других решений пока нет …