我正在尝试在 Woocommerce 存档商店页面上运行 javascript(Sweet Alert),仅当购物车中有 5 件商品且页面等于“url/leanshop/”时才执行。
我的添加到购物车功能使用的是 AJAX。下面的代码可以工作......但我无法让它在上述条件下触发。目前仅在每次通过 AJAX 将产品添加到购物车时触发。
到目前为止我的代码:
add_action( 'wp_footer', 'items_in_cart_trigger' );
function items_in_cart_trigger() {
global $woocommerce;
// Set the minimum number of products in cart
$maximum_num_products = 5;
// Get the Cart's total number of products
$cart_num_products = WC()->cart->cart_contents_count;
// Compare values and if required amount of items in cart, display popup.
if( $cart_num_products == $maximum_num_products && is_page( '/leanshop/' ) ) {
?>
<script src="https://unpkg.com/<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="75060210100114191007014735425b47455b44" rel="noreferrer noopener nofollow">[email protected]</a>/dist/sweetalert2.all.js"></script>
<script type="text/javascript">
(function($){
$('body').on( 'added_to_cart', function(){
// Test output on JS console
console.log('added_to_cart');
// Call Sweet Alert PopUp Here
swal(
'You added all the items!',
'Proceed to checkout?',
'success')
});
})(jQuery);
</script>
<?php
}
}
更新: Javascript 使用以下 is_page() IF 语句。所以问题是上面的逻辑,我试图计算购物车中的商品数量,并查看它们是否等于商店存档页面上的某个值。任何人都可以建议正确的 Woocommerce 代码逻辑来这样做吗?
if( is_page('leanshop')) {
最佳答案
尝试:
if( $cart_num_products === $maximum_num_products && is_page( '/leanshop/' ) ) {
致test for equality ,使用三重等于(当类型相同时)或双重等于(当想要强制类型时,但要小心)。
关于javascript - 如果页面等于 X 并且购物车商品数量等于 Y,则在 Woocommerce 上运行 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50338378/