5

В этом проблема. Мой сайт WooCommerce имеет 3 различные варианты оплаты -Woocommerce - Как отправить пользовательские письма на основе типа оплаты

  • Проверить Оплата
  • Western Union
  • Наличными Доставка

Если мой покупатель выписка с «Оплата чеком» Я хочу послать ему автоматизированный электронная почта, в которой излагаются шаги, необходимые для оплаты чека. Если он оформляется с помощью «Western Union», я хочу отправить ему электронное письмо с его информацией в Western Union как автоматическое письмо. Еще одно автоматическое электронное письмо должно быть отправлено для отправки наложенным платежом.

Обычно в Woocommerce у вас есть одно электронное письмо, отправленное клиенту для всех выполненных заказов, в моем случае мне нужно 3 разных письма в зависимости от варианта оплаты.

Так что я начал использовать этот учебник, чтобы сделать собственную электронную почту - https://www.skyverge.com/blog/how-to-add-a-custom-woocommerce-email/

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

// bail if shipping method is not expedited 
if (! in_array($this->object->get_shipping_method(), array('Three Day Shipping', 'Next Day Shipping'))) 
    return; 

Что будет строка кода, если я хочу, чтобы проверить, что способ оплаты? Я хочу проверить, является ли метод оплаты «Проверить платеж», чтобы я мог отправить ему специальную электронную почту.

Пожалуйста, дайте мне знать, если у вас есть идеи.

ответ

4

Вы можете отправить другое настроенное письмо по каждому способу оплаты с помощью этой функции, используя hook_you hook. Существует множество опций, которые вы можете установить, для этого обратитесь к wp_mail() function code reference.

Вот код:

add_action('woocommerce_thankyou', 'wc_cheque_payment_method_email_notification', 10, 1); 
function wc_cheque_payment_method_email_notification($order_id) { 
    if (! $order_id) return; 

    $order = wc_get_order($order_id); 

    $user_complete_name_and_email = $order->billing_first_name . ' ' . $order->billing_last_name . ' <' . $order->billing_email . '>'; 
    $to = $user_complete_name_and_email; 

    // ==> Complete here with the Shop name and email <== 
    $headers = 'From: Shop Name <[email protected]>' . "\r\n"; 

    // Sending a custom email when 'cheque' is the payment method. 
    if (get_post_meta($order->id, '_payment_method', true) == 'cod') { 
     $subject = 'your subject'; 
     $message = 'your message goes in here'; 
    } 
    // Sending a custom email when 'Cash on delivery' is the payment method. 
    elseif (get_post_meta($order->id, '_payment_method', true) == 'cheque') { 
     $subject = 'your subject'; 
     $message = 'your message goes in here'; 
    } 
    // Sending a custom email when 'Western Union' is the payment method. 
    else { 
     $subject = 'your subject'; 
     $message = 'your message goes in here'; 
    } 
    if($subject & $message) { 
     wp_mail($to, $subject, $message, $headers); 
    } 
} 

Этот код идет в файл functions.php вашего активного ребенка темы (или темы), или же в любом файле плагина.

Это проверено и работает.


- Update - Связанные с вашими комментариями.

Попадая доступные способы оплаты слизни (временные, только чтобы получить все слизни). Это отобразит ваши доступные способы оплаты в виде пули на странице магазина или на страницах продукта. После использования просто удалите его.

Вот что функциональный код:

function the_available_payment_gateways(){ 
    foreach(WC()->payment_gateways->get_available_payment_gateways() as $payment_gateway) 
     echo '<div style="border:solid 1px #999">Method Title: "'.$payment_gateway->title .'"/Method slug: "'.$payment_gateway->id .'"</div>'; 
} 
add_action('woocommerce_before_main_content', 'the_available_payment_gateways', 1); 

Этот код идет в function.php файл вашей активной темы ребенка (или темы). Удалите его после использования.

+0

Привет, Лоис, спасибо за код. Я собираюсь протестировать его, и тогда я приму ответ. Один вопрос, у меня есть более 3 платежных шлюзов, поэтому я не могу использовать «else» для Western Union. Вы знаете, как я могу найти, что такое get_post_meta для Western Union (например, «треска» или «проверка»)? – Adam

+0

@Adam ** Обновлен мой ответ ** с функцией, которая будет отображаться на странице магазина и на страницах продуктов, все доступные способы оплаты, пули ... После этого оставьте здесь комментарий с этими слизнями, и я обновлю свой код. – LoicTheAztec

+0

Я буду тестировать этот код всего за 2 дня, но я отвечу на него, потому что он выглядит правильно. Но большое спасибо Лоику. Если у меня есть какие-то сомнения, я буду комментировать, но еще раз спасибо. – Adam

2

1) Во-первых, вы должны задать WP вопрос на wordpress.stackexchange.com

2) В общем, тем легче путь, чтобы отправить письмо, в котором перечислены все возможные варианты (разделенную с пунктами, или даже ссылок), как это:

Здравствуйте ....
.....
.....
===== Способы оплаты =======
1) Western Union - следовать этой инструкции : http://example.com/how-to-1
2) Оплачивается чеком - следуйте за этой инструкцией: http://example.com/how-to-2
3) Оплата при доставке - следовать этой инструкции: http://example.com/how-to-3
.....
.....

3) Если вы знаете немного больше, то здесь перечислены все крючки - https://docs.woocommerce.com/wc-apidocs/hook-docs.html (поиск слова EMAIL), а затем настроить желаемый крючок.

+1

Извините, что сообщал, что все связанные с этим вопросы, связанные с WooCommerce, не соответствуют теме в wordpress stackexchange. Поэтому, пожалуйста, обновите свой ответ. Спасибо – LoicTheAztec

+0

@tazo Я не могу отправить электронное сообщение со всеми вариантами из-за нескольких причин. Я должен отправить отдельные электронные письма для трех разных вариантов оплаты. – Adam

Смежные вопросы