Cách làm sản phẩm đã xem woocommerce: vâng hôm nay mình sẽ chia sẽ cách làm vấn đề đầu tiên cần khắc phục đó là đảm bảo $_COOKIE[‘woocommerce_recently_viewed’] phải chạy đúng vậy nên trước khi làm cần test xem $_COOKIE[‘woocommerce_recently_viewed’] có làm việc không, để đảm bảo thành công 100% thì cứ làm theo cách của mình nhé
Tại sao là bắt buộc vì thực chất $_COOKIE[‘woocommerce_recently_viewed’] là woocommerce có sẳn rồi nhưng đôi lúc xung đột với plugin nào đó tính năng này không hoạt động nên ta làm thay cho nó. Mờ file functions.php theo code sau vào:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
function wc_track_product_view_always() { if ( ! is_singular( 'product' ) ) { return; } global $post; if ( empty( $_COOKIE['woocommerce_recently_viewed'] ) ) { $viewed_products = array(); } else { $viewed_products = wp_parse_id_list( (array) explode( '|', wp_unslash( $_COOKIE['woocommerce_recently_viewed'] ) ) ); // @codingStandardsIgnoreLine. } $keys = array_flip( $viewed_products ); if ( isset( $keys[ $post->ID ] ) ) { unset( $viewed_products[ $keys[ $post->ID ] ] ); } $viewed_products[] = $post->ID; if ( count( $viewed_products ) > 15 ) { array_shift( $viewed_products ); } wc_setcookie( 'woocommerce_recently_viewed', implode( '|', $viewed_products ) ); } remove_action('template_redirect', 'wc_track_product_view', 20); add_action( 'template_redirect', 'wc_track_product_view_always', 20 ); |
Ở đây tôi sẽ show nó dưới sản phẩm khác, tất nhiên anh chị có thể show nó ra bất cứ vị trí nào trên site mà anh chị muôn
Mở file functions.php và thêm code sau:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
function showViewdProduct(){ $viewed_products = ! empty( $_COOKIE['woocommerce_recently_viewed'] ) ? (array) explode( '|', wp_unslash( $_COOKIE['woocommerce_recently_viewed'] ) ) : array(); $viewed_products = array_reverse( array_filter( array_map( 'absint', $viewed_products ) ) ); if(!empty($viewed_products)){ $args = array( 'post_type' => 'product', 'post__in' => $viewed_products, 'posts_per_page' => -1, 'post_status' => 'publish' ); //var_dump($args); $viewed_products_query = new WP_Query( $args ); if ($viewed_products_query->have_posts() ) : echo '<h3 class="product-section-title container-width product-section-title-related pt-half pb-half uppercase">Sản phẩm đã xem</h3>'; echo '<div class="row large-columns-5 medium-columns-3 small-columns-2 row-small has-shadow row-box-shadow-1 row-box-shadow-1-hover">'; while ($viewed_products_query->have_posts() ) : $viewed_products_query->the_post(); wc_get_template_part( 'content', 'product' ); endwhile; wp_reset_postdata(); echo '</div>'; endif; } } add_action( 'woocommerce_after_single_product_summary', 'showViewdProduct', 12 ); |
Mọi sự sao chép xin ghi rõ nguồn là fcwordpress.net
Chuyên trang về wordpress: hướng dẫn thiết kế theme, plugin, thủ thuật wordpress