نمایش خرید محصول کاربر در یک سال گذشته در ووکامرس

همراه رایانه

اگر مشکل شما حل نشده است کافیست فقط با تلفن ثابت به شماره 9099070345 تماس بگیرید.  عدد 0 اول وارد نشود و با تلفن همراه اصلا پاسخگو نمیباشند.

پشتیبانی بصورت 24 ساعته شبانه روزی میباشد

نمایش خرید محصول کاربر در یک سال گذشته در ووکامرس

نمایش خرید محصول کاربر در یک سال گذشته در ووکامرس

شما براحتی میتوانید محصولات خریداری شده توسط کاربر در طی 1 سال گذشته را در صفحه جداگانه مورد بررسی قرار دهید.

برای نمایش خرید محصول کاربر در ووکامرس کافیست ابتدا کد زیر را در functions.php قرار دهید

function wc_customer_bought_product_last_365( $customer_email, $user_id, $product_id ) {
   global $wpdb;
 
    $result = apply_filters( 'woocommerce_pre_customer_bought_product', null, $customer_email, $user_id, $product_id );
 
    if ( null !== $result ) {
        return $result;
    }
 
    $transient_name = 'wc_cbp_' . md5( $customer_email . $user_id . WC_Cache_Helper::get_transient_version( 'orders' ) );
 
    if ( false === ( $result = get_transient( $transient_name ) ) ) {
        $customer_data = array( $user_id );
 
        if ( $user_id ) {
            $user = get_user_by( 'id', $user_id );
 
            if ( isset( $user->user_email ) ) {
                $customer_data[] = $user->user_email;
            }
        }
 
        if ( is_email( $customer_email ) ) {
            $customer_data[] = $customer_email;
        }
 
        $customer_data = array_map( 'esc_sql', array_filter( array_unique( $customer_data ) ) );
        $statuses      = array_map( 'esc_sql', wc_get_is_paid_statuses() );
 
        if ( sizeof( $customer_data ) == 0 ) {
            return false;
        }
 
        $result = $wpdb->get_col( "
            SELECT im.meta_value FROM {$wpdb->posts} AS p
            INNER JOIN {$wpdb->postmeta} AS pm ON p.ID = pm.post_id
            INNER JOIN {$wpdb->prefix}woocommerce_order_items AS i ON p.ID = i.order_id
            INNER JOIN {$wpdb->prefix}woocommerce_order_itemmeta AS im ON i.order_item_id = im.order_item_id
            WHERE p.post_status IN ( 'wc-" . implode( "','wc-", $statuses ) . "' )
            AND p.post_date > '" . date('Y-m-d', strtotime('-365 days')) . "'
            AND pm.meta_key IN ( '_billing_email', '_customer_user' )
            AND im.meta_key IN ( '_product_id', '_variation_id' )
            AND im.meta_value != 0
            AND pm.meta_value IN ( '" . implode( "','", $customer_data ) . "' )
        " );
        $result = array_map( 'absint', $result );
 
        set_transient( $transient_name, $result, DAY_IN_SECONDS * 30 );
    }
    return in_array( absint( $product_id ), $result );
}

برای نمایش کافیست از کد زیر استفاده نمایید

[wc_customer_bought_product_last_year]

اگر مشکل شما حل نشده است کافیست فقط با تلفن ثابت به شماره 9099070345 تماس بگیرید.  عدد 0 اول وارد نشود و با تلفن همراه اصلا پاسخگو نمیباشند.

پشتیبانی بصورت 24 ساعته شبانه روزی میباشد

همراه رایانه

لینک کوتاه:

https://a4fran3.ir/?p=17819

Subscribe
Notify of
guest
0 نظرات
Inline Feedbacks
مشاهده همه نظرات

مطالب تصادفی