Woocommerce - 如何根据付款类型发送自定义电子邮件

时间:2016-10-06 06:58:14

标签: php wordpress woocommerce hook-woocommerce payment-method

这是问题所在。我的woocommerce网站有3种不同的付款方式 -

  • 支票付款
  • 西联汇款
  • 货到付款

如果我的买家以“支票付款”结帐,我想向他发送一封自动发送的电子邮件,其中概述了支票付款的步骤。 如果他与“西联汇款”签出,我想通过电子邮件将他的西联汇款信息发送给他。 应发送另一封自动电子邮件以进行货到付款。

通常在Woocommerce中,您为所有已完成的订单发送一封电子邮件给客户,在我的情况下,根据付款方式,我需要3封不同的电子邮件。

所以我开始使用本教程制作自定义电子邮件 - https://www.skyverge.com/blog/how-to-add-a-custom-woocommerce-email/

上面的教程用于制作自定义电子邮件以加快发货。这是教程中使用的代码行 -

RVUSER

如果我想查看付款方式是什么,代码行是什么? 我想检查付款方式是否为“支票付款”,以便我可以向他发送自定义电子邮件。

如果您有任何想法,请告诉我。

2 个答案:

答案 0 :(得分:7)

您可以使用thank_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 <name@email.com>' . "\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文件中或任何插件文件中。

经过测试,它确实有效。

- 更新 - 与您的评论相关。

  

获取可用的付款方式slugs (临时,只是为了获取所有slu)。这将在商店页面或产品页面中显示您可用的付款方式。使用后,只需将其删除即可。

     

以下是功能代码:

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文件中。使用后将其删除。

答案 1 :(得分:2)

1)首先,您应该在wordpress.stackexchange.com

询问WP问题

2)一般来说,更简单的方法是发送电子邮件,其中列出了所有选项(用段落,甚至是链接分隔),如下所示:

  

您好....
..... .....

  =====付款方式=======
1)西方联盟 - 遵循以下指示: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),然后自定义所需的钩子。