0

ユーザーが商品をカートに追加したときに表示されるモーダル ダイアログがあります。モーダル ダイアログで [カートの更新] ボタンがクリックされたときに、この [ミニ カート] ダイアログを自動的に表示したいのですが、その方法がわかりません。それ。

私は 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 を設定してその値を確認してから実行したり、非表示の入力フィールドでできることはありますか? これらすべてを試しましたが、なぜ機能しないのかわかりませんか?

4

0 に答える 0