如何创建 WooCommerce 最近查看的产品简码
已发表: 2021-05-05
您是否正在寻找一种使用简码显示最近查看的产品的方法? 在这篇文章中,我想向您展示如何创建 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 中以最低消费设置免费送货
