當來自特定類別的產品添加到 woocommerce 購物車時,我試圖通過使用簡單的 JS 函式模擬按鈕點擊來觸發彈出視窗。我已經看到一些人在 simmilair 函式中這樣做,但我無法想象這個作業。
我撰寫了以下函式,如果類別在購物車中并且頁面是結帳頁面,則運行該函式:
add_action( 'woocommerce_before_checkout_form', 'check_category_in_cart' );
function check_category_in_cart() {
$cat_in_cart = false;
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
if ( has_term( 'test', 'product_cat', $cart_item['product_id'] ) ) {
$cat_in_cart = true;
break;
}
}
if ( $cat_in_cart ) {
<script>
jQuery(document).ready(function($) {
$('#pop-up').trigger('click');
});
</script>
}
}
此功能使我的網站無法正常運行。任何人都知道如何讓這個作業?
uj5u.com熱心網友回復:
PHP 等待<?php ?>標簽中的 php 有效代碼,但您正在放置 JavaScript,因此您必須<script>在</script>. 否則你的 jQuery 代碼很好。
if ( $cat_in_cart ) {
?>
<script>
jQuery(function() {
$('#pop-up').trigger('click');
});
</script>
<?php
}
uj5u.com熱心網友回復:
使用setTimeout()。試試下面的代碼。
add_action( 'woocommerce_before_checkout_form', 'check_category_in_cart' );
function check_category_in_cart() {
$cat_in_cart = false;
foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
if ( has_term( 'test', 'product_cat', $cart_item['product_id'] ) ) {
$cat_in_cart = true;
break;
}
}
if ( $cat_in_cart ) { ?>
<script>
jQuery(document).ready(function($) {
setTimeout(function(){
$('#pop-up').trigger('click');
}, 10);
});
</script>
<?php }
}
jQuery(document).ready(function($) {
setTimeout(function(){
$('#pop-up').trigger('click');
}, 10);
jQuery(document).on('click','#pop-up',function(){
alert('trigger');
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<button id="pop-up">popup</button>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/335926.html
標籤:javascript 查询 WordPress的 功能 求购
上一篇:查詢引數的語法不正確
