app/template/default/Block/one_touch_popup.twig line 1

Open in your IDE?
  1. <link rel="stylesheet" href="{{ asset('assets/css/block/one_touch_modal.css') }}">
  2. <style>
  3.    .modal_payment_kg .close {
  4.         position: absolute;
  5.         top: -30px;
  6.         right: 5px;
  7.         width: 30px !important;
  8.         height: 30px;
  9.         opacity: 1;
  10.         background: url('{{asset('assets/img/icon/icon-close.svg')}}') no-repeat center center;
  11.         filter: invert(100%) sepia(54%) saturate(1155%) hue-rotate(235deg) brightness(119%) contrast(107%);
  12.     }
  13.      .info .member .save-money {
  14.         display: flex;
  15.         align-items: center;
  16.         background:#000;
  17.         position:relative;
  18.         font-family: "Cabin";
  19.         font-weight:600;
  20.         font-size:16px;
  21.         line-height:19.44px;;
  22.         white-space: nowrap;
  23.         color: #fff;
  24.         height:30px;
  25.         padding: 0 13px;
  26.         margin-top:9px;
  27.         background: url('{{asset('assets/img/bg_kg_family_black.svg')}}') no-repeat center center;
  28.         background-size: cover;
  29.         width: fit-content;
  30.     }
  31.      .info .member .save-money::before {
  32.         content: "";
  33.         width:5px;
  34.         height:30px;
  35.         top:0;
  36.         left:0;
  37.         position:absolute;
  38.         background: url({{asset('assets/img/ribbon-arrow.png')}}) no-repeat center center;
  39.     }
  40.      .info .member .save-money:after {
  41.         content:"";
  42.         width:5px;
  43.         height:30px;
  44.         top:0;
  45.         right:0;
  46.         position:absolute;
  47.         background: url({{asset('assets/img/ribbon-arrow.png')}}) no-repeat center center;
  48.         transform: rotate(180deg);
  49.     }
  50. </style>
  51. <div style="display:none" class="background_popup">
  52. </div>
  53. <div style="display:none" class="modal_onetouch_payment" data-form="">
  54.         <div class="ec-icon img-close">
  55.             <img src="{{ asset('assets/img/icon/icon-close.svg') }}" alt="remove">
  56.         </div>
  57.     <div class="ec-modal-overlay">
  58.         <div class="modal-order">
  59.             <div class="coundown-dialog" style="margin-top:0">
  60.                 <div class="box-image">
  61.                     <img class="product-image-order" src=""/>
  62.                 </div>
  63.                 <div class="box-content info">
  64.                     {% if Product is defined %}
  65.                         {% set giftCardCategory = Product.ProductCategories|filter(pc => pc.Category.name == 'ギフトカード')|first %}
  66.                         {% if not giftCardCategory %}
  67.                         <p href="{{ url('product_detail', {'id': 522, 'slug': ''}) }}" class="point point-bonus">
  68.                             獲得予定予定 ポイント:
  69.                             {% if Customer %}
  70.                                 <span class="point" id="add_pt">0</span>pt
  71.                             {% endif %}
  72.                         </p>
  73.                         {% endif %}
  74.                     {% endif %}
  75.                     {% if Customer %}
  76.                         <div class="no-member" style="display:{{Customer.getTrialFamilyDate or Customer.prime_member != 0 ? "none" : "block" }}">
  77.                            
  78.                             <div class="no-member-info" style="display:flex; align-items: center;">
  79.                                 <div class="left">
  80.                                     {% if Product is defined and Product.id != 522 and Product.id != 814 %}
  81.                                     <div class="checkbox" id="checkbox-resign"></div>
  82.                                     {% endif %}
  83.                                 </div>
  84.                                 <div> 
  85.                                     <p class="save-info">
  86.                                     この注文でKG Familyの無料<br>
  87.                                     トライアルをご利用いただくと<br>
  88.                                     <span class="save-value">¥880</span>お得になります</p>
  89.                                     <p class="cost">1ヶ月無料 その後¥1,100/月</p>
  90.                                 </div>
  91.                             </div>
  92.                             
  93.                         </div>
  94.                         <div class="member" style="display:{{Customer.getTrialFamilyDate or Customer.prime_member != 0 ? "block" : "none" }}">
  95.                             {% set giftCardCategory = Product is defined ? Product.ProductCategories|filter(pc => pc.Category.name == 'ギフトカード')|first : null %}
  96.                             {% if not giftCardCategory %}
  97.                             <div class="category">
  98.                                 <div class="category-item">
  99.                                     ポイントの内訳
  100.                                 </div>
  101.                             </div>
  102.                             <div>
  103.                                 <table>
  104.                                     <tr>
  105.                                         <td class="td-bonus-text">
  106.                                             <div class="bonus-text">{{ get_urank_name(Customer.owner_rank) }}ポイント</div>
  107.                                         </td>
  108.                                         <td class="no-warp bonus-per">{{ Customer.owner_rank + 1}}%</td>
  109.                                         <td class="no-warp bonus-value"><span class="normal-bonus-value">0</span>pt相当</td>
  110.                                     </tr>
  111.                                     <tr>
  112.                                         <td >
  113.                                             <div class="bonus-text">KG Familyポイント</div>
  114.                                         </td>
  115.                                         <td class="no-warp bonus-per">3%</td>
  116.                                         <td class="no-warp bonus-value"><span class="kg-bonus-value">0</span>pt相当</td>
  117.                                     </tr>
  118.                                 </table>
  119.                             </div>
  120.                             
  121.                             <div class="save-money">
  122.                                 <div class="left">
  123.                                     <img src="{{ asset('assets/img/icon/icon-kg-yellow.svg') }}">
  124.                                 </div>
  125.                                 <div>
  126.                                     <p>で<span id="onetouch_discount"></span>お得になります</p>
  127.                                 </div>
  128.                             </div>
  129.                             {% endif %}
  130.                         </div>
  131.                     {% endif %}
  132.                     
  133.                 </div>
  134.             </div>
  135.             {% set Customer = app.user %}
  136.             
  137.             {% if Customer and Customer.pref %}
  138.                 <div class="account-list">
  139.                     <div class="account-list-item">
  140.                         <div class="left show_update_shipping">
  141.                             {{ 'お届け先'|trans }}
  142.                         </div>
  143.                         <div class="right">
  144.                             <p class="detail address-customer">
  145.                                 {% if Customer.name01 == "ゲスト" %}
  146.                             <p class="ec-telInput"><span class="customer-edit customer-phone_number">{{ '固定お届け先がありません。'|trans }}</span></p>
  147.                                 {% else %}
  148.                                     {{ ''|trans }} {{ Customer.name01 }} {{ Customer.name02 }}{{ ' 様'|trans }} 〒 {{ Customer.postal_code }} {{ Customer.pref }} {{ Customer.addr01 }}{{ Customer.addr02 }} {{ Customer.phone_number }}
  149.                                 {% endif %}
  150.                             </p>
  151.                             <div  data-stripe="{{ StripeCustomer ? StripeCustomer.getStripeCustomerId : null }}" class="ec-Payment"></div>
  152.                         </div>
  153.                     </div>
  154.                     <div class="account-list-item">
  155.                         <div class="left show_update_card" data-id="{{ PaymentDefault ? PaymentDefault.id : "" }}">
  156.                             {{ 'お支払い方法'|trans }}
  157.                         </div>
  158.                         <div class="right">
  159.                             <p class="detail">
  160.                                 {% if PaymentDefault %}
  161.                                     {% set Card = PaymentDefault.card %}
  162.                                     <div class="ec-Payment__card">
  163.                                         <span style="display:flex;justify-content:space-between;width:100%;"><span class="card-type detail" style="text-transform:capitalize;">{{Card.brand}} * {{Card.last4}}</span> <span class="card-exp" style="text-align:right">{{ Card.exp_month }}/{{ Card.exp_year }}</span></span>
  164.                                     </div>
  165.                                     {% else %}
  166.                                     <div class="ec-Payment__card">
  167.                                         <span style="display:flex;justify-content:space-between;width:100%;"><span class="card-type detail" style="text-transform:capitalize;">未設定</span><span class="card-exp tax-value detail" style="text-align:right; display:none"></span></span>
  168.                                     </div>
  169.                                 {% endif %}
  170.                             </p>
  171.                         </div>
  172.                     </div>
  173.                     <div class="account-list-item">
  174.                         <div class="left show_total_payment">
  175.                         {{ '合計'|trans }}
  176.                         <div id="productRole_quantity" class="hidden">1</div>
  177.                         </div>
  178.                         <div class="right">
  179.                             <div class="infoRight">
  180.                                 <p class="detail tax-value" id="productRole_totalPayment"></p>
  181.                                 <p>(税 込)</p>
  182.                             </div>
  183.                         </div>
  184.                     </div>
  185.                 </div>
  186.             {% else %}
  187.                 <div style="width:100%;text-align:center">
  188.                     <a style="color:red;font-weight:600;" href="{{ url('mypage_login') }}">ログイン</a>
  189.                 </div>
  190.                 
  191.             {% endif %}
  192.             
  193.             <div class="row slider-box" id="slider-account">
  194.                 <div class="slider-onetouch" >
  195.                     <div class="action-slide-auto" style="position: fixed; top: 0; left: 0; right: 0; width: 20px; height: 20px; background: #ffffff;opacity: 0;">hehe</div>
  196.                     <div class="thumb drag-default">
  197.                         <img src="{{ asset('assets/img/icon/icon-three-arrow-right.svg') }}">
  198.                     </div>
  199.                     <div class="slider-mess slider-mess-product" data-unlock-text="注文確定">
  200.                         {% if PaymentDefault %}
  201.                         <span style="font-size: 14px;white-space: nowrap;">
  202.                         スワイプして注文
  203.                         <span>
  204.                         {% else %}
  205.                         <span style="font-size: 14px;">
  206.                             お支払い方法をクリックし<br>
  207.                             クレジットカード登録をお願いします
  208.                         <span>
  209.                         {% endif %}
  210.                     </div>
  211.                 </div>
  212.             </div>
  213.         </div>
  214.         {% if Customer and Customer.pref %}
  215.             <div class="update_shipping hidden">
  216.                 {% include "Block/one_touch_shipping_popup.twig" with {'form_create_address' : get_form_create_address(null, Customer)} %}
  217.             </div>
  218.             <div class="update_card hidden">
  219.                 {% include "Block/one_touch_card_popup.twig" with {'form_create_card' : get_form_create_card(null, Customer), 'StripePublicKey': StripePublicKey} %}
  220.             </div>
  221.             <div class="total_payment hidden">
  222.                 {% include "Block/one_touch_total_payment.twig" %}
  223.             </div>
  224.             <div class="modal_kg_family hidden">
  225.                 {% include "Block/one_touch_kg_family_info.twig" with {'PaymentDefault' : PaymentDefault, 'StripeCustomer': StripeCustomer} %}
  226.                 
  227.             </div>
  228.             <div class="modal_payment_kg hidden">
  229.                 {% include "Block/one_touch_kg_family_payment.twig"  with {'PaymentDefault' : PaymentDefault} %}
  230.             </div>
  231.             <div class="modal_kg_bonus_detail hidden">
  232.                 {% include "Block/one_touch_kg_bonus_detail.twig" %}
  233.             </div>
  234.             {% if Product is defined and Product.id == get_trial_ambassador_product_id() %}
  235.                 <div class="modal_payment_ambassador hidden">
  236.                 {% include "Block/OneTouchPayment/one_touch_ambassador_popup.twig" with {'PaymentDefault' : PaymentDefault} %}
  237.                 </div>
  238.             {% endif %}
  239.         {% endif %}
  240.         
  241.     </div> 
  242. </div>
  243. <div style="display:none" class="modal_payment_kg_complete">
  244.     <div class="ec-modal-overlay">
  245.         <div class="">
  246.             <p class="title">KG Familyへのご入会<br/>
  247.                 ありがとうございます。</h1>
  248.             <p class="sub-title">今回のご注文から<br/>
  249.                 以下のサービスが適用されます</p>
  250.             <ul>
  251.                 <li>ポイント3%アップ</li>
  252.                 <li>送料¥880円が無料</li>
  253.             </ul>
  254.             <button class="btn-complete-close">買い物を続ける</button>
  255.         </div>
  256.     </div> 
  257. </div>
  258. <div style="display:none" class="modal_loading_payment">
  259.     <div class="ec-loadingPayment">
  260.         <img class="loading" width="50px" height="50px" src="/html/template/default/assets/img/rolling.svg" />
  261.         <img class="complete" style="display:none" width="50px" height="50px" src="/html/template/default/assets/icon/payment_complete.svg" />
  262.         <img class="error" style="display:none" width="50px" height="50px" src="/html/template/default/assets/icon/payment_error.svg" />
  263.         <p class="content">決済中</p>
  264.     </div> 
  265. </div>
  266. <script src="/html/template/default/assets/oneclick/js/jquery.slideToUnlock.js"></script>  
  267. <script>
  268.     let is_kg_family = false;
  269.             function slider(id, eventActive){
  270.                 const slider = document.querySelector(`#${id} .slider-onetouch`);
  271.                 if(!slider) return;
  272.                 const thumb = slider.querySelector('.slider-onetouch .thumb');
  273.                 const content = slider.querySelector('.content');
  274.                 let startX = 0;
  275.                 let slideW = slider.offsetWidth;
  276.                 let isTouchThumb = false;
  277.                 let isCallActive = false;
  278.                 let thumbWidth = 77;
  279.                 slider.addEventListener('touchstart', handleTouchStart);
  280.                 slider.addEventListener('touchmove', handleTouchMove);
  281.                 slider.addEventListener('touchend', handleTouchEnd);
  282.                 slider.addEventListener('mousedown', handleMouseStart);
  283.                 slider.addEventListener('mousemove', handleMouseMove);
  284.                 slider.addEventListener('mouseup', handleTouchEnd);
  285.                 slider.addEventListener('mouseleave', handleTouchEnd);
  286.                 function handleTouchStart(event) {
  287.                     startX = event.touches[0].clientX;
  288.                     handleStart(startX);
  289.                 }
  290.                 function handleMouseStart(event) {
  291.                     startX = event.offsetX;
  292.                     handleStart(startX);
  293.                 }
  294.                 function handleStart(startX){
  295.                     slideW = slider.offsetWidth;
  296.                     isTouchThumb = startX <= ( thumbWidth + 20);
  297.                     isCallActive = false;
  298.                 }
  299.                 function handleTouchMove(event) {
  300.                     if(!isTouchThumb) return;
  301.                     const currentX = event.touches[0].clientX;
  302.                     handleMove(currentX);
  303.                 }
  304.                 function handleMouseMove(event) {
  305.                     if(!isTouchThumb) return;
  306.                     const currentX = event.offsetX;
  307.                     handleMove(currentX);
  308.                 }
  309.                 function handleMove(currentX) {
  310.                     if(!isTouchThumb) return;
  311.                     const deltaX = currentX - startX + thumbWidth;
  312.                     if(deltaX < thumbWidth)
  313.                         deltaX = thumbWidth;
  314.                         
  315.                     thumb.style.setProperty('width',`${Math.min(deltaX,slideW)}px`, 'important');
  316.                     if (deltaX > slideW && !isCallActive) {
  317.                         eventActive();
  318.                         isCallActive= true;
  319.                     }
  320.                 }
  321.                 function handleTouchEnd() {
  322.                     if(!isCallActive){
  323.                         thumb.style.setProperty('width',`${thumbWidth}px`, 'important');
  324.                     }
  325.                     isTouchThumb = false;
  326.                 }
  327.             }
  328.             function lockSlider(id){
  329.                 const slider = document.querySelector(`#${id} .slider-onetouch`);
  330.                 if(!slider) return;
  331.                 const sliderMess = slider.querySelector(`.slider-mess`);
  332.                 let messUnlock = sliderMess.attr("data-unlock-text");
  333.                 if(messUnlock){
  334.                     sliderMess.html(messUnlock);
  335.                 }
  336.             }
  337.             function verify3dsecure(data) 
  338.             {
  339.                 return window.location.href = data.verify_3dsecure_url;
  340.             }
  341.         document.addEventListener('DOMContentLoaded', function() {
  342.             const actionSlideAuto = document.querySelector('.action-slide-auto');
  343.             actionSlideAuto.addEventListener('click', function(){
  344.                 $('.modal_onetouch_payment').css('display','none');
  345.                 $(".modal_loading_payment").css('display','block');
  346.                 loadingPayment()
  347.                 isloading = true;
  348.                 let stripe_payment_method_id = $('.show_update_card').attr("data-id");
  349.                 let stripe_customer_id = $('.ec-Payment').attr("data-stripe")
  350.                 let dataCheckout = {
  351.                     order_id : $('#order_id').val(),
  352.                     _shopping_order: {
  353.                         stripe_payment_method_id: stripe_payment_method_id,
  354.                         stripe_customer_id: stripe_customer_id,
  355.                         stripe_save_card: 1
  356.                     },
  357.                     is_one_touch: true
  358.                 };
  359.                             $.ajax({
  360.                                 url: "{{ url('execute_one_touch_checkout') }}",
  361.                                 type: "POST",
  362.                                 data: dataCheckout,
  363.                                 dataType: 'json',
  364.                                 success: function (data) {
  365.                                     if (data.done) {
  366.                                         shopping_page = window.location.href == "{{ url('shopping') }}" ? 1 : 0;
  367.                                         if(data.gift_card == true){
  368.                                             $.ajax({
  369.                                                 url: "{{ url('update_gift_card') }}",
  370.                                                 type: "POST",
  371.                                                 data: {
  372.                                                     order_id : $('#shopping-form').attr("data-order"),
  373.                                                     is_shopping_page: shopping_page
  374.                                                 },
  375.                                                 dataType: 'json',
  376.                                                 success: function (data) {
  377.                                                     let curTime = new Date().getTime();
  378.                                                     localStorage.setItem("hide-modal-gift-card-{{app.user.id is defined ? app.user.id : ''}}",curTime);
  379.                                                     if(shopping_page == 1){
  380.                                                         $('.modal_loading_payment').css('display','none');
  381.                                                         $('.background_popup').css('display','none');
  382.                                                         $('#buy_gift_card_comfirm').modal('show');
  383.                                                     }else{
  384.                                                         showSuccess();
  385.                                                         window.location.replace("{{ url('shopping_complete') }}")
  386.                                                     }
  387.                                                 },
  388.                                                 error: function () {
  389.                                                     showError();
  390.                                                     $('.background_popup').css('display','none');
  391.                                                     $('.modal_loading_payment').css('display','none');
  392.                                                     $('#shopping_order_use_point').val(data.use_point);
  393.                                                     window.location.replace("{{ url('shopping_error') }}")
  394.                                                 }
  395.                                             })
  396.                                         }
  397.                                         else if(data.rec_order_id){
  398.                                             showSuccess();
  399.                                             window.location.replace(data.url.targetUrl)
  400.                                         }
  401.                                         else{
  402.                                             showSuccess();
  403.                                             window.location.replace("{{ url('shopping_complete') }}")
  404.                                         }
  405.                                     } else {
  406.                                         showError();
  407.                                         window.location.replace("{{ url('shopping_error') }}")
  408.                                     }
  409.                                     
  410.                                 },
  411.                                 error: function () {
  412.                                     showError();
  413.                         window.location.replace("{{ url('shopping_error') }}")
  414.                     }
  415.                 })                
  416.                  setTimeout(function() {
  417.                  // slider.switch_off()
  418.                  }, 3000);
  419.             })
  420.             let isloading = false;
  421.             if(!$('.show_update_card').attr("data-id")){
  422.                 $('.slider-onetouch').addClass('hiden-payment')
  423.             }
  424.              $('.modal_onetouch_payment').css('display','none');
  425.             $('.background_popup').css('display','none');
  426.             $('.modal_loading_payment').css('display','none');
  427.             $('.modal_loading_payment').css('display','none');
  428.             $('.show_update_shipping').on('click', function(){
  429.                 {% if Customer %}
  430.                     {% if Customer.name01 == "ゲスト" %}
  431.                         window.location.replace("{{ url('mypage_change') }}")
  432.                     
  433.                     {% elseif Customer.pref %}
  434.                             $('.update_shipping').removeClass("hidden");
  435.                             $('.update_card').addClass("hidden");
  436.                             $('.modal-order').css('display','none');
  437.                             $('.coundown-dialog-create-shipping').css('display','none')
  438.                             $('.coundown-dialog-update-shipping').css('display','block')
  439.                             let radioHTML = `<img class="loading_address" width="25px" height="25px" src="/html/template/default/assets/img/rolling.svg" />`;
  440.                             let shippingId = $('.show_update_shipping').attr('data-shippingid')
  441.                             
  442.                             $("#address-list").html(radioHTML);
  443.                             $.ajax({
  444.                                 url: "/products/show_shipping/" + $('.show_update_shipping').attr("data-id"),
  445.                                 type: "POST",
  446.                                 success: function (data) {
  447.                                     let Shippings = data.Shippings;
  448.                                     let radioHTML = "";
  449.                                     $.each(Shippings, function( index, value ) {
  450.                                         let id = value.id;
  451.                                         if(id == null){
  452.                                             id = 0;
  453.                                         }
  454.                                         let isChecked = '';
  455.                                         if(shippingId == id){
  456.                                             isChecked = 'checked'
  457.                                         }
  458.                                         radioHTML += '<label><input type="radio" '+ isChecked +' name="radio_address" value="' + id + '" ' + value.default + ' > ' + value.name01+value.name02+' ('+value.kana01+value.kana02+') 様'+' 〒'+value.postal_code+ ' ' +value.pref +value.addr01+value.addr02+' '+value.phone_number + '</label></br>';
  459.                                     });
  460.                                    // $(".show_update_card").html('お支払い');
  461.                                     $("#address-list").html(radioHTML);
  462.                                 },
  463.                                 error: function () {
  464.                                     showError();
  465.                                 }
  466.                             })
  467.                     {% else %}
  468.                         window.location.replace("{{ url('mypage_change') }}")
  469.                     {% endif %}
  470.                 {% endif %}
  471.             });
  472.             $('.show_update_card').on('click', function(){
  473.                 
  474.                 if($(this).hasClass('kg')){
  475.                     is_kg_family = true;
  476.                 } else if($(this).hasClass('ambassador')) {
  477.                     is_kg_family = 2;
  478.                 }
  479.                 else{
  480.                     is_kg_family = false;
  481.                 }
  482.                 ShowListCard()
  483.                 $(".submit-card").css('display','none');
  484.                 let radioHTML = `<img class="loading_address" width="25px" height="25px" src="/html/template/default/assets/img/rolling.svg" />`;
  485.                 $("#card-list").html(radioHTML);
  486.                 {% if Customer and Customer.pref %}
  487.                     let stripe_payment_method_id = $('.show_update_card').attr("data-id");
  488.                     let dataCard = {
  489.                         stripe_payment_method_id: stripe_payment_method_id,
  490.                     }
  491.                     $.ajax({
  492.                         url: "/products/show_card/" + "{{ Customer.id }}",
  493.                        type: "POST",
  494.                         data: dataCard,
  495.                         dataType: 'json',
  496.                        success: function (data) {
  497.                            let Cards = data.Cards;
  498.                            if(data.done == false || Cards == null){
  499.                                 $('.coundown-dialog-create-card').css('display','block')
  500.                                 $('.coundown-dialog-update-card').css('display','none')
  501.                                 let radioHTML = "固定決済クレジットカードがありません。";
  502.                                 $("#card-list").html(radioHTML);
  503.                                 $(".submit-card").css('display','none');
  504.                            }
  505.                            if(Cards != null && Cards.length > 0){
  506.                             let radioHTML = "";
  507.                             $.each(Cards, function( index, value ) {
  508.                                radioHTML += '<label class="card-item"><input type="radio" name="radio_card" value="' + value.id + '" ' + value.default + ' > <div> <span class="' + value.brand + '">' + value.brand+' 末尾 '+value.last4+ '</span>  <span class="exp">' + value.exp_month + `/` +value.exp_year+ '</span></div></label>';
  509.                             });
  510.                             $("#card-list").html(radioHTML);
  511.                             $(".submit-card").css('display','flex');
  512.                            }
  513.                            else{
  514.                             let radioHTML = "固定の決済クレジットカードがまだ登録されていません。";
  515.                             $("#card-list").html(radioHTML);
  516.                             $(".submit-card").css('display','none');
  517.                            }
  518.                            
  519.                         },
  520.                         error: function () {
  521.                             showError();
  522.                         }
  523.                     })
  524.                 {% endif %}
  525.             })
  526.             $('.show_total_payment').on('click', function(){
  527.                 const formatPrice = Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' });
  528.                 document.getElementById("payment_quantity").textContent = document.getElementById("productRole_quantity").textContent;
  529.                 ShowTotal()
  530.             })
  531.             $('.save-money').on('click', function(){
  532.                 showKgDetail();
  533.             })
  534.             function ShowTotal(){
  535.                 $('.update_shipping').addClass("hidden");
  536.                 $('.update_card').addClass("hidden");
  537.                 $('.total_payment').removeClass("hidden");
  538.                 $('.modal-order').css('display','none');
  539.                 $('.coundown-dialog-create-shipping').css('display','none')
  540.                 $('.coundown-dialog-update-card').css('display','block')
  541.                 $('.coundown-dialog-create-card').css('display','none')
  542.             }
  543.             function ShowListCard(){
  544.                 $('.update_shipping').addClass("hidden");
  545.                 $('.update_card').removeClass("hidden");
  546.                 $('.total_payment').addClass("hidden");
  547.                 $('.modal_kg_family').addClass("hidden");
  548.                 $('.modal_payment_kg').addClass("hidden");
  549.                 $('.modal_payment_ambassador').addClass("hidden");
  550.                 
  551.                 $('.modal-order').css('display','none');
  552.                 $('.coundown-dialog-create-shipping').css('display','none')
  553.                 $('.coundown-dialog-update-card').css('display','block')
  554.                 $('.coundown-dialog-create-card').css('display','none')
  555.             }
  556.             function showSuccess(){
  557.                 $('.loading').css('display','none');
  558.                 $('.complete').css('display','block');
  559.                 $('.loading').css('display','none');
  560.                 $('.content').text('決済は完了しました。'); 
  561.             }
  562.             function showKgDetail(){
  563.                 $('.modal-order').css('display','none');
  564.                 $('.modal_kg_bonus_detail').removeClass("hidden");
  565.                 $('.modal_onetouch_payment').css("background","#000");
  566.                 
  567.             }
  568.             function showError(){
  569.                 $('.loading').css('display','none');
  570.                 $('.error').css('display','block');
  571.                 $('.complete').css('display','none');
  572.                 $('.content').text('決済が失敗しました。');
  573.                 isloading = true; 
  574.             }
  575.             function loadingPayment(){
  576.                     $('.loading').css('display','block');
  577.                     $('.error').css('display','none');
  578.                     $('.complete').css('display','none');
  579.                     $('.content').text('決済中');
  580.             }
  581.             function closeLoading(){
  582.                 $('.loading').css('display','none');
  583.                 $('.error').css('display','none');
  584.                 $('.complete').css('display','none');
  585.             }
  586.             function showModal(){
  587.                 $('.modal_onetouch_payment').css('display','block');
  588.             }
  589.             $('#checkbox-resign').on('click', function(event) {
  590.                 $('.modal_kg_family').removeClass("hidden");
  591.                 $('.modal-order').css('display','none');
  592.             });
  593.             $('.btn-complete-close').on('click', function(event) {
  594.                 $('.modal_payment_kg_complete').css('display','none');
  595.                 if(!$('.resign-trial').attr("data-trial")){
  596.                     if($('#order_id').attr("data-regular") == 1){
  597.                         $('.open-one-touch-related-product').click();
  598.                     }else{
  599.                         $('.open-one-touch').click();
  600.                     }
  601.                 }else{
  602.                      $('.background_popup').css('display','none');
  603.                 }
  604.                 $('.resign-trial').css('display','none');
  605.             });
  606.             var $redirectCallback = function() {
  607.                 loadingOverlay();
  608.                 console.log([$(this),$(this).attr('data-path')])
  609.                 var url = $(this).attr('data-path')
  610.                 if(url){
  611.                     $('#shopping_order_redirect_to').val(url);
  612.                 }else{
  613.                     $('#shopping_order_redirect_to').val("/shopping");
  614.                 }
  615.                 $('#shopping-form').attr('action', '{{ url("shopping_redirect_to") }}').submit();
  616.                 setTimeout(function () {
  617.                     loadingOverlay("hide");
  618.                 }, 2000);
  619.             };
  620.             slider("slider-account", ()=>{
  621.                 $('.modal_onetouch_payment').css('display','none');
  622.                 $(".modal_loading_payment").css('display','block');
  623.                 loadingPayment()
  624.                 isloading = true;
  625.                 let stripe_payment_method_id = $('.show_update_card').attr("data-id");
  626.                 let stripe_customer_id = $('.ec-Payment').attr("data-stripe")
  627.                 let dataCheckout = {
  628.                     order_id : $('#order_id').val(),
  629.                     _shopping_order: {
  630.                         stripe_payment_method_id: stripe_payment_method_id,
  631.                         stripe_customer_id: stripe_customer_id,
  632.                         stripe_save_card: 1
  633.                     },
  634.                     is_one_touch: true
  635.                 };
  636.                             $.ajax({
  637.                                 url: "{{ url('execute_one_touch_checkout') }}",
  638.                                 type: "POST",
  639.                                 data: dataCheckout,
  640.                                 dataType: 'json',
  641.                                 success: function (data) {
  642.                                     if (data.need_verify) {
  643.                                         return verify3dsecure(data);
  644.                                     }
  645.                                     if (data.done) {
  646.                                         shopping_page = window.location.href == "{{ url('shopping') }}" ? 1 : 0;
  647.                                         if(data.gift_card == true){
  648.                                             $.ajax({
  649.                                                 url: "{{ url('update_gift_card') }}",
  650.                                                 type: "POST",
  651.                                                 data: {
  652.                                                     order_id : $('#shopping-form').attr("data-order"),
  653.                                                     is_shopping_page: shopping_page
  654.                                                 },
  655.                                                 dataType: 'json',
  656.                                                 success: function (data) {
  657.                                                     let curTime = new Date().getTime();
  658.                                                     localStorage.setItem("hide-modal-gift-card-{{app.user.id is defined ? app.user.id : ''}}",curTime);
  659.                                                     if(shopping_page == 1){
  660.                                                         $('.modal_loading_payment').css('display','none');
  661.                                                         $('.background_popup').css('display','none');
  662.                                                         $('#buy_gift_card_comfirm').modal('show');
  663.                                                     }else{
  664.                                                         showSuccess();
  665.                                                         window.location.replace("{{ url('shopping_complete') }}")
  666.                                                     }
  667.                                                 },
  668.                                                 error: function () {
  669.                                                     showError();
  670.                                                     $('.background_popup').css('display','none');
  671.                                                     $('.modal_loading_payment').css('display','none');
  672.                                                     $('#shopping_order_use_point').val(data.use_point);
  673.                                                     window.location.replace("{{ url('shopping_error') }}")
  674.                                                 }
  675.                                             })
  676.                                         }
  677.                                         else if(data.rec_order_id){
  678.                                             showSuccess();
  679.                                             window.location.replace(data.url.targetUrl)
  680.                                         }
  681.                                         else{
  682.                                             showSuccess();
  683.                                             window.location.replace("{{ url('shopping_complete') }}")
  684.                                         }
  685.                                     } else {
  686.                                         showError();
  687.                                         window.location.replace("{{ url('shopping_error') }}")
  688.                                     }
  689.                                     
  690.                                 },
  691.                                 error: function () {
  692.                                     showError();
  693.                         window.location.replace("{{ url('shopping_error') }}")
  694.                     }
  695.                 })                
  696.                  setTimeout(function() {
  697.                  // slider.switch_off()
  698.                  }, 3000);
  699.             })
  700.             function CheckingCardModal(){
  701.                 {# if($('.show_update_card').attr("data-id")){
  702.                     $('.slider').removeClass('hiden-payment')
  703.                 }else{
  704.                     $('.slider').addClass('hiden-payment')
  705.                 } #}
  706.             }
  707.             function closePopup(){
  708.                 $('.background_popup').click(function(){
  709.                     if(isloading==false){
  710.                         $('.update_shipping').addClass("hidden");
  711.                         $('.modal_onetouch_payment').css('display','none');
  712.                         $('.background_popup').css('display','none');
  713.                         $('.modal_loading_payment').css('display','none');
  714.                         $('.modal-order').css('top','20%');
  715.                         $('.modal_kg_family').addClass("hidden");
  716.                         $('.modal_payment_kg').addClass("hidden");
  717.                     }
  718.                     }
  719.                 );
  720.             }
  721.             {% if Customer %}
  722.                 slider("payment-kg-slider",()=>{
  723.                     loadingPayment();
  724.                     $('.modal_onetouch_payment').css('display','none');
  725.                     $('.modal_loading_payment').css('display','block');
  726.                     isloading = true;
  727.                     let stripe_payment_method_id = $('.show_update_card').attr("data-id");
  728.                     let stripe_customer_id = $('.ec-Payment').attr("data-stripe")
  729.                     let dataCheckout = {
  730.                         order_id : $('#order_id').val(),
  731.                         _shopping_order: {
  732.                             stripe_payment_method_id: stripe_payment_method_id,
  733.                             stripe_customer_id: stripe_customer_id,
  734.                             stripe_save_card: 1,
  735.                             is_trial_family: true
  736.                         }
  737.                     };
  738.                     $.ajax({
  739.                         url: "{{ url('execute_one_touch_checkout') }}",
  740.                         type: "POST",
  741.                         data: dataCheckout,
  742.                         dataType: 'json',
  743.                         success: function (data) {
  744.                         if (data.need_verify) {
  745.                             return verify3dsecure(data);
  746.                         }
  747.                         if (data.done) {
  748.                                 $('.modal_payment_kg').addClass("hidden");
  749.                                 $('.modal-order').css('display','block');
  750.                                 $('.modal_loading_payment').css('display','none');
  751.                                 $('.modal_onetouch_payment').css('display','none');
  752.                                 $('.modal_payment_kg_complete').css('display','block');
  753.                                 $('.background_popup').css('display','block');
  754.                             $('.no-member').css('display','none');
  755.                             $('.member').css('display','block');
  756.                             $('#pt_family_benefits').css("display","");
  757.                             $('#pt_normal').css("display","none");
  758.                             $('#save-value-normal').css("display","");
  759.                             $('#save-value-benefits').css("display","none");
  760.                             $('#delivery_kg_family').css("display","block");
  761.                             $('#discount_total_li').css("opacity","0");
  762.                             
  763.                             let total = $('#productRole_totalPayment').attr("total");
  764.                             let delivery = $('#productRole_totalPayment').attr("delivery");
  765.                             const formatPrice = Intl.NumberFormat('ja-JP', { style: 'currency', currency: 'JPY' });
  766.                             let payment = formatPrice.format(total - delivery);
  767.                             $('#productRole_totalPayment').text(payment);
  768.                             $('#payment_total').text(payment);
  769.                         } else {
  770.                             showError();
  771.                             window.location.replace("{{ url('shopping_error') }}")
  772.                         }
  773.                         },
  774.                         error: function () {
  775.                             showError();
  776.                             window.location.replace("{{ url('shopping_error') }}")
  777.                         }
  778.                     })
  779.                 })
  780.                 slider("payment-ambassador-slider",()=>{
  781.                     loadingPayment();
  782.                     $('.modal_onetouch_payment').css('display','none');
  783.                     $('.modal_loading_payment').css('display','block');
  784.                     isloading = true;
  785.                     let stripe_payment_method_id = $('.show_update_card').attr("data-id");
  786.                     let stripe_customer_id = $('.ec-Payment').attr("data-stripe")
  787.                     let dataCheckout = {
  788.                         order_id : $('#order_id').val(),
  789.                         _shopping_order: {
  790.                             stripe_payment_method_id: stripe_payment_method_id,
  791.                             stripe_customer_id: stripe_customer_id,
  792.                             stripe_save_card: 1,
  793.                             free_trial: true
  794.                         }
  795.                     };
  796.                     $.ajax({
  797.                         url: "{{ url('execute_one_touch_checkout') }}",
  798.                         type: "POST",
  799.                         data: dataCheckout,
  800.                         dataType: 'json',
  801.                         success: function (data) {
  802.                             if (data.need_verify) {
  803.                                 return verify3dsecure(data);
  804.                             }
  805.                             if (data.done) {
  806.                                 showSuccess()
  807.                                 window.location.replace("{{ url('shopping_complete') }}")
  808.                             } else {
  809.                                 showError();
  810.                                 window.location.replace("{{ url('shopping_error') }}")
  811.                             }
  812.                         },
  813.                         error: function () {
  814.                             showError();
  815.                             window.location.replace("{{ url('shopping_error') }}")
  816.                         }
  817.                         
  818.                     })
  819.                 })
  820.             {% endif %}
  821.         })
  822.         
  823.     </script>
  824.