ユーザーが商品をカートに追加したときに表示されるモーダル ダイアログがあります。モーダル ダイアログで [カートの更新] ボタンがクリックされたときに、この [ミニ カート] ダイアログを自動的に表示したいのですが、その方法がわかりません。それ。
私は Woocommerce を使用しており、カートの更新ボタンをクリックするとページが更新されます (ただし、モーダル ダイアログは自動的に表示されません)。
Cookieを使用して値を確認し、設定されている場合はモーダルを表示することを読みました。また、カートフォーム内に非表示の入力を追加する可能性も考え、ページのリロード後にURLの最後に文字列を追加しようとしました. これらのどれも私にとって成功したものではなく、そのボタンがクリックされてページがリロードされた後に JS を実行する方法がわかりません..
これが私のモーダルダイアログを起動するものです...
$('#shopModal').foundation('reveal', 'open');
ここにJavaScript全体があります **私の問題は、ページのリロード後にdomがリセットされるため、実際には起動しません。ここに実装された私のメソッドが表示されます..
<script type="text/javascript">
jQuery(document).ready(function($) {
if(window.location.href.indexOf("?added-to-cart=") > 0) {
$('#shopModal').foundation('reveal', 'open');
}
//after update cart has been clicked
$('#update-cart').click(function() {
//SetCookie('CartUpdated','yes',1);
//ShowReveal();
var $el = $('a[href*="/"]');
$el.attr("href", $el.attr("href")+ "?added-to-cart=");
});
var updated_cart = $.cookie('CartUpdated');
if(updated_cart == 'yes' {
$('#shopModal').foundation('reveal', 'open');
}
function ShowReveal() {
$('#shopModal').foundation('reveal', 'open');
}
function SetCookie(cookieName,cookieValue,nDays) {
var today = new Date();
var expire = new Date();
if (nDays==null || nDays==0) nDays=1;
expire.setTime(today.getTime() + 3600000*24*nDays);
document.cookie = cookieName+"="+escape(cookieValue)+ ";expires="+expire.toGMTString();
}
function ReadCookie(cookieName) {
var theCookie=" "+document.cookie;
var ind=theCookie.indexOf(" "+cookieName+"=");
if (ind==-1) ind=theCookie.indexOf(";"+cookieName+"=");
if (ind==-1 || cookieName=="") return "";
var ind1=theCookie.indexOf(";",ind+1);
if (ind1==-1) ind1=theCookie.length;
return unescape(theCookie.substring(ind+cookieName.length+2,ind1));
}
});
});
</script>
そして、ここに短縮形があります
<form action="<?php echo esc_url( $woocommerce->cart->get_cart_url() ); ?>" method="post">
<input id="update-cart" type="submit" class="button" name="update_cart" value="<?php _e( 'Update Cart', 'woocommerce' ); ?>" />
</form>
ページのリロード後に ?added-to-cart= のような文字列を URL に適用してみたり、Cookie を設定してその値を確認してから実行したり、非表示の入力フィールドでできることはありますか? これらすべてを試しましたが、なぜ機能しないのかわかりませんか?