使用Ajax在“无穷滚动”之后,Woocommerce在新选项卡中打开产品链接

时间:2018-09-14 05:17:11

标签: php ajax wordpress woocommerce

我设法在Woocommerce网站上获得了所有产品链接,可以在新标签页中打开它们,但是,我正在使用带有ajax的无限滚动来加载更多产品,而通过无限滚动加载的产品无法在新窗口中打开单击它们。

这是我当前在新标签页中打开产品的代码;

remove_action( 'woocommerce_before_shop_loop_item','woocommerce_template_loop_product_link_open', 10 );
add_action ( 'woocommerce_before_shop_loop_item', 'chr_function_open_new_tab', 10 );
function chr_function_open_new_tab() {
echo '<a target="_blank" href="' . get_the_permalink() . '" class="woocommerce-LoopProduct-link">';
}

对此的任何帮助都将受到高度赞赏。 预先感谢!

1 个答案:

答案 0 :(得分:1)

我认为您的remove_action无法采取措施。这就是为什么会带来麻烦。因此,请尝试以下代码:

add_action('init',function(){ remove_action( 'woocommerce_before_shop_loop_item', 'woocommerce_template_loop_product_link_open', 10 ); } ,0);
function chr_function_open_new_tab() {
    echo '<a target="_blank" href="' . get_the_permalink() . '" class="woocommerce-LoopProduct-link">';
}

第二个其他解决方案,您可以使用简单的jQuery

add_action('wp_footer',function(){
if ( has_term( 'stone', 'product_cat' ) ) {
echo '<script>

//for existing content
jQuery(".woocommerce-LoopProduct-link").attr("target","_blank");

//for content part which comes from AJAX
jQuery( document ).ajaxComplete(function() {
jQuery(".woocommerce-LoopProduct-link").attr("target","_blank");
});
</script>';
}
});