Изменить WooCommerce новый администратор заказа с адреса электронной почты на адрес клиента - PullRequest
0 голосов
/ 14 мая 2019

Мне нужно, чтобы WooCommerce отправлял определенные электронные письма с адреса электронной почты клиента, а не с адреса администратора.

Справочная информация:

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

Пользователь заказывает сервисный продукт через WooCommerce, и создается новый заказ WooCommerce.Затем для заказа необходимо заполнить систему продажи билетов, и мой обходной путь заключается в том, чтобы электронная почта «Новый заказ» была отправлена ​​на почтовый ящик и затем доставлена ​​системой продажи билетов.Очевидно, что это не идеально и представляет собой точку отказа, но пока это нормально.

Проблема в том, что электронное письмо с новым заказом отправляется с адреса электронной почты администратора WooCommerce, поэтому новый билет скорее ассоциируется с этим аккаунтом.чем учетная запись пользователя, который создал заказ.

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

Возможно ли это с помощью хука?

в woocommerce/includes/class-wc-emails.php у нас есть следующее:

public function send( $to, $subject, $message, $headers = "Content-Type: text/html\r\n", $attachments = '' ) {
    // Send.
    $email = new WC_Email();
    return $email->send( $to, $subject, $message, $headers, $attachments );
}

Сюда не входит отправитель, и поскольку он похоронен в классе, может ли он быть переопределен в любом случае?

Отлично подходит для любых указателей.

(PS Я действительно ценю, что есть проблемы с этим подходом, включая сообщения электронной почты, помеченные как спам, но первоначально это будет управляемо, пока я не установлю более надежную систему)

(PPS Iя знаю, что есть почти идентичный вопрос, но ссылки не работают и относятся к очень устаревшей WooCommerce)

1 Ответ

1 голос
/ 14 мая 2019

Невозможно отправить письмо с адреса электронной почты вашего клиента. В заголовке WP_Mail вы можете установить только адрес электронной почты клиента Reply-To. По моему опыту, вы должны отправить еще одно электронное письмо на свой почтовый ящик и пропустить электронное письмо, отправленное WooCommerce по умолчанию. Используйте этот крючок:

add_action('woocommerce_order_status_pending_to_processing', 'order_created_send_email');

function order_created_send_email($order_id, $order) {
    $customer_email = $order->get_billing_email();
    /* Code to send email with Reply-To: customer email */
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...