每封电子邮件中的 WooCommerce WPGens 推荐

问题描述

我使用了 WPGens 开发的 WooCommerce 推荐插件(我已经提交了一张票,但我不是高级会员,所以我没有太多希望

function gens_raf_customer_email( $order,$sent_to_admin,$plain_text ) {
    $user_id = ( version_compare( WC_VERSION,'2.7','<' ) ) ? $order->customer_user : $order->get_customer_id();
    if( ! empty( $user_id ) && ( get_user_Meta($user_id,"gens_referral_id",true) ) != '' ){
        $code = get_user_Meta($user_id,true);
    } else {
        $code = ( version_compare( WC_VERSION,'<' ) ) ? $order->billing_email : $order->get_billing_email();
    }

    if( $plain_text ){
        _e('Your referral code is: ','gens-raf') . $code;
    } else {
        echo '<p style="text-align:center;margin-top:10px;">Your referral code is: ' .get_home_url() .'?raf='. $code . '</p>';
    }  
}
add_action('woocommerce_email_customer_details','gens_raf_customer_email',30,3 );

但是这将信息添加到 WooCommerce 邮件底部有没有办法显示相同的信息但在订单详细信息之上?在营销方面,这将是客户首先看到的。

解决方法

是的,您可以使用 WC woocommerce_email_before_order_table 过滤器钩子。这将在订单表上方显示信息。代码将进入您的活动主题functions.php 文件。

function gens_raf_customer_email( $order,$sent_to_admin,$plain_text,$email ) {
    $user_id = ( version_compare( WC_VERSION,'2.7','<' ) ) ? $order->customer_user : $order->get_customer_id();
    if( ! empty( $user_id ) && ( get_user_meta($user_id,"gens_referral_id",true) ) != '' ){
        $code = get_user_meta($user_id,true);
    } else {
        $code = ( version_compare( WC_VERSION,'<' ) ) ? $order->billing_email : $order->get_billing_email();
    }

    if( $plain_text ){
        _e('Your referral code is: ','gens-raf') . $code;
    } else {
        echo '<p style="text-align:center;margin-top:10px;">Your referral code is: ' .get_home_url() .'?raf='. $code . '</p>';
    }  
} 
add_action('woocommerce_email_before_order_table','gens_raf_customer_email',30,4 );