我在使用woocommerce。在提交了特定的表单后,我想将它发送到产品页面,打开一个特定的选项卡,这里是“添加信息”选项卡.
我怎样才能做到这一点?
我试过像'WEBSITE/product/product-3/#tab-additional_information‘这样的网址
但没起作用。
发布于 2017-09-15 22:42:13
更新:
是的,只要在wp_footer动作钩子中钩住自定义php函数中的少量javascript和jQuery嵌入代码,这是可能的。
该电话将在url (如: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+上进行了测试,并进行了工作。
可能是您可以做的,而不是自动打开一个产品选项卡,是自动重新排序在第一位置,该选项卡槽方法(在url中添加一个变量)。
您的url中的调用需要如下: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+上进行了测试,并进行了工作。
https://stackoverflow.com/questions/46220988
复制相似问题