كيفية إنشاء رمز قصير لمنتجات WooCommerce التي تم عرضها مؤخرًا

نشرت: 2021-05-05

رمز WooCommerce الذي تم عرضه مؤخرًا للمنتجات هل تبحث عن طريقة لعرض المنتجات التي تم عرضها مؤخرًا باستخدام رمز قصير؟ في هذا المنشور ، أريد أن أوضح لك كيفية إنشاء رمز قصير لمنتجات WooCommerce التي تم عرضها مؤخرًا. بشكل افتراضي ، يسمح لك WooCommerce باستخدام عنصر واجهة مستخدم لعرض قائمة المنتجات التي شاهدها العميل مؤخرًا.

هذا الحل المدمج فعال للغاية ، ونعتقد أنه سيصبح كتلة Gutenberg قريبًا.

ومع ذلك ، قد ترغب في عرض المنتجات ذات الصلة على صفحة جديدة. هذا يعني أنك بحاجة إلى إنشاء رمز قصير.

رمز WooCommerce الذي تم عرضه مؤخرًا للمنتجات

في هذا البرنامج التعليمي الموجز ، سنشارك كيف يمكنك إنشاء رمز قصير بسيط لعرض المنتجات التي تم عرضها مؤخرًا. قبل المتابعة ، يجب أن تلاحظ أن هذا الحل يتضمن التعامل مع الكود.

إذا لم تكن معتادًا على التعامل مع الكود ، فإننا نوصي بالاتصال بمطور WordPress مؤهل حتى لا تفسد موقعك.

يجب عليك أيضًا إنشاء سمة فرعية حتى لا تضيع تغييراتك أثناء التحديث.

دعونا نرى كيف يمكنك تحقيق ذلك.

خطوات إضافة الرمز المختصر للمنتجات التي تم عرضها مؤخرًا

لإنشاء الرمز القصير ، سنستفيد من الرمز المختصر [للمنتجات] الحالي و "تمرير" معرفات المنتج إليه دون الحاجة إلى إعادة اختراع العجلة.

بدلاً من ذلك ، يمكنك إنشاء مكون إضافي يسجل رمزًا قصيرًا في قالب. سنستخدم هذه الطريقة لأنها أسهل.

تحتاج إلى إنشاء مجلد جديد باسم المكون الإضافي.

إذا لم تشاهد أي منتجات حديثة ، فذلك لأنك ما زلت بحاجة إلى تنشيط عنصر واجهة مستخدم المنتجات التي تم عرضها مؤخرًا. يتم تخزين ملف تعريف الارتباط "woocommerce_recently_viewed" فقط عندما تكون أداة المنتجات التي تم عرضها مؤخرًا قيد الاستخدام.

يتم تخزين أهم البيانات التي نحتاجها في ملفات تعريف ارتباط تسمى $ _COOKIE ['woocommerce_recently_viewed'].

يمكنك تضمين الرمز الخاص بك لتتبع / إنشاء ملفات تعريف الارتباط إذا أردت:

function custom_track_product_view() {

    if ( ! is_singular( 'product' ) ) {

        return;

    }

    global $post;

    if ( empty( $_COOKIE['woocommerce_recently_viewed'] ) )

        $viewed_products = array();

    else

        $viewed_products = (array) explode( '|', $_COOKIE['woocommerce_recently_viewed'] );

    if ( ! in_array( $post->ID, $viewed_products ) ) {

        $viewed_products[] = $post->ID;

    }

    if ( sizeof( $viewed_products ) > 15 ) {

        array_shift( $viewed_products );

    }

    // Store for session only

    wc_setcookie( 'woocommerce_recently_viewed', implode( '|', $viewed_products ) );

}

add_action( 'template_redirect', 'custom_track_product_view', 20 );

هذا هو الكود الكامل للمكوِّن الإضافي:


function njengah_woocommerce_recently_viewed_products( $atts, $content = null ) {

// Get shortcode parameters

extract(shortcode_atts(array(

"per_page" => '5'

), $atts));

// Get WooCommerce Global

global $woocommerce;

// Get recently viewed product cookies data

$viewed_products = ! empty( $_COOKIE['woocommerce_recently_viewed'] ) ? (array) explode( '|', $_COOKIE['woocommerce_recently_viewed'] ) : array();

$viewed_products = array_filter( array_map( 'absint', $viewed_products ) );

// If no data, quit

if ( empty( $viewed_products ) )

return __( 'You have not viewed any product yet!', 'rc_wc_rvp' );

// Create the object

ob_start();

// Get products per page

if( !isset( $per_page ) ? $number = 5 : $number = $per_page )

// Create query arguments array

$query_args = array(

'posts_per_page' => $number,

'no_found_rows'  => 1,

'post_status'    => 'publish',

'post_type'      => 'product',

'post__in'       => $viewed_products,

'orderby'        => 'rand'

);

// Add meta_query to query args

$query_args['meta_query'] = array();

// Check products stock status

$query_args['meta_query'][] = $woocommerce->query->stock_status_meta_query();

// Create a new query

$r = new WP_Query($query_args);

// If query return results

if ( $r->have_posts() ) {

$content = '<ul class="rc_wc_rvp_product_list_widget">';

// Start the loop

while ( $r->have_posts()) {

$r->the_post();

global $product;

$content .= '<li>

<a href="' . get_permalink() . '">

' . ( has_post_thumbnail() ? get_the_post_thumbnail( $r->post->ID, 'shop_thumbnail' ) : woocommerce_placeholder_img( 'shop_thumbnail' ) ) . ' ' . get_the_title() . '

</a> ' . $product->get_price_html() . '

</li>';

}

$content .= '</ul>';

}

// Get clean object

$content .= ob_get_clean();




// Return whole content

return $content;

}

// Register the shortcode

add_shortcode("woocommerce_recently_viewed_products", "njengah_woocommerce_recently_viewed_products");

بعد إضافة الكود ، أضف [woocommerce_recently_viewed_products per_page = ”5 ″] في أي صفحة.

هذه هي النتيجة: حصيلة

استنتاج

في هذا البرنامج التعليمي الموجز ، شاركنا كيف يمكنك عرض المنتجات التي تم عرضها مؤخرًا باستخدام رمز قصير.

يجب أن تكون حريصًا عند تحرير ملف function.php لأنه إذا ارتكبت خطأ ، فسيظهر خطأ فادحًا.

مقالات مماثلة

  1. 100+ تلميحات وحيل ومقتطفات دليل إخفاء WooCommerce النهائي
  2. كيفية استخدام أكواد WordPress المختصرة في الصفحات أو المنشورات مع أمثلة
  3. كيفية إعداد الشحن المجاني مع الحد الأدنى من الإنفاق في WooCommerce