如何创建 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 中以最低消费设置免费送货