在Woocommerce中以编程方式打开特定产品选项卡

时间:2017-09-14 13:51:45

标签: php wordpress woocommerce tabs product

我正在使用woocommerce。提交某个表单后,我想将其发送到产品页面并打开某个标签,此处为“添加信息”标签...

我怎样才能做到这一点?

我试过像'网站/产品/产品-3 /#tab-additional_information'的网址

但它没有用。

1 个答案:

答案 0 :(得分:1)

<强>更新

是的,这可以通过在 wp_footer 动作挂钩中附加的自定义php函数中的一些javascript和jQuery嵌入代码实现。

电话会在网址中成为女佣: WEBSITE/product/product-3/?tab=additional_information

这是功能代码:

add_action( 'wp_footer', 'custom_reordering_product_tabs_action' );
function custom_reordering_product_tabs_action() {
     // Only in single product pages and a specific url (using GET method) 
    if( isset( $_GET['tab'] ) && is_product()) :
        ?>
        <script type="text/javascript">
        (function($){
            setTimeout(function() {
                $('ul.tabs.wc-tabs > li.active').removeClass("active");
                $('div#tab-description').hide();
                $('ul.tabs.wc-tabs > li.<?php echo $_GET['tab']; ?>_tab').addClass("active");
                $('div#tab-<?php echo $_GET['tab']; ?>').show();
            }, 500);
        })(jQuery);
        </script>
        <?php
    endif;
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

此代码在Woocommerce 3+上测试并正常工作

可能是您可以做的而不是自动打开产品标签,重新排序在第一个位置自动选项卡通过 $_GET < / strong>方法(在网址中添加变量)。

您网址中的来电需要如下: WEBSITE/product/product-3/?tab=additional_information

您可以使用隐藏在 woocommerce_product_tabs 过滤器钩子中的自定义函数来执行此操作:

add_filter( 'woocommerce_product_tabs', 'custom_reordering_product_tabs_action', 98 );
function custom_reordering_product_tabs_action( $tabs ) {
    if( empty( $_GET['tab'] ) ) return $tabs;

    $tabs[$_GET['tab']]['priority'] = 2;

    return $tabs;
}

代码放在活动子主题(或主题)的function.php文件中,或者放在任何插件文件中。

此代码在Woocommerce 3+上测试并正常工作