Plugin Directory

Changeset 2959714


Ignore:
Timestamp:
08/29/2023 07:44:55 AM (2 years ago)
Author:
thanhtd
Message:

Update

Location:
gift4u-gift-cards-all-in-one-for-woo/trunk
Files:
21 edited

Legend:

Unmodified
Added
Removed
  • gift4u-gift-cards-all-in-one-for-woo/trunk/CHANGELOG.txt

    r2933108 r2959714  
     1/**1.0.4 - 2023.08.29**/
     2– Fixed: Generate expired date
     3
    14/**1.0.3 - 2023.07.03**/
    25– Updated: Compatible with WooCommerce HPOS(COT)
  • gift4u-gift-cards-all-in-one-for-woo/trunk/admin/admin.php

    r2872134 r2959714  
    384384        }
    385385
     386        $expiry_date = $gc_coupon->get_expiry_date();
     387        if ( ! $expiry_date ) {
     388            $coupon_options = $gc_coupon->get_coupon_options();
     389
     390            if ( ! empty( $coupon_options['expiry_date'] ) ) {
     391                $date = strtotime( "+{$coupon_options['expiry_date']} day" );
     392
     393                $gc_coupon->set_expiry_date( $date );
     394            }
     395        }
     396
     397        $gc_coupon->set_delivery_status( 'sent' );
     398        $gc_coupon->save();
     399
    386400        $delivery_statuses = Utils::delivery_status_list();
     401
     402        $expiry_date = $gc_coupon->get_expiry_date();//get expiry date after save
    387403
    388404        wp_send_json_success( [
    389405            'message'         => esc_html__( 'Marked as shipped', 'gift4u-gift-cards-all-in-one-for-woo' ),
    390406            'delivery_status' => $delivery_statuses['sent'] ?? '',
     407            'expiry_date'     => $expiry_date instanceof \WC_DateTime ? $expiry_date->date_i18n( wc_date_format() ) : '',
    391408        ] );
    392409    }
  • gift4u-gift-cards-all-in-one-for-woo/trunk/admin/giftcard-table.php

    r2885345 r2959714  
    536536
    537537            case 'expiry_date':
    538                 $exdate = $item->get_expiry_date();
    539 
    540                 return $exdate instanceof \WC_DateTime ? $exdate->date_i18n( wc_date_format() ) : '';
     538                $exdate              = $item->get_expiry_date();
     539                $coupon_options      = $item->get_coupon_options();
     540                $expiry_date_option  = $coupon_options['expiry_date'] ?? '';
     541                $wait_generate_title = esc_html__( 'The expiration date will be generated when the gift card is sent', 'gift4u-woocommerce-gift-cards-all-in-one' );
     542
     543                return $exdate instanceof \WC_DateTime ? $exdate->date_i18n( wc_date_format() )
     544                    : ( $expiry_date_option ? "<i class='dashicons dashicons-clock' title='$wait_generate_title'> </i>" : '-' );
    541545
    542546            case 'from':
  • gift4u-gift-cards-all-in-one-for-woo/trunk/assets/css/giftcard-manage.css

    r2872134 r2959714  
    3232.vi-ui.table td.check-column input[type=checkbox] {
    3333  margin: 0 0 0 8px;
     34}
     35.vi-ui.table thead th#expiry_date, .vi-ui.table td.column-expiry_date {
     36  text-align: center;
    3437}
    3538
  • gift4u-gift-cards-all-in-one-for-woo/trunk/assets/css/giftcard-manage.css.map

    r2872086 r2959714  
    1 {"version":3,"sourceRoot":"","sources":["giftcard-manage.scss"],"names":[],"mappings":"AACA;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;;;AAGF;AAGI;EACE;;;AAKN;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;;AAGE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAKN;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAKJ;AAGE;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAIA;EACE;EACA;EACA;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA","file":"giftcard-manage.css"}
     1{"version":3,"sourceRoot":"","sources":["giftcard-manage.scss"],"names":[],"mappings":"AACA;EACE;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;EACE;IACE;;EAEF;IACE;;;AAIJ;EACE;;;AAGF;AAGI;EACE;;AAIJ;EACE;;;AAKJ;EACE;EACA;;;AAGF;EACE;EACA;;AAEA;EACE;;;AAIJ;EACE;EACA;;AAGE;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAKN;EACE;;;AAIJ;EACE;EACA;;AAEA;EACE;;AAGF;EACE;;;AAKJ;AAGE;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;AAIA;EACE;EACA;EACA;;AAIJ;EACE;EACA;;AAEA;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;;;AAIJ;EACE;;;AAGF;EACE;EACA;EACA;;AAEA;EACE;EACA","file":"giftcard-manage.css"}
  • gift4u-gift-cards-all-in-one-for-woo/trunk/assets/css/giftcard-manage.min.css

    r2872086 r2959714  
    1 @keyframes gift4u-spinner-animation{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}.gift4u-loading{position:relative;color:transparent!important}.gift4u-loading:after{content:" ";display:block;width:12px;height:12px;border-radius:50%;border:2px solid;border-color:#777 transparent;animation:gift4u-spinner-animation 700ms linear infinite;position:absolute;top:50%;left:50%}.vi-ui.toast-container{z-index:999999}.vi-ui.table td.check-column input[type=checkbox]{margin:0 0 0 8px}.gift4u-admin-actions{display:flex;gap:5px}.gift4u-download-pdf{cursor:pointer;font-size:1.2em}.gift4u-download-pdf:hover{color:#ff4500}.gift4u-send-email{position:relative;cursor:pointer}.gift4u-send-email .dashicons.dashicons-arrow-right-alt{font-size:12px;position:absolute;bottom:-8px;right:-7px;width:12px;height:12px;background:#fff;border-radius:2px}.gift4u-send-email .dashicons.dashicons-arrow-right-alt:before{margin-left:-1px;margin-top:-3px;display:block}.gift4u-mark-shipped:hover,.gift4u-send-email:hover{color:#00b400}.gift4u-mark-shipped{font-size:1.2em;cursor:pointer}.gift4u-mark-shipped .icon.truck{vertical-align:bottom}.vi-ui.form *{box-sizing:border-box}.vi-ui.form select{max-width:unset;line-height:1}.vi-ui.form input[type=date]{height:40px}.vi-ui.form .field>label,.vi-ui.form .inline.field>label{font-weight:500;vertical-align:top;min-width:140px}.vi-ui.form .select2.select2-container{border:1px solid rgba(34,36,38,.15);border-radius:.28571429rem}.vi-ui.form .select2.select2-container .select2-search__field{padding:0 5px;border:0}.vi-ui.form .select2-container--default .select2-selection--multiple .select2-selection__rendered li{min-width:auto}.vi-ui.form .select2-container--default .select2-selection--single{border:0;margin:5px}.select2-container{min-width:unset}.gift4u-email-image-group{display:flex;gap:20px;align-items:start}.gift4u-email-image-group .gift4u-email-design{width:200px;border:1px solid #ddd}
     1@keyframes gift4u-spinner-animation{0%{transform:translate(-50%,-50%) rotate(0deg)}to{transform:translate(-50%,-50%) rotate(360deg)}}.gift4u-loading{position:relative;color:transparent!important}.gift4u-loading:after{content:" ";display:block;width:12px;height:12px;border-radius:50%;border:2px solid;border-color:#777 transparent;animation:gift4u-spinner-animation 700ms linear infinite;position:absolute;top:50%;left:50%}.vi-ui.toast-container{z-index:999999}.vi-ui.table td.check-column input[type=checkbox]{margin:0 0 0 8px}.vi-ui.table td.column-expiry_date,.vi-ui.table thead th#expiry_date{text-align:center}.gift4u-admin-actions{display:flex;gap:5px}.gift4u-download-pdf{cursor:pointer;font-size:1.2em}.gift4u-download-pdf:hover{color:#ff4500}.gift4u-send-email{position:relative;cursor:pointer}.gift4u-send-email .dashicons.dashicons-arrow-right-alt{font-size:12px;position:absolute;bottom:-8px;right:-7px;width:12px;height:12px;background:#fff;border-radius:2px}.gift4u-send-email .dashicons.dashicons-arrow-right-alt:before{margin-left:-1px;margin-top:-3px;display:block}.gift4u-mark-shipped:hover,.gift4u-send-email:hover{color:#00b400}.gift4u-mark-shipped{font-size:1.2em;cursor:pointer}.gift4u-mark-shipped .icon.truck{vertical-align:bottom}.vi-ui.form *{box-sizing:border-box}.vi-ui.form select{max-width:unset;line-height:1}.vi-ui.form input[type=date]{height:40px}.vi-ui.form .field>label,.vi-ui.form .inline.field>label{font-weight:500;vertical-align:top;min-width:140px}.vi-ui.form .select2.select2-container{border:1px solid rgba(34,36,38,.15);border-radius:.28571429rem}.vi-ui.form .select2.select2-container .select2-search__field{padding:0 5px;border:0}.vi-ui.form .select2-container--default .select2-selection--multiple .select2-selection__rendered li{min-width:auto}.vi-ui.form .select2-container--default .select2-selection--single{border:0;margin:5px}.select2-container{min-width:unset}.gift4u-email-image-group{display:flex;gap:20px;align-items:start}.gift4u-email-image-group .gift4u-email-design{width:200px;border:1px solid #ddd}
  • gift4u-gift-cards-all-in-one-for-woo/trunk/assets/css/giftcard-manage.scss

    r2872086 r2959714  
    3939    }
    4040  }
     41
     42  thead th#expiry_date, td.column-expiry_date {
     43    text-align: center;
     44  }
     45
    4146}
    4247
  • gift4u-gift-cards-all-in-one-for-woo/trunk/assets/js/giftcard-manage.js

    r2885345 r2959714  
    201201                        $this.closest('tr').find('td.column-delivery_status').text(res.data.delivery_status)
    202202                    }
     203
     204                        $this.closest('tr').find('td.column-expiry_date').text(res.data.expiry_date)
    203205                },
    204206
  • gift4u-gift-cards-all-in-one-for-woo/trunk/assets/js/giftcard-manage.min.js

    r2872086 r2959714  
    1 jQuery(document).ready((function(e){"use strict";let t={action:"gift4u_ajax_action",nonce:gift4uParams.nonce},a=e("body");if(gift4uParams.editPage){let i=wp.media(),s=e(".gift4u-email-design");function o(){let t,a=e(this).viDropdown("get value"),i=e(".gift4u-state-field"),s="input"===i[0].localName?i.val():i.viDropdown("get value"),o=i.attr("name"),l=i.attr("id"),n=s,d=i.attr("placeholder");if(e.isEmptyObject(gift4uParams.countries[a]))t=e(`<input type="text" class="gift4u-state-field" id="${l}" name="${o}" placeholder="${d}" value="${s}"/>`),i.replaceWith(t);else{let c=gift4uParams.countries[a],u=e('<option value=""></option>').text("Select...");t=e(`<select class="gift4u-state-field" id="${l}" name="${o}" placeholder="${d}"></select>`).append(u),e.each(c,(function(a){var i=e(`<option value="${a}">${c[a]}</option>`);a===s&&i.prop("selected"),t.append(i)})),t.val(n),i.replaceWith(t),t.viDropdown()}}function l(){let t=e(this).viDropdown("get value");"email"===t&&e(".gift4u-edit-shipping-address-section").hide(),"ship_card"===t&&e(".gift4u-edit-shipping-address-section").show(300)}function n(){i.open().off("select close").on("select",(function(t){i.state().get("selection").each((function(t){"image"===(t=t.toJSON()).type&&(s.prop("src",t.url),e(".gift4u-email-design-id").val(t.id))}))}))}function d(){s.prop("src",s.data("img_placeholder")),e(".gift4u-email-design-id").val("")}e(".vi-ui.dropdown").viDropdown(),a.on("change",".gift4u-country-field",o).on("change",".gift4u-delivery-method",l).on("click",".gift4u-select-image",n).on("click",".gift4u-remove-image",d),e(".gift4u-delivery-method").trigger("change"),e(".vi-ui.menu .item").viTab(),e(".gift4u-categories-field").select2({width:"100%"}),e(":input.gift4u-products-field").filter(":not(.enhanced)").each((function(){let t={width:"100%",allowClear:!0,placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"2",escapeMarkup:e=>e,ajax:{url:gift4uParams.ajaxUrl,dataType:"json",delay:250,data:t=>({term:t.term,action:e(this).data("action"),security:gift4uParams.search_products_nonce,exclude:e(this).data("exclude"),exclude_type:e(this).data("exclude_type"),include:e(this).data("include"),limit:e(this).data("limit"),display_stock:e(this).data("display_stock")}),processResults:t=>{let a=[];return t&&e.each(t,(function(e,t){a.push({id:e,text:t})})),{results:a}},cache:!0}};e(this).select2(t),e(this).addClass("enhanced")}));let c=e(".gift4u-card-template"),u=c.attr("placeholder");c.select2({width:"100%",allowClear:!0,placeholder:u,minimumInputLength:2,escapeMarkup:e=>e,ajax:{url:gift4uParams.ajaxUrl,dataType:"json",delay:250,data:e=>({term:e.term,action:"gift4u_search_card_template",security:gift4uParams.nonce}),processResults:t=>{let a=[];return t&&e.each(t,(function(e,t){a.push({id:e,text:t})})),{results:a}},cache:!0}})}else{function r(){if(!confirm("Do you want to send this email?"))return;let a=e(this);a.addClass("gift4u-loading"),e.ajax({url:gift4uParams.ajaxUrl,type:"post",dataType:"json",data:{...t,sub_action:"send_email",coupon_id:a.data("coupon_id")},success(t){t.success?e.viToast({class:"success",message:t.data.message}):e.viToast({class:"error",message:t.data}),t.data.delivery_status&&a.closest("tr").find("td.column-delivery_status").text(t.data.delivery_status)},complete(){a.removeClass("gift4u-loading")}})}function p(){let a=e(this);a.addClass("gift4u-loading"),e.ajax({url:gift4uParams.ajaxUrl,type:"post",dataType:"json",data:{...t,sub_action:"mark_shipped",coupon_id:a.data("coupon_id")},success(t){t.success?e.viToast({class:"success",message:t.data.message}):e.viToast({class:"error",message:t.data}),t.data.delivery_status&&a.closest("tr").find("td.column-delivery_status").text(t.data.delivery_status)},complete(){a.removeClass("gift4u-loading")}})}function g(){let i=e(this);i.addClass("gift4u-loading");let s=i.data("coupon_id"),o=i.data("coupon_code");e.ajax({url:gift4uParams.ajaxUrl,type:"post",data:{...t,sub_action:"download_pdf",coupon_id:s},xhr:function(){let e=new XMLHttpRequest;return e.onreadystatechange=function(){2===e.readyState&&(200===e.status?e.responseType="blob":e.responseType="text")},e},success(t){let i=`gift4u_${o}.pdf`,s=new Blob([t],{type:"application/octetstream"});if(document.documentMode)window.navigator.msSaveBlob(s,i);else{let t=(window.URL||window.webkitURL).createObjectURL(s),o=e(`<a download="${i}" href="${t}"/>`);a.append(o),o[0].click(),a.remove(o)}},error(e){console.log(e)},complete(){i.removeClass("gift4u-loading")}})}a.on("click",".gift4u-send-email:not(.gift4u-loading)",r).on("click",".gift4u-mark-shipped:not(.gift4u-loading)",p).on("click",".gift4u-download-pdf:not(.gift4u-loading)",g)}}));
     1jQuery(document).ready((function(e){"use strict";let t={action:"gift4u_ajax_action",nonce:gift4uParams.nonce},a=e("body");if(gift4uParams.editPage){let i=wp.media(),s=e(".gift4u-email-design");function o(){let t,a=e(this).viDropdown("get value"),i=e(".gift4u-state-field"),s="input"===i[0].localName?i.val():i.viDropdown("get value"),o=i.attr("name"),l=i.attr("id"),n=s,d=i.attr("placeholder");if(e.isEmptyObject(gift4uParams.countries[a]))t=e(`<input type="text" class="gift4u-state-field" id="${l}" name="${o}" placeholder="${d}" value="${s}"/>`),i.replaceWith(t);else{let c=gift4uParams.countries[a],u=e('<option value=""></option>').text("Select...");t=e(`<select class="gift4u-state-field" id="${l}" name="${o}" placeholder="${d}"></select>`).append(u),e.each(c,(function(a){var i=e(`<option value="${a}">${c[a]}</option>`);a===s&&i.prop("selected"),t.append(i)})),t.val(n),i.replaceWith(t),t.viDropdown()}}function l(){let t=e(this).viDropdown("get value");"email"===t&&e(".gift4u-edit-shipping-address-section").hide(),"ship_card"===t&&e(".gift4u-edit-shipping-address-section").show(300)}function n(){i.open().off("select close").on("select",(function(t){i.state().get("selection").each((function(t){"image"===(t=t.toJSON()).type&&(s.prop("src",t.url),e(".gift4u-email-design-id").val(t.id))}))}))}function d(){s.prop("src",s.data("img_placeholder")),e(".gift4u-email-design-id").val("")}e(".vi-ui.dropdown").viDropdown(),a.on("change",".gift4u-country-field",o).on("change",".gift4u-delivery-method",l).on("click",".gift4u-select-image",n).on("click",".gift4u-remove-image",d),e(".gift4u-delivery-method").trigger("change"),e(".vi-ui.menu .item").viTab(),e(".gift4u-categories-field").select2({width:"100%"}),e(":input.gift4u-products-field").filter(":not(.enhanced)").each((function(){let t={width:"100%",allowClear:!0,placeholder:e(this).data("placeholder"),minimumInputLength:e(this).data("minimum_input_length")?e(this).data("minimum_input_length"):"2",escapeMarkup:e=>e,ajax:{url:gift4uParams.ajaxUrl,dataType:"json",delay:250,data:t=>({term:t.term,action:e(this).data("action"),security:gift4uParams.search_products_nonce,exclude:e(this).data("exclude"),exclude_type:e(this).data("exclude_type"),include:e(this).data("include"),limit:e(this).data("limit"),display_stock:e(this).data("display_stock")}),processResults:t=>{let a=[];return t&&e.each(t,(function(e,t){a.push({id:e,text:t})})),{results:a}},cache:!0}};e(this).select2(t),e(this).addClass("enhanced")}));let c=e(".gift4u-card-template"),u=c.attr("placeholder");c.select2({width:"100%",allowClear:!0,placeholder:u,minimumInputLength:2,escapeMarkup:e=>e,ajax:{url:gift4uParams.ajaxUrl,dataType:"json",delay:250,data:e=>({term:e.term,action:"gift4u_search_card_template",security:gift4uParams.nonce}),processResults:t=>{let a=[];return t&&e.each(t,(function(e,t){a.push({id:e,text:t})})),{results:a}},cache:!0}})}else{function r(){if(!confirm("Do you want to send this email?"))return;let a=e(this);a.addClass("gift4u-loading"),e.ajax({url:gift4uParams.ajaxUrl,type:"post",dataType:"json",data:{...t,sub_action:"send_email",coupon_id:a.data("coupon_id")},success(t){t.success?e.viToast({class:"success",message:t.data.message}):e.viToast({class:"error",message:t.data}),t.data.delivery_status&&a.closest("tr").find("td.column-delivery_status").text(t.data.delivery_status)},complete(){a.removeClass("gift4u-loading")}})}function p(){let a=e(this);a.addClass("gift4u-loading"),e.ajax({url:gift4uParams.ajaxUrl,type:"post",dataType:"json",data:{...t,sub_action:"mark_shipped",coupon_id:a.data("coupon_id")},success(t){t.success?e.viToast({class:"success",message:t.data.message}):e.viToast({class:"error",message:t.data}),t.data.delivery_status&&a.closest("tr").find("td.column-delivery_status").text(t.data.delivery_status),a.closest("tr").find("td.column-expiry_date").text(t.data.expiry_date)},complete(){a.removeClass("gift4u-loading")}})}function g(){let i=e(this);i.addClass("gift4u-loading");let s=i.data("coupon_id"),o=i.data("coupon_code");e.ajax({url:gift4uParams.ajaxUrl,type:"post",data:{...t,sub_action:"download_pdf",coupon_id:s},xhr:function(){let e=new XMLHttpRequest;return e.onreadystatechange=function(){2===e.readyState&&(200===e.status?e.responseType="blob":e.responseType="text")},e},success(t){let i=`gift4u_${o}.pdf`,s=new Blob([t],{type:"application/octetstream"});if(document.documentMode)window.navigator.msSaveBlob(s,i);else{let t=(window.URL||window.webkitURL).createObjectURL(s),o=e(`<a download="${i}" href="${t}"/>`);a.append(o),o[0].click(),a.remove(o)}},error(e){console.log(e)},complete(){i.removeClass("gift4u-loading")}})}a.on("click",".gift4u-send-email:not(.gift4u-loading)",r).on("click",".gift4u-mark-shipped:not(.gift4u-loading)",p).on("click",".gift4u-download-pdf:not(.gift4u-loading)",g)}}));
  • gift4u-gift-cards-all-in-one-for-woo/trunk/assets/js/single-product.js

    r2872086 r2959714  
    264264        let plusBtn = $('form .quantity .plus');
    265265
    266 
    267266        if (mailString.length) {
    268267            let splitLength = mailString.split(',').length;
     
    313312        .on('click', '.gift4u-card-template-preview:not(.gift4u-loading)', cardTemplatePreview)
    314313        .on('keyup change', '.gift4u-user-input-amount', onUserInputChange)
    315         .on('keyup', '.gift4u-recipient-email', onEmailInputChange)
     314        .on('change', '.gift4u-recipient-email', onEmailInputChange)
    316315        .on('keyup', '.gift4u-message', checkCharacterLimit)
    317316        .on('click', '#gift4u-email-design-preview', preventEventsInPreview);
  • gift4u-gift-cards-all-in-one-for-woo/trunk/assets/js/single-product.min.js

    r2872086 r2959714  
    1 jQuery(document).ready((function(t){"use strict";let e=t("body"),i=t(".gift4u-email-design"),a=t(".gift4u-card-template"),l=!1,u=t(".gift4u-image-list"),r=t(".gift4u-email-method"),n=t(".gift4u-ship-card-method"),s={modal:t("#gift4u-modal-frame"),setContent(t){this.modal.find(".gift4u-modal-content-inner").html(t)},open(){this.modal.show(300)},close(){this.modal.hide(300)}};function o(e,i){let a=i[e],{width:l,height:u}=i,{texts:r=[],background_color:n="white"}=a,s=r.map((e=>{let{pos_x:i,pos_y:a,size:l,font_weight:u="normal",font_family:r="inherit",content:n="",color:s="inherit"}=e,o=`position:absolute; top: ${a}px; left: ${i}px; color:${s};`;if(o+=`font-size: ${l}px; font-weight: ${u}; font-family:${r}`,n){let e=t(".gift4u-sender-name").val(),i=t(".gift4u-recipient-name").val(),a=t(".gift4u-message").val();n=n.replaceAll("{sender_name}",e),n=n.replaceAll("{recipient_name}",i),n=n.replaceAll("{message}",a)}return`<div style="${o}">${n}</div>`})).join(""),o=`background-repeat: no-repeat;background-size: contain;background-color:${n};`;return o+=`width: ${l}mm;height: ${u}mm; position:relative;`,a.imgUrl&&(o+=`background-image: url(${a.imgUrl});`),`<div class="gift4u-card-preview-item">\n                    <div class="gift4u-card-template-${e}">\n                        <div style="${o}">\n                        ${s}\n                        </div>\n                    </div>\n                </div>`}function c(t){t.preventDefault(),t.stopImmediatePropagation()}e.on("keyup",(function(t){"Escape"===t.key&&s.close()})).on("click",".gift4u-image-list .gift4u-image-item",(function(){t(".gift4u-image-list .gift4u-image-item").removeClass("gift4u-selected"),t(this).addClass("gift4u-selected");let e=t(this).data("image_id");i.val(e)})).on("click",".gift4u-card-template-list .gift4u-card-template-item",(function(){t(".gift4u-card-template-list .gift4u-card-template-item").removeClass("gift4u-selected"),t(this).addClass("gift4u-selected");let e=t(this).data("card_template_id");a.val(e)})).on("click","#gift4u-modal-frame .gift4u-image-item",(function(){t("#gift4u-modal-frame .gift4u-image-item").removeClass("gift4u-selected"),t(this).addClass("gift4u-selected")})).on("click",".gift4u-select-delivery-method",(function(){t(".gift4u-select-delivery-method").removeClass("gift4u-button-selected"),t(this).addClass("gift4u-button-selected");let e=t(this).data("value");switch(t("[name=gift4u_delivery_method]").val(e),r.hide(),n.hide(),e){case"email":r.fadeIn(200);break;case"ship_card":n.fadeIn(300)}})).on("click",".gift4u-see-more-btn:not(.gift4u-loading)",(function(){if(l)return s.setContent(l),void s.open();let e=t(this),i=e.data("product_id");i&&(s.close(),e.addClass("gift4u-loading"),t.ajax({url:gift4uParams.ajaxUrl,type:"post",dataType:"json",data:{action:"gift4u_load_more_gallery",pid:i,security:gift4uParams.nonce},success(t){t.success&&(s.setContent(t.data),s.open(),l=t.data)},complete(){e.removeClass("gift4u-loading")}}))})).on("click",".gift4u-modal-overlay, .gift4u-modal-close",(()=>s.close())).on("click",".gift4u-gallery-title",(function(){let e=t(this),i=e.data("gift4u_gallery_tab");t("#gift4u-modal-frame .gift4u-image-item").removeClass("gift4u-selected"),t("#gift4u-modal-frame .gift4u-gallery-title").removeClass("gift4u-active"),t("#gift4u-modal-frame .gift4u-images-tab-item").removeClass("gift4u-active");let a=t(`#gift4u-modal-frame .gift4u-images-tab-item[data-gift4u_gallery_tab=${i}]`);e.addClass("gift4u-active"),a.addClass("gift4u-active"),a.find(".gift4u-image-item").first().addClass("gift4u-selected")})).on("click",".gift4u-use-design",(function(){let e=t("#gift4u-modal-frame .gift4u-image-item.gift4u-selected");if(e.length){let t=e.data("image_id");i.val(t);let a=e.parent().html();u.find(".gift4u-image-item").remove(),u.prepend(a),s.close()}})).on("click",".gift4u-email-design-preview:not(.gift4u-loading)",(function(){if(!gift4uParams.email_content)return;let e=gift4uParams.email_content,i=t(".gift4u-section-wrapper .gift4u-image-item.gift4u-selected img").attr("src"),a=t(".gift4u-sender-name").val(),l=t(".gift4u-recipient-name").val(),u=t(".gift4u-message").val();if(u&&(u=u.replace(/\n\r?/g,"<br />")),e=e.replaceAll("{selected_image}",`<img src="${i}" style="margin: auto;"/>`),e=e.replaceAll("{sender_name}",a),e=e.replaceAll("{recipient_name}",l),e=e.replaceAll("{message}",u),"fixed"===gift4uParams.priceType)e=e.replaceAll("{coupon_value}",gift4uParams.regularPrice);else if("input"===gift4uParams.priceType){let i=t(".gift4u-user-input-amount").val();i=accounting.formatMoney(i,gift4uProductParams.currencySymbol,gift4uProductParams.currencyPrecision,gift4uProductParams.thousandsSep,gift4uProductParams.decimalSep,gift4uProductParams.priceFormat),e=e.replaceAll("{coupon_value}",i)}s.setContent(e),s.open()})).on("click",".gift4u-card-template-preview:not(.gift4u-loading)",(function(){let e=t(".gift4u-section-wrapper .gift4u-card-template-item.gift4u-selected").data("card_data"),i=`${o("front",e)}${o("back",e)}`;s.setContent(i),s.open()})).on("keyup change",".gift4u-user-input-amount",(function(){let e=t(this).val(),i=t(this).attr("min"),a=t(this).attr("max");"undefined"!=typeof gift4uProductParams&&gift4uProductParams.rules.length&&(!e||""!==i&&+e<+i||""!==a&&+e>+a||(e=function(t,e){let i=[];for(let a of e){if(!a.discount_value)continue;if(""!==a.from_price&&+a.from_price>+t)continue;if(""!==a.to_price&&+a.to_price<+t)continue;let{discount_type:e="fixed",discount_value:l=0}=a;switch(e){case"fixed":i.push(l);break;case"percentage":i.push(t*l/100)}}let a=0;return i.length&&(a="min"===gift4uProductParams.discount_umpire?Math.min(...i):Math.max(...i)),t-a}(e,gift4uProductParams.rules),e=e<0?0:e,e=accounting.formatMoney(e,gift4uProductParams.currencySymbol,gift4uProductParams.currencyPrecision,gift4uProductParams.thousandsSep,gift4uProductParams.decimalSep,gift4uProductParams.priceFormat),t(".gift4u-purchase-amount").html(e)))})).on("keyup",".gift4u-recipient-email",(function(){let e=t(this),i=e.val().trim(),a=i.match(/[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+/gi),l=t("form .quantity input"),u=t("form .quantity .minus"),r=t("form .quantity .plus");if(i.length){let t=i.split(",").length;null===a||a.length!==t?e.addClass("gift4u-error"):e.removeClass("gift4u-error")}else e.removeClass("gift4u-error");a&&a.length>1?(l.attr("disabled",!0),l.val(1),u.addClass("disabled"),r.addClass("disabled"),t("form .quantity .minus, form .quantity .plus").on("click",c)):(l.attr("disabled",!1),u.removeClass("disabled"),r.removeClass("disabled"),t("form .quantity .minus, form .quantity .plus").off("click",c))})).on("keyup",".gift4u-message",(function(){let e=t(this).data("character_limit"),i=t(this).val();""!==e&&(i.length>e?t(this).addClass("gift4u-error"):t(this).removeClass("gift4u-error"))})).on("click","#gift4u-email-design-preview",(function(t){t.preventDefault(),t.stopImmediatePropagation()})),e.find(".gift4u-user-input-amount").trigger("keyup"),t(".gift4u-select-delivery-method.gift4u-button-selected").trigger("click"),t(document.body).trigger("country_to_state_changed")}));
     1jQuery(document).ready((function(t){"use strict";let e=t("body"),i=t(".gift4u-email-design"),a=t(".gift4u-card-template"),l=!1,u=t(".gift4u-image-list"),r=t(".gift4u-email-method"),n=t(".gift4u-ship-card-method"),s={modal:t("#gift4u-modal-frame"),setContent(t){this.modal.find(".gift4u-modal-content-inner").html(t)},open(){this.modal.show(300)},close(){this.modal.hide(300)}};function o(e,i){let a=i[e],{width:l,height:u}=i,{texts:r=[],background_color:n="white"}=a,s=r.map((e=>{let{pos_x:i,pos_y:a,size:l,font_weight:u="normal",font_family:r="inherit",content:n="",color:s="inherit"}=e,o=`position:absolute; top: ${a}px; left: ${i}px; color:${s};`;if(o+=`font-size: ${l}px; font-weight: ${u}; font-family:${r}`,n){let e=t(".gift4u-sender-name").val(),i=t(".gift4u-recipient-name").val(),a=t(".gift4u-message").val();n=n.replaceAll("{sender_name}",e),n=n.replaceAll("{recipient_name}",i),n=n.replaceAll("{message}",a)}return`<div style="${o}">${n}</div>`})).join(""),o=`background-repeat: no-repeat;background-size: contain;background-color:${n};`;return o+=`width: ${l}mm;height: ${u}mm; position:relative;`,a.imgUrl&&(o+=`background-image: url(${a.imgUrl});`),`<div class="gift4u-card-preview-item">\n                    <div class="gift4u-card-template-${e}">\n                        <div style="${o}">\n                        ${s}\n                        </div>\n                    </div>\n                </div>`}function c(t){t.preventDefault(),t.stopImmediatePropagation()}e.on("keyup",(function(t){"Escape"===t.key&&s.close()})).on("click",".gift4u-image-list .gift4u-image-item",(function(){t(".gift4u-image-list .gift4u-image-item").removeClass("gift4u-selected"),t(this).addClass("gift4u-selected");let e=t(this).data("image_id");i.val(e)})).on("click",".gift4u-card-template-list .gift4u-card-template-item",(function(){t(".gift4u-card-template-list .gift4u-card-template-item").removeClass("gift4u-selected"),t(this).addClass("gift4u-selected");let e=t(this).data("card_template_id");a.val(e)})).on("click","#gift4u-modal-frame .gift4u-image-item",(function(){t("#gift4u-modal-frame .gift4u-image-item").removeClass("gift4u-selected"),t(this).addClass("gift4u-selected")})).on("click",".gift4u-select-delivery-method",(function(){t(".gift4u-select-delivery-method").removeClass("gift4u-button-selected"),t(this).addClass("gift4u-button-selected");let e=t(this).data("value");switch(t("[name=gift4u_delivery_method]").val(e),r.hide(),n.hide(),e){case"email":r.fadeIn(200);break;case"ship_card":n.fadeIn(300)}})).on("click",".gift4u-see-more-btn:not(.gift4u-loading)",(function(){if(l)return s.setContent(l),void s.open();let e=t(this),i=e.data("product_id");i&&(s.close(),e.addClass("gift4u-loading"),t.ajax({url:gift4uParams.ajaxUrl,type:"post",dataType:"json",data:{action:"gift4u_load_more_gallery",pid:i,security:gift4uParams.nonce},success(t){t.success&&(s.setContent(t.data),s.open(),l=t.data)},complete(){e.removeClass("gift4u-loading")}}))})).on("click",".gift4u-modal-overlay, .gift4u-modal-close",(()=>s.close())).on("click",".gift4u-gallery-title",(function(){let e=t(this),i=e.data("gift4u_gallery_tab");t("#gift4u-modal-frame .gift4u-image-item").removeClass("gift4u-selected"),t("#gift4u-modal-frame .gift4u-gallery-title").removeClass("gift4u-active"),t("#gift4u-modal-frame .gift4u-images-tab-item").removeClass("gift4u-active");let a=t(`#gift4u-modal-frame .gift4u-images-tab-item[data-gift4u_gallery_tab=${i}]`);e.addClass("gift4u-active"),a.addClass("gift4u-active"),a.find(".gift4u-image-item").first().addClass("gift4u-selected")})).on("click",".gift4u-use-design",(function(){let e=t("#gift4u-modal-frame .gift4u-image-item.gift4u-selected");if(e.length){let t=e.data("image_id");i.val(t);let a=e.parent().html();u.find(".gift4u-image-item").remove(),u.prepend(a),s.close()}})).on("click",".gift4u-email-design-preview:not(.gift4u-loading)",(function(){if(!gift4uParams.email_content)return;let e=gift4uParams.email_content,i=t(".gift4u-section-wrapper .gift4u-image-item.gift4u-selected img").attr("src"),a=t(".gift4u-sender-name").val(),l=t(".gift4u-recipient-name").val(),u=t(".gift4u-message").val();if(u&&(u=u.replace(/\n\r?/g,"<br />")),e=e.replaceAll("{selected_image}",`<img src="${i}" style="margin: auto;"/>`),e=e.replaceAll("{sender_name}",a),e=e.replaceAll("{recipient_name}",l),e=e.replaceAll("{message}",u),"fixed"===gift4uParams.priceType)e=e.replaceAll("{coupon_value}",gift4uParams.regularPrice);else if("input"===gift4uParams.priceType){let i=t(".gift4u-user-input-amount").val();i=accounting.formatMoney(i,gift4uProductParams.currencySymbol,gift4uProductParams.currencyPrecision,gift4uProductParams.thousandsSep,gift4uProductParams.decimalSep,gift4uProductParams.priceFormat),e=e.replaceAll("{coupon_value}",i)}s.setContent(e),s.open()})).on("click",".gift4u-card-template-preview:not(.gift4u-loading)",(function(){let e=t(".gift4u-section-wrapper .gift4u-card-template-item.gift4u-selected").data("card_data"),i=`${o("front",e)}${o("back",e)}`;s.setContent(i),s.open()})).on("keyup change",".gift4u-user-input-amount",(function(){let e=t(this).val(),i=t(this).attr("min"),a=t(this).attr("max");"undefined"!=typeof gift4uProductParams&&gift4uProductParams.rules.length&&(!e||""!==i&&+e<+i||""!==a&&+e>+a||(e=function(t,e){let i=[];for(let a of e){if(!a.discount_value)continue;if(""!==a.from_price&&+a.from_price>+t)continue;if(""!==a.to_price&&+a.to_price<+t)continue;let{discount_type:e="fixed",discount_value:l=0}=a;switch(e){case"fixed":i.push(l);break;case"percentage":i.push(t*l/100)}}let a=0;return i.length&&(a="min"===gift4uProductParams.discount_umpire?Math.min(...i):Math.max(...i)),t-a}(e,gift4uProductParams.rules),e=e<0?0:e,e=accounting.formatMoney(e,gift4uProductParams.currencySymbol,gift4uProductParams.currencyPrecision,gift4uProductParams.thousandsSep,gift4uProductParams.decimalSep,gift4uProductParams.priceFormat),t(".gift4u-purchase-amount").html(e)))})).on("change",".gift4u-recipient-email",(function(){let e=t(this),i=e.val().trim(),a=i.match(/[a-zA-Z0-9-_.]+@[a-zA-Z0-9-_.]+/gi),l=t("form .quantity input"),u=t("form .quantity .minus"),r=t("form .quantity .plus");if(i.length){let t=i.split(",").length;null===a||a.length!==t?e.addClass("gift4u-error"):e.removeClass("gift4u-error")}else e.removeClass("gift4u-error");a&&a.length>1?(l.attr("disabled",!0),l.val(1),u.addClass("disabled"),r.addClass("disabled"),t("form .quantity .minus, form .quantity .plus").on("click",c)):(l.attr("disabled",!1),u.removeClass("disabled"),r.removeClass("disabled"),t("form .quantity .minus, form .quantity .plus").off("click",c))})).on("keyup",".gift4u-message",(function(){let e=t(this).data("character_limit"),i=t(this).val();""!==e&&(i.length>e?t(this).addClass("gift4u-error"):t(this).removeClass("gift4u-error"))})).on("click","#gift4u-email-design-preview",(function(t){t.preventDefault(),t.stopImmediatePropagation()})),e.find(".gift4u-user-input-amount").trigger("keyup"),t(".gift4u-select-delivery-method.gift4u-button-selected").trigger("click"),t(document.body).trigger("country_to_state_changed")}));
  • gift4u-gift-cards-all-in-one-for-woo/trunk/front/order-process.php

    r2885345 r2959714  
    129129        }
    130130
    131         if ( ! empty( $_REQUEST['gift4u_delivery_date'] ) ) {
    132             $delivery_date = sanitize_text_field( wp_unslash( $_REQUEST['gift4u_delivery_date'] ) );
    133             if ( strtotime( $delivery_date ) < strtotime( 'tomorrow' ) ) {
    134                 wc_add_notice( esc_html__( 'Please select delivery date in future', 'gift4u-gift-cards-all-in-one-for-woo' ), 'error' );
    135 
    136                 return false;
    137             }
    138         }
     131//      if ( ! empty( $_REQUEST['gift4u_delivery_date'] ) ) {
     132//          $delivery_date = sanitize_text_field( wp_unslash( $_REQUEST['gift4u_delivery_date'] ) );
     133//          if ( strtotime( $delivery_date ) < strtotime( 'tomorrow' ) ) {
     134//              wc_add_notice( esc_html__( 'Please select delivery date in future', 'gift4u-gift-cards-all-in-one-for-woo' ), 'error' );
     135//
     136//              return false;
     137//          }
     138//      }
    139139
    140140        $price_type = $product->get_price_type();
     
    306306                }
    307307
    308                 $meta_data     = $item->get_meta( '_gift4u_data' );
     308                $meta_data = $item->get_meta( '_gift4u_data' );
     309
    309310                $price_type    = $product->get_price_type();
    310311                $coupon_amount = $price_type == 'input' ? ( $meta_data['coupon_amount'] ?? 0 ) : $product->get_regular_price();
     
    317318                $delivery_date           = $meta_data['delivery_date'] ?? '';
    318319                $gc_coupon_generated_ids = [];
     320                $time_offest             = 7 - (int) get_option( 'gmt_offset' );
    319321
    320322                switch ( $delivery_method ) {
     
    330332                        if ( $email_count > 1 ) {
    331333                            foreach ( $recipient_emails as $email ) {
    332                                 $gc_coupon = $this->generate_coupon( $order, $email, $coupon_amount, $delivery_method, $delivery_date, $meta_data );
     334                                $gc_coupon = $this->generate_coupon( [
     335                                    'order'           => $order,
     336                                    'email'           => $email,
     337                                    'coupon_amount'   => $coupon_amount,
     338                                    'delivery_method' => $delivery_method,
     339                                    'delivery_date'   => $delivery_date ? $delivery_date : time(),
     340                                    'meta_data'       => $meta_data
     341                                ] );
    333342
    334343                                if ( ! $gc_coupon ) {
     
    336345                                }
    337346
    338                                 $this->send_email( $gc_coupon, $email );
    339347                                $gc_coupon_generated_ids[] = $gc_coupon->get_id();
     348
     349                                if ( ! $delivery_date || strtotime( $delivery_date ) <= time() ) {
     350                                    $this->send_email( $gc_coupon, $email );
     351                                } elseif ( strtotime( $delivery_date ) > time() ) {
     352                                    $time = strtotime( $delivery_date . "+{$time_offest}hour" );
     353                                    wp_schedule_single_event( $time, 'gift4u_schedule_send_giftcard', [ $gc_coupon ] );
     354                                }
    340355                            }
    341356                        } else {
     
    343358                            for ( $i = 0; $i < $item_qty; $i ++ ) {
    344359                                $email     = current( $recipient_emails );
    345                                 $gc_coupon = $this->generate_coupon( $order, $email, $coupon_amount, $delivery_method, $delivery_date, $meta_data );
     360                                $gc_coupon = $this->generate_coupon( [
     361                                    'order'           => $order,
     362                                    'email'           => $email,
     363                                    'coupon_amount'   => $coupon_amount,
     364                                    'delivery_method' => $delivery_method,
     365                                    'delivery_date'   => $delivery_date ? $delivery_date : time(),
     366                                    'meta_data'       => $meta_data
     367                                ] );
    346368
    347369                                if ( ! $gc_coupon ) {
     
    349371                                }
    350372
    351                                 $this->send_email( $gc_coupon, $email );
    352373                                $gc_coupon_generated_ids[] = $gc_coupon->get_id();
     374
     375                                if ( ! $delivery_date || strtotime( $delivery_date ) <= time() ) {
     376                                    $this->send_email( $gc_coupon, $email );
     377                                } elseif ( strtotime( $delivery_date ) > time() ) {
     378                                    $time = strtotime( $delivery_date . "+{$time_offest}hour" );
     379                                    wp_schedule_single_event( $time, 'gift4u_schedule_send_giftcard', [ $gc_coupon ] );
     380                                }
    353381                            }
    354382                        }
    355 
    356383
    357384                        break;
     
    362389
    363390                        for ( $i = 0; $i < $item_qty; $i ++ ) {
    364                             $gc_coupon = $this->generate_coupon( $order, $email, $coupon_amount, $delivery_method, $delivery_date, $meta_data );
     391                            $gc_coupon = $this->generate_coupon( [
     392                                'order'           => $order,
     393                                'email'           => $email,
     394                                'coupon_amount'   => $coupon_amount,
     395                                'delivery_method' => $delivery_method,
     396                                'delivery_date'   => $delivery_date,
     397                                'meta_data'       => $meta_data
     398                            ] );
    365399
    366400                            if ( ! $gc_coupon ) {
     
    382416    }
    383417
     418
    384419    /**
    385      * @param $order \WC_Order
    386      * @param $email
    387      * @param $coupon_amount
    388      * @param $delivery_method
    389      * @param $delivery_date
    390      * @param $meta_data
     420     * @param array $args
    391421     *
    392      * @return \Gift4U\Inc\Classes\Giftcard_Coupon|\WP_Error|null
     422     * @return bool|Giftcard_Coupon|\WP_Error|null
    393423     */
    394     public function generate_coupon( $order, $email, $coupon_amount, $delivery_method, $delivery_date, $meta_data ) {
     424    public function generate_coupon( $args = [] ) {
     425        $args = wp_parse_args( $args, [
     426            'order'           => '',
     427            'email'           => '',
     428            'coupon_amount'   => '',
     429            'delivery_method' => '',
     430            'delivery_date'   => '',
     431            'expiry_date'     => '',
     432            'meta_data'       => ''
     433        ] );
     434
     435        if ( empty( $args['order'] ) || ! $args['order'] instanceof \WC_Order ) {
     436            return false;
     437        }
     438
     439        /** @var \WC_Order $order */
     440        $order = $args['order'];
     441
    395442        $gc_coupon = Utils::create_giftcard_coupon( [
    396443            'order_id'        => $order->get_id(),
    397444            'from_email'      => $order->get_billing_email(),
    398             'to_email'        => $email,
    399             'amount'          => $coupon_amount,
    400             'delivery_date'   => $delivery_date,
    401             'delivery_method' => $delivery_method,
     445            'to_email'        => $args['email'],
     446            'amount'          => $args['coupon_amount'],
     447            'delivery_date'   => $args['delivery_date'],
     448            'delivery_method' => $args['delivery_method'],
     449            'expiry_date'     => $args['expiry_date'],
    402450            'currency'        => $order->get_currency(),
    403             'meta_data'       => $meta_data
     451            'meta_data'       => $args['meta_data']
    404452        ] );
    405453
     
    412460     */
    413461    public function send_email( $gc_coupon, $email ) {
    414         $id            = $gc_coupon->get_id();
    415         $delivery_date = $gc_coupon->get_delivery_date();
    416 
    417         if ( ! $id || $delivery_date ) {
    418             return;
    419         }
     462        $id = $gc_coupon->get_id();
     463//      $delivery_date = $gc_coupon->get_delivery_date();
     464
     465        if ( ! $id ) {
     466            return;
     467        }
     468
    420469        //send email
    421470        $gc_mail = new Email( $gc_coupon );
  • gift4u-gift-cards-all-in-one-for-woo/trunk/gift4u-gift-cards-all-in-one-for-woo.php

    r2933108 r2959714  
    55 * Description: Unlock the potential of gift card products and see how they attract customers. Easily create, sell, and manage a WooCommerce gift card with a few simple steps.
    66 * Author: VillaTheme
    7  * Version: 1.0.3
     7 * Version: 1.0.4
    88 * Author URI: http://villatheme.com
    99 * Text Domain: gift4u-gift-cards-all-in-one-for-woo
     
    4141
    4242            self::$args = [
    43                 'version'       => '1.0.3',
     43                'version'       => '1.0.4',
    4444                'plugin_name'   => 'GIFT4U - Gift Cards All in One for Woo',
    4545                'slug'          => 'gift4u-gift-cards-all-in-one-for-woo',
  • gift4u-gift-cards-all-in-one-for-woo/trunk/inc/classes/email.php

    r2872086 r2959714  
    5858
    5959        $subject = $this->replace_placeholder( Data::get_param( 'email_subject' ), true );
     60
    6061        $headers = [ "Content-Type: text/html" ];
    6162
     
    8182            if ( ! $expiry_date ) {
    8283                $coupon_options = $this->gc_coupon->get_coupon_options();
     84
    8385                if ( ! empty( $coupon_options['expiry_date'] ) ) {
    84                     $date = current_time( 'U' ) + 10 * DAY_IN_SECONDS;
     86                    $date = strtotime( "+{$coupon_options['expiry_date']} day" );
     87
    8588                    $this->gc_coupon->set_expiry_date( $date );
    8689                }
     
    8891
    8992            $this->gc_coupon->set_delivery_status( 'sent' );
     93            $this->gc_coupon->set_delivery_date( time() );
    9094            $this->gc_coupon->save();
    9195        }
  • gift4u-gift-cards-all-in-one-for-woo/trunk/inc/classes/giftcard-coupon.php

    r2872134 r2959714  
    137137        $props = (array) $props;
    138138
    139         $meta_data               = json_decode( $props['meta_data'], true );
     139        $meta_data = json_decode( $props['meta_data'], true );
    140140
    141141        $props['meta_data']      = $meta_data;
     
    207207
    208208    public function get_coupon_options() {
    209         return $this->data['coupon_options'] ?? [];
     209        return (array) $this->get_single_meta_data( 'coupon_options' );
    210210    }
    211211
  • gift4u-gift-cards-all-in-one-for-woo/trunk/inc/cron.php

    r2872086 r2959714  
    1313
    1414    public function __construct() {
    15         if ( ! wp_next_scheduled( 'gift4u_set_schedules_for_a_day' ) ) {
    16             $time = (int) get_option( 'gmt_offset' );
    17             wp_schedule_event( strtotime( "tomorrow -{$time}hour" ), 'daily', 'gift4u_set_schedules_for_a_day' );
    18         }
    19 
    20         add_action( 'gift4u_set_schedules_for_a_day', [ $this, 'set_schedules_for_a_day' ] );
    2115        add_action( 'gift4u_schedule_send_giftcard', [ $this, 'send_giftcard_via_email' ] );
    2216    }
     
    2418    public static function instance() {
    2519        return self::$instance == null ? self::$instance = new self() : self::$instance;
    26     }
    27 
    28     public function set_schedules_for_a_day() {
    29         global $wpdb;
    30         $db_table = GiftCard::get( 'db_table' );
    31         $from     = strtotime( 'today' );
    32         $to       = strtotime( 'tomorrow' ) - 1;
    33         $where    = "delivery_date >= {$from} AND delivery_date <= {$to} AND delivery_method='email' AND delivery_status!='sent' AND usage_count=0";
    34 
    35         $query = "select * from {$db_table} where {$where} order by id asc";
    36 
    37         $results = $wpdb->get_results( $query, ARRAY_A );
    38 
    39         if ( ! empty( $results ) ) {
    40             $time = current_time( 'U' ) + 7 * HOUR_IN_SECONDS;
    41 
    42             foreach ( $results as $key => $props ) {
    43                 $item = new Giftcard_Coupon();
    44                 $item->set_id( $props['id'] );
    45                 $item->set_props( $props );
    46 
    47                 wp_schedule_single_event( $time, 'gift4u_schedule_send_giftcard', [ $item ] );
    48             }
    49         }
    5020    }
    5121
  • gift4u-gift-cards-all-in-one-for-woo/trunk/inc/enqueue.php

    r2885345 r2959714  
    250250    public function front_enqueue_scripts() {
    251251        wp_register_style( $this->slug . 'single-product', GiftCard::get( 'css_url' ) . 'single-product' . $this->suffix . '.css', '', GiftCard::get( 'version' ) );
    252         wp_register_script( $this->slug . 'single-product', GiftCard::get( 'js_url' ) . 'single-product' . $this->suffix . '.js', [ 'jquery', 'wc-country-select', 'accounting' ], GiftCard::get( 'version' ) );
     252        wp_register_script( $this->slug . 'single-product', GiftCard::get( 'js_url' ) . 'single-product' . $this->suffix . '.js', [ 'jquery', 'selectWoo', 'wc-country-select', 'accounting' ], GiftCard::get( 'version' ) );
    253253
    254254        wp_register_script( $this->slug . 'giftcard-footer-script', false, '', '', true );
     
    265265                }
    266266
    267                 wp_enqueue_script( 'selectWoo' );
    268                 wp_enqueue_script( 'wc-country-select' );
    269267                wp_enqueue_style( 'select2' );
    270268
  • gift4u-gift-cards-all-in-one-for-woo/trunk/readme.txt

    r2933108 r2959714  
    246246== Changelog ==
    247247
     248/**1.0.4 - 2023.08.29**/
     249– Fixed: Generate expired date
     250
    248251/**1.0.3 - 2023.07.03**/
    249252– Updated: Compatible with WooCommerce HPOS(COT)
  • gift4u-gift-cards-all-in-one-for-woo/trunk/support/support.php

    r2933108 r2959714  
    10191019
    10201020                        case 'install':
    1021                             $this->notices[] = sprintf( "%s to be installed. <a href='%s' target='_blank' class='button button-primary' style='vertical-align: middle'>Install %s</a>",
     1021                            $this->notices[] = sprintf( "%s to be installed. <br><a href='%s' target='_blank' class='button button-primary' style='vertical-align: middle; margin-top: 5px;'>Install %s</a>",
    10221022                                esc_html( $require_plugin_name ),
    10231023                                esc_url( ! empty( $status['url'] ) ? $status['url'] : '#' ),
     
    10381038                                );
    10391039
    1040                                 $this->notices[] = sprintf( "%s is installed and activated. <a href='%s' target='_blank' class='button button-primary' style='vertical-align: middle'>Active %s</a>",
     1040                                $this->notices[] = sprintf( "%s is installed and activated. <br> <a href='%s' target='_blank' class='button button-primary' style='vertical-align: middle; margin-top: 5px;'>Active %s</a>",
    10411041                                    esc_html( $require_plugin_name ),
    10421042                                    esc_url( $activate_url ),
  • gift4u-gift-cards-all-in-one-for-woo/trunk/templates/myaccount-giftcard-table.php

    r2885345 r2959714  
    3434                $expiry_date         = $giftcard->get_expiry_date();
    3535                $format_expiry_date  = $expiry_date instanceof \WC_DateTime ? $expiry_date->date_i18n( wc_date_format() ) : '-';
    36                 $expiry_date_in_time = $expiry_date ? $expiry_date->getTimestamp() < time() : true;
     36                $expiry_date_in_time = $expiry_date ? $expiry_date->getTimestamp() > time() : true;
    3737                ?>
    3838                <tr>
  • gift4u-gift-cards-all-in-one-for-woo/trunk/templates/product-details.php

    r2872086 r2959714  
    5959        ?>
    6060        <div class="gift4u-row">
    61             <label for="">
     61            <label >
    6262                <?php esc_html_e( 'Delivery date', 'gift4u-gift-cards-all-in-one-for-woo' ); ?>
    6363            </label>
    6464            <input type="date" name="gift4u_delivery_date" class="gift4u-input"
    6565                   value="<?php echo esc_attr( $edit_data['delivery_date'] ?? '' ) ?>"
    66                    min="<?php echo esc_attr( date( 'Y-m-d', strtotime( 'tomorrow' ) ) ) ?>"
    67             >
     66                   min="<?php echo esc_attr( date( 'Y-m-d', strtotime( 'today' ) ) ) ?>">
    6867        </div>
    6968        <?php
Note: See TracChangeset for help on using the changeset viewer.