วิธีสร้างรหัสย่อผลิตภัณฑ์ที่ดูล่าสุดของ 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″] ในหน้าใดก็ได้

นี่คือผลลัพธ์: ผล

บทสรุป

ในบทช่วยสอนสั้นๆ นี้ เราได้แชร์วิธีแสดงผลิตภัณฑ์ที่เพิ่งดูล่าสุดโดยใช้รหัสย่อ

คุณควรระมัดระวังในการแก้ไขไฟล์ functions.php เพราะหากคุณทำผิดพลาด ไฟล์นั้นจะแสดงข้อผิดพลาดร้ายแรง

บทความที่คล้ายกัน

  1. 100+ Tips, Tricks & Snippets Ultimate WooCommerce ซ่อนคู่มือ
  2. วิธีใช้ WordPress Shortcodes ในเพจหรือโพสต์พร้อมตัวอย่าง
  3. วิธีตั้งค่าการจัดส่งฟรีด้วยการใช้จ่ายขั้นต่ำใน WooCommerce