我正在使用woocommerce。提交某个表单后,我想将其发送到产品页面并打开某个标签,此处为“添加信息”标签...
我怎样才能做到这一点?
我试过像'网站/产品/产品-3 /#tab-additional_information'的网址
但它没有用。
答案 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+上测试并正常工作