如何創建 WooCommerce 最近查看的產品簡碼
已發表: 2021-05-05 您是否正在尋找一種使用簡碼顯示最近查看的產品的方法? 在這篇文章中,我想向您展示如何創建 WooCommerce 最近查看的產品短代碼。 默認情況下,WooCommerce 允許您使用小部件來顯示客戶最近查看的產品列表。
 您是否正在尋找一種使用簡碼顯示最近查看的產品的方法? 在這篇文章中,我想向您展示如何創建 WooCommerce 最近查看的產品短代碼。 默認情況下,WooCommerce 允許您使用小部件來顯示客戶最近查看的產品列表。 
這個內置的解決方案非常有效,我們相信它很快就會成為古騰堡區塊。
但是,您可能希望在新頁面上顯示相關產品。 這意味著您需要創建一個簡碼。
WooCommerce 最近查看的產品簡碼
在這個簡短的教程中,我們將分享如何創建一個簡單的短代碼來顯示最近查看的產品。 在繼續之前,您需要注意此解決方案涉及處理代碼。
如果您不熟悉處理代碼,我們建議您聯繫合格的 WordPress 開發人員,以免弄亂您的網站。
您還應該創建一個子主題,以便您的更改不會在更新期間丟失。
讓我們看看如何實現這一目標。
添加最近查看的產品簡碼的步驟
為了創建簡碼,我們將利用現有的 [產品] 簡碼並將產品 ID“傳遞”給它,而無需重新發明輪子。
或者,您可以創建一個將簡碼註冊到主題中的插件。 我們將使用這種方法,因為它是最簡單的。
您需要使用插件名稱創建一個新文件夾。
如果您沒有看到最近的產品,那是因為您仍然需要激活“最近查看的產品”小部件。 “woocommerce_recently_viewed”cookie 僅在使用最近查看的產品小部件時存儲。
我們需要的最重要的數據存儲在一個名為 $_COOKIE['woocommerce_recently_viewed'] 的 cookie 中。
如果需要,您可以包含自己的代碼來跟踪/創建 cookie:
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 文件時應該小心,因為如果你犯了錯誤,它會顯示一個嚴重錯誤。
類似文章
- 100 多個提示、技巧和片段終極 WooCommerce 隱藏指南
- 如何通過示例在頁面或帖子中使用 WordPress 簡碼
- 如何在 WooCommerce 中創建我的帳戶頁面
- 如何創建 WooCommerce 登錄註銷簡碼
- 如何導入產品 WooCommerce
- 如何設置 WooCommerce 產品每公斤價格
- 如何以編程方式創建產品 WooCommerce
- 如何創建 WooCommerce 秘密產品
- 登錄重定向到主頁後如何創建 WooCommerce
- 如何按產品 ID 創建 WooCommerce 添加到購物車按鈕
- 如何以編程方式創建訂單 WooCommerce
- 如何添加 WooCommerce 我的帳戶頁面重定向
- 如何在 WooCommerce 中導出產品
- 如何在 WooCommerce 中添加產品 SKU
- 如何在 WooCommerce 中復制產品
- 如何在 WordPress (PHP) 中使用 do_shortcode
- 如何創建 WooCommerce 自定義商店頁面
- 在 WooCommerce 中結帳後如何獲取訂單詳細信息
- 如何在 WooCommerce 中為屬性添加價格
- 如何在 WooCommerce 中以最低消費設置免費送貨
