按特定类别划分的WooCommerce相关产品

时间:2016-03-17 作者:jim

我正在寻找一种改变相关产品功能的方法,以将一类产品与另一类产品关联起来。例如:

我有4类:勺子、杯子、碗、吸管。当您选择勺子中的产品时,我希望相关产品仅显示碗类别中的内容。当你选择杯子时,我只想展示吸管中的物品。

我尝试过使用标签,但我有成千上万的产品要使用,这将是一场噩梦。我还尝试了其他插件,包括WebshopLogic提供的与WP相关的项目(WRI),但它不提供此功能。

非常感谢您对如何解决此问题的任何帮助。

我可能必须编写自己的插件才能做到这一点,但我没有很多这样做的经验。

1 个回复
最合适的回答,由SO网友:Jubayer Shamshed 整理而成

我认为以下程序将帮助您完成工作。当您选择勺子类别中的产品时,您应该知道其“id”(how to find category ID).

让我们为以下内容假设勺子ID为“12”,碗ID为“13”。

您应该创建一个函数并传递一个参数。这里的参数是您当前的相关ID,如“12”。此函数将根据alter category返回您的相关产品。

function get_related_posts( $relatedID ) {
    switch ( $relatedID ) {
        case "12":
            $id = 13;
            break;
        default:
            $id = 13;
    }
    $query = new WP_Query ( array (
        \'post_type\' => \'product\',
        \'tax_query\' => array(
            array(
                \'taxonomy\' => \'your_taxonomy_name\',
                \'field\'    => \'id\',
                \'terms\'    => $id,
            ),
        ),
    ) );
    if ( $query->have_posts () ) {
        while ( $query->have_posts () ) {
            $query->the_post ();
            // "Do your html..... and return it."
        }
        wp_reset_postdata ();
        return "Your Html";
    } else {
        return "Nothing Found";
    }
}
在模板文件中,您可以调用此函数,例如,在类别页面中放置此代码:

echo get_related_posts( 12 );
我认为这是最基本的。你可以在WP_Query Codex.希望对你有用。我还没有测试它的稳定性。