【问题标题】:Woocommerce related product array with user input带有用户输入的 Woocommerce 相关产品数组
【发布时间】:2015-10-07 20:22:07
【问题描述】:

我在 Woocommerce 中使用以下代码作为我的 single-product.php 页面的页脚(我创建了一个“相关产品”部分),我想知道是否有一种方法可以改变它来制作管理员可以从产品管理页面添加值;我希望某些产品显示更密切相关的产品,而不是完全随机的产品。

有没有一种方法可以为产品 ID 或标签之类的内容创建自定义字段,然后将该自定义字段添加为 orderby 值,以便这些产品/标签与随机产品相比有更好的显示变化?

如果没有,我还能做些什么吗?我只是在寻找一种方法,让管理员可以选择出现更密切相关的产品。

$args = apply_filters( 'woocommerce_related_products_args', array( 'post_type' => 'product', 'ignore_sticky_posts' => 1, 'no_found_rows' => 1, 'posts_per_page' => 5, 'orderby' => rand, 'post__in' => $related, 'post__not_in' => array( $product->id ) ) );

Here is my related-footer.php 包含上述 sn-p 的完整代码文件。

【问题讨论】:

    标签: php arrays wordpress arguments woocommerce


    【解决方案1】:

    是的,您可以使用以下方法完成此任务:

    为您要显示一组所需相关产品的产品创建自定义字段,例如自定义字段名称为“wdm_related_products”,将值设置为以逗号分隔的产品 ID 列表,例如。 46,15,687,21,48。 更新产品。

    在用户子主题或自定义插件的functions.php中添加如下代码。

    add_filter('woocommerce_related_products_args','wdm_custom_related_products',99,1);
    
    function wdm_custom_related_products($array){
    global $product;
    if(get_post_meta($product->,'wdm_related_products',true)){
    $related=get_post_meta($product->id,'wdm_related_products',true);
    $array=array(
        'post_type'            => 'product',
        'ignore_sticky_posts'  => 1,
        'no_found_rows'        => 1,
        'posts_per_page'       => 5,
        'orderby'              => rand,
        'post__in'             => $related,
        'post__not_in'         => array( $product->id )
    );
    }
    return $array;
    }
    

    告诉我它解决了你的问题。

    【讨论】:

    • 嗯,不,当我将它放入 functions.php 文件时,它破坏了我的网站。在 woocommerce > single-product 文件夹中有一个指向我的 related-footer.php 文件的链接,我需要从那里删除代码吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-12
    • 2021-06-10
    • 1970-01-01
    • 2015-12-30
    • 1970-01-01
    相关资源
    最近更新 更多