我创建了一个产品单页出现在弹出窗口上的功能。所以我所做的是将短代码放在我刚刚制作的弹出窗口上。要在弹出窗口上动态显示单个产品,需要创建 ajax。以下是我所做的:
PHP:
// QUICK VIEW
add_action( 'wp_ajax_nopriv_open_quick_view', 'open_quick_view' );
add_action('wp_ajax_open_quick_view', 'open_quick_view');
function open_quick_view() {
if (isset($_REQUEST)) {
$prodid = $_REQUEST['prodid'];
if ($prodid) {
echo do_shortcode("[product_page id='" . $prodid . "']");
}
}
die();
}
当单击商店产品项目时,我没有重定向到单页,而是实现了preventDefault,然后以动态内容显示弹出窗口,因此如果单击的产品ID是97,那么此短代码将执行php
echo do_shortcode("[product_page id='97']");
jQuery/ajax:
$('.products li.type-product').click(function(event){
event.preventDefault();
$('.quick-view').addClass('active');
var prodid = $(this).find('.add-to-cart-container > div .add_to_cart_button').attr('data-product_id');
$.ajax({
url: my_ajax_object.ajax_url,
data: {
action: "open_quick_view",
prodid: prodid,
},
success: function (data) {
$(data).appendTo('.quick-view--cont');
},
error: function (errorThrown) {
alert('error');
},
});
})
使用ajax时的问题是变体ajax不再起作用。当您选择一个变体时,价格不会出现,就像没有选择任何内容一样。
我期待变量 ajax select 仍然有效。
我认为你的ajax缺少ajax变化的JS。请尝试在你的ajax中hook并应用JS of Variation。