Php 在WooCommerce Order received(谢谢)页面中查看新客户

Php 在WooCommerce Order received(谢谢)页面中查看新客户,php,sql,wordpress,woocommerce,orders,Php,Sql,Wordpress,Woocommerce,Orders,我试图在Thankyou页面向新的所有客户(不是返回的客户)显示一条自定义消息,我使用的是“”回答代码 问题在于,我们无法检测客户以前是否购买过。例如,如果我在“谢谢”页面中使用当前代码,新客户将变为老客户 所以我的问题是:如何检查客户是否提前购买了当前订单以外的任何产品 以下是我的代码尝试,它不能正常工作: function has_bought_before( $user_id = 0 ) { global $wpdb; $customer_id = $user_id ==

我试图在Thankyou页面向新的所有客户(不是返回的客户)显示一条自定义消息,我使用的是“”回答代码

问题在于,我们无法检测客户以前是否购买过。例如,如果我在“谢谢”页面中使用当前代码,新客户将变为老客户

所以我的问题是:如何检查客户是否提前购买了当前订单以外的任何产品

以下是我的代码尝试,它不能正常工作:

function has_bought_before( $user_id = 0 ) {
    global $wpdb;
    $customer_id = $user_id == 0 ? get_current_user_id() : $user_id;
    $paid_order_statuses = array_map( 'esc_sql', wc_get_is_paid_statuses() );

    $results = $wpdb->get_col( "
        SELECT p.ID FROM {$wpdb->prefix}posts AS p
        INNER JOIN {$wpdb->prefix}postmeta AS pm ON p.ID = pm.post_id
        WHERE p.post_status IN ( 'wc-" . implode( "','wc-", $paid_order_statuses ) . "' )
        AND p.post_type LIKE 'shop_order'
        AND pm.meta_key = '_customer_user'
        AND pm.meta_value = $customer_id
    " );

    // Count number of orders and return a boolean value depending if higher than 0
    return count( $results ) > 0 ? true : false;
}



add_filter('woocommerce_thankyou_order_received_text', 'woo_change_order_received_text', 10, 2 );
function woo_change_order_received_text( $str, $order ) {
    if( has_bought_before() ){
        $new_str = $str . ' Welcome Back Again.';
    }else{
        $new_str = $str . ' Welcome To our site You will get 10% discount on your next order.';
    }
    return $new_str;
}

thankyou页面上,您的目标是下一个付费订单,因此您需要对条件函数
has\u build\u before()
进行一些更改,最后替换以下行:

return count( $results ) > 0 ? true : false;
作者:

它现在应该像你期望的那样工作


可以重命名此条件函数
thankyou\u has\u before()

thankyou页面上,您的目标是下一个付费订单,因此您需要对条件函数
has\u bunded\u before()
进行一些更改,最后替换行:

return count( $results ) > 0 ? true : false;
作者:

它现在应该像你期望的那样工作

可以重命名此条件函数
thankyou\u已经购买了\u()

谢谢它的工作原理:)我认为woocommerce对你来说就像ABC。谢谢它的工作原理:)我认为woocommerce对你来说就像ABC。