Changeset 2959714
- Timestamp:
- 08/29/2023 07:44:55 AM (2 years ago)
- Location:
- gift4u-gift-cards-all-in-one-for-woo/trunk
- Files:
-
- 21 edited
-
CHANGELOG.txt (modified) (1 diff)
-
admin/admin.php (modified) (1 diff)
-
admin/giftcard-table.php (modified) (1 diff)
-
assets/css/giftcard-manage.css (modified) (1 diff)
-
assets/css/giftcard-manage.css.map (modified) (1 diff)
-
assets/css/giftcard-manage.min.css (modified) (1 diff)
-
assets/css/giftcard-manage.scss (modified) (1 diff)
-
assets/js/giftcard-manage.js (modified) (1 diff)
-
assets/js/giftcard-manage.min.js (modified) (1 diff)
-
assets/js/single-product.js (modified) (2 diffs)
-
assets/js/single-product.min.js (modified) (1 diff)
-
front/order-process.php (modified) (10 diffs)
-
gift4u-gift-cards-all-in-one-for-woo.php (modified) (2 diffs)
-
inc/classes/email.php (modified) (3 diffs)
-
inc/classes/giftcard-coupon.php (modified) (2 diffs)
-
inc/cron.php (modified) (2 diffs)
-
inc/enqueue.php (modified) (2 diffs)
-
readme.txt (modified) (1 diff)
-
support/support.php (modified) (2 diffs)
-
templates/myaccount-giftcard-table.php (modified) (1 diff)
-
templates/product-details.php (modified) (1 diff)
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 1 4 /**1.0.3 - 2023.07.03**/ 2 5 – Updated: Compatible with WooCommerce HPOS(COT) -
gift4u-gift-cards-all-in-one-for-woo/trunk/admin/admin.php
r2872134 r2959714 384 384 } 385 385 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 386 400 $delivery_statuses = Utils::delivery_status_list(); 401 402 $expiry_date = $gc_coupon->get_expiry_date();//get expiry date after save 387 403 388 404 wp_send_json_success( [ 389 405 'message' => esc_html__( 'Marked as shipped', 'gift4u-gift-cards-all-in-one-for-woo' ), 390 406 'delivery_status' => $delivery_statuses['sent'] ?? '', 407 'expiry_date' => $expiry_date instanceof \WC_DateTime ? $expiry_date->date_i18n( wc_date_format() ) : '', 391 408 ] ); 392 409 } -
gift4u-gift-cards-all-in-one-for-woo/trunk/admin/giftcard-table.php
r2885345 r2959714 536 536 537 537 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>" : '-' ); 541 545 542 546 case 'from': -
gift4u-gift-cards-all-in-one-for-woo/trunk/assets/css/giftcard-manage.css
r2872134 r2959714 32 32 .vi-ui.table td.check-column input[type=checkbox] { 33 33 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; 34 37 } 35 38 -
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 39 39 } 40 40 } 41 42 thead th#expiry_date, td.column-expiry_date { 43 text-align: center; 44 } 45 41 46 } 42 47 -
gift4u-gift-cards-all-in-one-for-woo/trunk/assets/js/giftcard-manage.js
r2885345 r2959714 201 201 $this.closest('tr').find('td.column-delivery_status').text(res.data.delivery_status) 202 202 } 203 204 $this.closest('tr').find('td.column-expiry_date').text(res.data.expiry_date) 203 205 }, 204 206 -
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)}}));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),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 264 264 let plusBtn = $('form .quantity .plus'); 265 265 266 267 266 if (mailString.length) { 268 267 let splitLength = mailString.split(',').length; … … 313 312 .on('click', '.gift4u-card-template-preview:not(.gift4u-loading)', cardTemplatePreview) 314 313 .on('keyup change', '.gift4u-user-input-amount', onUserInputChange) 315 .on(' keyup', '.gift4u-recipient-email', onEmailInputChange)314 .on('change', '.gift4u-recipient-email', onEmailInputChange) 316 315 .on('keyup', '.gift4u-message', checkCharacterLimit) 317 316 .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")}));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("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 129 129 } 130 130 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 // } 139 139 140 140 $price_type = $product->get_price_type(); … … 306 306 } 307 307 308 $meta_data = $item->get_meta( '_gift4u_data' ); 308 $meta_data = $item->get_meta( '_gift4u_data' ); 309 309 310 $price_type = $product->get_price_type(); 310 311 $coupon_amount = $price_type == 'input' ? ( $meta_data['coupon_amount'] ?? 0 ) : $product->get_regular_price(); … … 317 318 $delivery_date = $meta_data['delivery_date'] ?? ''; 318 319 $gc_coupon_generated_ids = []; 320 $time_offest = 7 - (int) get_option( 'gmt_offset' ); 319 321 320 322 switch ( $delivery_method ) { … … 330 332 if ( $email_count > 1 ) { 331 333 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 ] ); 333 342 334 343 if ( ! $gc_coupon ) { … … 336 345 } 337 346 338 $this->send_email( $gc_coupon, $email );339 347 $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 } 340 355 } 341 356 } else { … … 343 358 for ( $i = 0; $i < $item_qty; $i ++ ) { 344 359 $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 ] ); 346 368 347 369 if ( ! $gc_coupon ) { … … 349 371 } 350 372 351 $this->send_email( $gc_coupon, $email );352 373 $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 } 353 381 } 354 382 } 355 356 383 357 384 break; … … 362 389 363 390 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 ] ); 365 399 366 400 if ( ! $gc_coupon ) { … … 382 416 } 383 417 418 384 419 /** 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 391 421 * 392 * @return \Gift4U\Inc\Classes\Giftcard_Coupon|\WP_Error|null422 * @return bool|Giftcard_Coupon|\WP_Error|null 393 423 */ 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 395 442 $gc_coupon = Utils::create_giftcard_coupon( [ 396 443 'order_id' => $order->get_id(), 397 444 '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'], 402 450 'currency' => $order->get_currency(), 403 'meta_data' => $ meta_data451 'meta_data' => $args['meta_data'] 404 452 ] ); 405 453 … … 412 460 */ 413 461 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 420 469 //send email 421 470 $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 5 5 * 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. 6 6 * Author: VillaTheme 7 * Version: 1.0. 37 * Version: 1.0.4 8 8 * Author URI: http://villatheme.com 9 9 * Text Domain: gift4u-gift-cards-all-in-one-for-woo … … 41 41 42 42 self::$args = [ 43 'version' => '1.0. 3',43 'version' => '1.0.4', 44 44 'plugin_name' => 'GIFT4U - Gift Cards All in One for Woo', 45 45 'slug' => 'gift4u-gift-cards-all-in-one-for-woo', -
gift4u-gift-cards-all-in-one-for-woo/trunk/inc/classes/email.php
r2872086 r2959714 58 58 59 59 $subject = $this->replace_placeholder( Data::get_param( 'email_subject' ), true ); 60 60 61 $headers = [ "Content-Type: text/html" ]; 61 62 … … 81 82 if ( ! $expiry_date ) { 82 83 $coupon_options = $this->gc_coupon->get_coupon_options(); 84 83 85 if ( ! empty( $coupon_options['expiry_date'] ) ) { 84 $date = current_time( 'U' ) + 10 * DAY_IN_SECONDS; 86 $date = strtotime( "+{$coupon_options['expiry_date']} day" ); 87 85 88 $this->gc_coupon->set_expiry_date( $date ); 86 89 } … … 88 91 89 92 $this->gc_coupon->set_delivery_status( 'sent' ); 93 $this->gc_coupon->set_delivery_date( time() ); 90 94 $this->gc_coupon->save(); 91 95 } -
gift4u-gift-cards-all-in-one-for-woo/trunk/inc/classes/giftcard-coupon.php
r2872134 r2959714 137 137 $props = (array) $props; 138 138 139 $meta_data = json_decode( $props['meta_data'], true );139 $meta_data = json_decode( $props['meta_data'], true ); 140 140 141 141 $props['meta_data'] = $meta_data; … … 207 207 208 208 public function get_coupon_options() { 209 return $this->data['coupon_options'] ?? [];209 return (array) $this->get_single_meta_data( 'coupon_options' ); 210 210 } 211 211 -
gift4u-gift-cards-all-in-one-for-woo/trunk/inc/cron.php
r2872086 r2959714 13 13 14 14 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' ] );21 15 add_action( 'gift4u_schedule_send_giftcard', [ $this, 'send_giftcard_via_email' ] ); 22 16 } … … 24 18 public static function instance() { 25 19 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 }50 20 } 51 21 -
gift4u-gift-cards-all-in-one-for-woo/trunk/inc/enqueue.php
r2885345 r2959714 250 250 public function front_enqueue_scripts() { 251 251 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' ) ); 253 253 254 254 wp_register_script( $this->slug . 'giftcard-footer-script', false, '', '', true ); … … 265 265 } 266 266 267 wp_enqueue_script( 'selectWoo' );268 wp_enqueue_script( 'wc-country-select' );269 267 wp_enqueue_style( 'select2' ); 270 268 -
gift4u-gift-cards-all-in-one-for-woo/trunk/readme.txt
r2933108 r2959714 246 246 == Changelog == 247 247 248 /**1.0.4 - 2023.08.29**/ 249 – Fixed: Generate expired date 250 248 251 /**1.0.3 - 2023.07.03**/ 249 252 – Updated: Compatible with WooCommerce HPOS(COT) -
gift4u-gift-cards-all-in-one-for-woo/trunk/support/support.php
r2933108 r2959714 1019 1019 1020 1020 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>", 1022 1022 esc_html( $require_plugin_name ), 1023 1023 esc_url( ! empty( $status['url'] ) ? $status['url'] : '#' ), … … 1038 1038 ); 1039 1039 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>", 1041 1041 esc_html( $require_plugin_name ), 1042 1042 esc_url( $activate_url ), -
gift4u-gift-cards-all-in-one-for-woo/trunk/templates/myaccount-giftcard-table.php
r2885345 r2959714 34 34 $expiry_date = $giftcard->get_expiry_date(); 35 35 $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; 37 37 ?> 38 38 <tr> -
gift4u-gift-cards-all-in-one-for-woo/trunk/templates/product-details.php
r2872086 r2959714 59 59 ?> 60 60 <div class="gift4u-row"> 61 <label for="">61 <label > 62 62 <?php esc_html_e( 'Delivery date', 'gift4u-gift-cards-all-in-one-for-woo' ); ?> 63 63 </label> 64 64 <input type="date" name="gift4u_delivery_date" class="gift4u-input" 65 65 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' ) ) ) ?>"> 68 67 </div> 69 68 <?php
Note: See TracChangeset
for help on using the changeset viewer.