在 Woocommerce 中以编程方式打开特定产品选项卡
Open a specific product tab programmatically in a Woocommerce
我正在使用 woocommerce。提交特定表格后,我想通过打开特定选项卡将其发送到产品页面,此处 "Addition Information" 选项卡...
我怎样才能做到这一点?
我试过 url 喜欢 'WEBSITE/product/product-3/#tab-additional_information'
但是没有用。
更新:
是的,这可以通过在 wp_footer
[= 的自定义 php 函数中嵌入一点 javascript 和 jQuery 代码来实现50=] 动作挂钩.
调用将在 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+ 上测试并有效
可能是您可以做的而不是自动打开产品标签,重新排序在第一个位置自动那个标签槽$_GET
方法(在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+ 上测试并有效
我正在使用 woocommerce。提交特定表格后,我想通过打开特定选项卡将其发送到产品页面,此处 "Addition Information" 选项卡...
我怎样才能做到这一点?
我试过 url 喜欢 'WEBSITE/product/product-3/#tab-additional_information'
但是没有用。
更新:
是的,这可以通过在 wp_footer
[= 的自定义 php 函数中嵌入一点 javascript 和 jQuery 代码来实现50=] 动作挂钩.
调用将在 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+ 上测试并有效
可能是您可以做的而不是自动打开产品标签,重新排序在第一个位置自动那个标签槽$_GET
方法(在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+ 上测试并有效