ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

php-在Woocommerce中获取并显示相关产品

2019-11-08 11:40:44  阅读:251  来源: 互联网

标签:loops woocommerce product wordpress php


我已经在主题中包含了Woocommerce相关产品,其中包括:

<?php wc_get_template( 'single-product/related.php' ); ?>

这已被复制到我的模板中,并且正在执行.

但是,即使我为此产品添加了各种加价销售,$related_products变量(在循环中使用)也是NULL.为了开始展示这些相关产品,是否还有其他变量在起作用?

解决方法:

您需要的远远不止于此(并且post_id必须是一个产品):

global $product; // If not set…

if( ! is_a( $product, 'WC_Product' ) ){
    $product = wc_get_product(get_the_id());
}

$args = array(
    'posts_per_page' => 4,
    'columns'        => 4,
    'orderby'        => 'rand',
    'order'          => 'desc',
);

$args['related_products'] = array_filter( array_map( 'wc_get_product', wc_get_related_products( $product->get_id(), $args['posts_per_page'], $product->get_upsell_ids() ) ), 'wc_products_array_filter_visible' );
$args['related_products'] = wc_products_array_orderby( $args['related_products'], $args['orderby'], $args['order'] );

// Set global loop values.
wc_set_loop_prop( 'name', 'related' );
wc_set_loop_prop( 'columns', $args['columns'] );

wc_get_template( 'single-product/related.php', $args );

或更短的方式(将为您提供相同的效果):

global $product;

if( ! is_a( $product, 'WC_Product' ) ){
    $product = wc_get_product(get_the_id());
}

woocommerce_related_products( array(
    'posts_per_page' => 4,
    'columns'        => 4,
    'orderby'        => 'rand'
) );

两种方法都经过测试并可以工作……

标签:loops,woocommerce,product,wordpress,php
来源: https://codeday.me/bug/20191108/2007787.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有