Plugin Directory

Changeset 3481881


Ignore:
Timestamp:
03/13/2026 10:31:22 AM (2 weeks ago)
Author:
wijnbergdevelopments
Message:
  • Improved compatibility between Tiered Pricing Table and FiboFilters for dynamically loaded prices
  • Improved compatibility for PDF Invoices & Packing Slips for WooCommerce
Location:
tax-switch-for-woocommerce
Files:
109 added
7 edited

Legend:

Unmodified
Added
Removed
  • tax-switch-for-woocommerce/trunk/README.txt

    r3472745 r3481881  
    44Requires at least: 5.0
    55Tested up to: 6.9
    6 Stable tag: 1.6.10
     6Stable tag: 1.6.11
    77Requires PHP: 7.2
    88License: GPL-2.0+
     
    247247
    248248== Changelog ==
     249= 1.6.11 =
     250* Improved compatibility between Tiered Pricing Table and FiboFilters for dynamically loaded prices
     251* Improved compatibility for PDF Invoices & Packing Slips for WooCommerce
     252
    249253= 1.6.10 =
    250254* Added compatibility for WP Grid Builder
  • tax-switch-for-woocommerce/trunk/build/label/block.json

    r3472745 r3481881  
    33  "apiVersion": 3,
    44  "name": "wdevs/tax-switch-label",
    5   "version": "1.6.10",
     5  "version": "1.6.11",
    66  "title": "Tax Switch text label",
    77  "category": "woocommerce",
  • tax-switch-for-woocommerce/trunk/build/switch/block.json

    r3472745 r3481881  
    33  "apiVersion": 3,
    44  "name": "wdevs/tax-switch",
    5   "version": "1.6.10",
     5  "version": "1.6.11",
    66  "title": "Tax Switch for WooCommerce",
    77  "category": "woocommerce",
  • tax-switch-for-woocommerce/trunk/build/switch/woocommerce-tiered-price-table.asset.php

    r3410740 r3481881  
    1 <?php return array('dependencies' => array('jquery', 'wp-data'), 'version' => 'ebcce90b87bda2f82035');
     1<?php return array('dependencies' => array('jquery', 'wp-data'), 'version' => 'dcefb751e1e2efa448ce');
  • tax-switch-for-woocommerce/trunk/build/switch/woocommerce-tiered-price-table.js

    r3410740 r3481881  
    1 (()=>{"use strict";var t,i={102:(t,i,e)=>{const r=window.jQuery;var a=e.n(r),n=e(159),s=e(651);const c=class{constructor(t){this.originalTaxDisplay=t,this.isInclTaxDisplay="incl"===t,this.priceBackups=new Map,this.vatTexts=null}init(){this.registerWooCommerceEvents(),this.initializePriceBackups()}initializePriceBackups(){const t=this;a()(".tiered-pricing-dynamic-price-wrapper").each((i,e)=>{const r=a()(e),n=r.data("product-id");t.priceBackups.has(n)||t.priceBackups.set(n,r.html())})}registerWooCommerceEvents(){const t=this;a()(".tpt__tiered-pricing").on("tiered_price_update",(i,e)=>{t.updateAllPrices(e)}),a()(".tpt__tiered-pricing").first().children().length&&(a()(document).on("reset_data",i=>{const e=a()(i.target).closest(".variations_form");if(e.length){const i=e.data("product_id");t.resetPrices(i)}}),a()(document).on("show_variation",(i,e)=>{const r=e.variation_id;t.resetPrices(r)}))}updateAllPrices(t){if(!t.__instance)return;const i=this,e=n.A.displayIncludingVat(i.originalTaxDisplay),r=i.shouldShowOriginalPrice(t),s=t.__instance.formatting.formatPrice(t.price),c=t.__instance.formatting.formatPrice(i.getAlternatePrice(t)),l=r?t.__instance.formatting.formatPrice(i.getOriginalPrice(t,!0)):null,o=r?t.__instance.formatting.formatPrice(i.getOriginalPrice(t,!1)):null;a()(".tiered-pricing-dynamic-price-wrapper").filter((i,e)=>{const r=a()(e),n=parseInt(r.data("product-id")),s=parseInt(r.data("parent-id"));return n===s?s===t.parentId:n===t.productId}).each((t,r)=>{const n=a()(r);"dynamic"===n.data("price-type")&&n.html(i.getWtsHtml(e,s,c,!0,l,o))}),i.updateSummaryTable(t,e),n.A.setPriceClasses(i.originalTaxDisplay)}shouldShowOriginalPrice(t){return!!t.__instance.dataProvider.isProductOnSale()||t.__instance.dataProvider.showTieredPriceAsDiscount()&&t.pricing.tieredQuantity>t.__instance.dataProvider.getMinimum()}getOriginalPrice(t,i=!0){const e=this.getAlternatePrice(t);return t.__instance.dataProvider.isProductOnSale()?this.getOriginalRegularPrice(t,i):i?t.__instance.dataProvider.getOriginalPrice():t.__instance.dataProvider.getOriginalPrice()*(e/t.price)}getOriginalRegularPrice(t,i=!0){const e=this.getAlternatePrice(t);return i?t.__instance.dataProvider.getRegularPrice():t.__instance.dataProvider.getRegularPrice()*(e/t.price)}updateSummaryTable(t,i){const e=this,r=e.getSummaryTable(t.parentId);if(!r||!r.length)return;const a=e.getAlternatePrice(t),s=e.getWtsHtml(i,t.__instance.formatting.formatPrice(t.price),t.__instance.formatting.formatPrice(a),!0),c=e.getWtsHtml(i,t.__instance.formatting.formatPrice(t.price*t.quantity),t.__instance.formatting.formatPrice(a*t.quantity),!0),l=e.getWtsHtml(i,t.__instance.formatting.formatPrice(t.price*t.quantity),t.__instance.formatting.formatPrice(a*t.quantity),!0),o=t.__instance.dataProvider.getRegularPrice();let p="";if(t.price!==o){const r=e.getOriginalRegularPrice(t,!1);p=e.getWtsHtml(i,t.__instance.formatting.formatPrice(o),t.__instance.formatting.formatPrice(r),!1)}setTimeout(function(){r.find("[data-tier-pricing-table-summary-product-price]").html(s),r.find("[data-tier-pricing-table-summary-total]").html(c),r.find("[data-tier-pricing-table-summary-total-with-tax]").html(l),r.find("[data-tier-pricing-table-summary-product-old-price]").html(p),n.A.setPriceClasses(e.originalTaxDisplay)},10)}getSummaryTable(t){return t?a()(".tier-pricing-summary-table").filter(`[data-product-id=${t}]`):a()(".tier-pricing-summary-table")}resetPrices(t){const i=this.priceBackups.get(t);i&&a()(".tiered-pricing-dynamic-price-wrapper").filter(`[data-product-id=${t}]`).html(i),n.A.setPriceClasses(this.originalTaxDisplay)}getWtsHtml(t,i,e,r=!1,a=null,n=null){const c=this,l=(t,i)=>i?`<del>${i}</del> <ins>${t}</ins>`:t,[o,p]=c.isInclTaxDisplay?[i,e]:[e,i],[d,g]=c.isInclTaxDisplay?[a,n]:[n,a],u=`\n        <span class="wts-price-wrapper">\n            <span class="wts-price-incl ${t?"wts-active":"wts-inactive"}">\n                ${l(o,d)}\n            </span>\n            <span class="wts-price-excl ${t?"wts-inactive":"wts-active"}">\n                ${l(p,g)}\n            </span>\n        </span>\n    `;return r&&(c.vatTexts||(c.vatTexts=s.A.getVatTexts()),c.vatTexts)?`\n                <span class="wts-price-container">\n                    ${u}\n                    ${s.A.getVatTextElement(t,c.vatTexts.including,c.vatTexts.excluding)}\n                </span>\n            `:`\n        <span class="wts-price-container">\n            ${u}\n        </span>\n    `}getAlternatePrice(t){return this.isInclTaxDisplay?t.pricing.price_excl_tax:t.pricing.price_incl_tax}};(0,e(538).P)(()=>{const t=window.wtsViewObject||{originalTaxDisplay:"incl"};new c(t.originalTaxDisplay).init()})},143:t=>{t.exports=window.wp.data}},e={};function r(t){var a=e[t];if(void 0!==a)return a.exports;var n=e[t]={exports:{}};return i[t](n,n.exports,r),n.exports}r.m=i,t=[],r.O=(i,e,a,n)=>{if(!e){var s=1/0;for(p=0;p<t.length;p++){for(var[e,a,n]=t[p],c=!0,l=0;l<e.length;l++)(!1&n||s>=n)&&Object.keys(r.O).every(t=>r.O[t](e[l]))?e.splice(l--,1):(c=!1,n<s&&(s=n));if(c){t.splice(p--,1);var o=a();void 0!==o&&(i=o)}}return i}n=n||0;for(var p=t.length;p>0&&t[p-1][2]>n;p--)t[p]=t[p-1];t[p]=[e,a,n]},r.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return r.d(i,{a:i}),i},r.d=(t,i)=>{for(var e in i)r.o(i,e)&&!r.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:i[e]})},r.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i),r.j=387,(()=>{var t={387:0};r.O.j=i=>0===t[i];var i=(i,e)=>{var a,n,[s,c,l]=e,o=0;if(s.some(i=>0!==t[i])){for(a in c)r.o(c,a)&&(r.m[a]=c[a]);if(l)var p=l(r)}for(i&&i(e);o<s.length;o++)n=s[o],r.o(t,n)&&t[n]&&t[n][0](),t[n]=0;return r.O(p)},e=globalThis.webpackChunkwdevs_tax_switch=globalThis.webpackChunkwdevs_tax_switch||[];e.forEach(i.bind(null,0)),e.push=i.bind(null,e.push.bind(e))})();var a=r.O(void 0,[320],()=>r(102));a=r.O(a)})();
     1(()=>{"use strict";var t,i={102:(t,i,e)=>{const r=window.jQuery;var a=e.n(r),n=e(159),s=e(651);const c=class{constructor(t){this.originalTaxDisplay=t,this.isInclTaxDisplay="incl"===t,this.priceBackups=new Map,this.vatTexts=null}init(){this.registerWooCommerceEvents(),this.initializePriceBackups(),this.registerThirdPartyEvents()}initializePriceBackups(){const t=this;a()(".tiered-pricing-dynamic-price-wrapper").each((i,e)=>{const r=a()(e),n=r.data("product-id");t.priceBackups.has(n)||t.priceBackups.set(n,r.html())})}registerWooCommerceEvents(){const t=this;a()(document).off("tiered_price_update.wtsTieredPriceTable").on("tiered_price_update.wtsTieredPriceTable",(i,e)=>{t.updateAllPrices(e)}),a()(".tpt__tiered-pricing").first().children().length&&(a()(document).off("reset_data.wtsTieredPriceTable").on("reset_data.wtsTieredPriceTable",i=>{const e=a()(i.target).closest(".variations_form");if(e.length){const i=e.data("product_id");t.resetPrices(i)}}),a()(document).off("show_variation.wtsTieredPriceTable").on("show_variation.wtsTieredPriceTable",(i,e)=>{const r=e.variation_id;t.resetPrices(r)}))}registerThirdPartyEvents(){void 0!==window.fiboFilters&&window.fiboFilters.hooks.addAction("fiboFilters.renderer.product_placeholders_overwritten","tiered-price-table",()=>{void 0!==document.__tieredPricing&&"function"==typeof document.__tieredPricing.initFunction&&a()(".tpt__tiered-pricing").each((t,i)=>{this.isTieredPricingWrapperInitialized(i)||(document.__tieredPricing.initFunction(i),this.triggerSelectedVariation(i))})})}isTieredPricingWrapperInitialized(t){const i=document.__tieredPricing?.activeInstances;return!!Array.isArray(i)&&i.some(i=>i?.$wrapper?.get(0)===t)}triggerSelectedVariation(t){const i=a()(t).closest(".product"),e=i.find(".variations_form"),r=i.find(".single_variation_wrap");if(!e.length||!r.length)return;const n=parseInt(e.find(".variation_id").val());if(Number.isNaN(n)||!n)return;const s=e.data("product_variations");if(Array.isArray(s)){const t=s.find(t=>parseInt(t.variation_id)===n);if(t)return void r.trigger("show_variation",[t])}e.trigger("check_variations")}updateAllPrices(t){if(!t||!t.__instance)return;const i=this,e=n.A.displayIncludingVat(i.originalTaxDisplay),r=i.shouldShowOriginalPrice(t),s=t.__instance.formatting.formatPrice(t.price),c=t.__instance.formatting.formatPrice(i.getAlternatePrice(t)),o=r?t.__instance.formatting.formatPrice(i.getOriginalPrice(t,!0)):null,l=r?t.__instance.formatting.formatPrice(i.getOriginalPrice(t,!1)):null;a()(".tiered-pricing-dynamic-price-wrapper").filter((i,e)=>{const r=a()(e),n=parseInt(r.data("product-id")),s=parseInt(r.data("parent-id"));return n===s?s===t.parentId:n===t.productId}).each((t,r)=>{const n=a()(r);"dynamic"===n.data("price-type")&&n.html(i.getWtsHtml(e,s,c,!0,o,l))}),i.updateSummaryTable(t,e),n.A.setPriceClasses(i.originalTaxDisplay)}shouldShowOriginalPrice(t){return!!t.__instance.dataProvider.isProductOnSale()||t.__instance.dataProvider.showTieredPriceAsDiscount()&&t.pricing.tieredQuantity>t.__instance.dataProvider.getMinimum()}getOriginalPrice(t,i=!0){const e=this.getAlternatePrice(t);return t.__instance.dataProvider.isProductOnSale()?this.getOriginalRegularPrice(t,i):i?t.__instance.dataProvider.getOriginalPrice():t.__instance.dataProvider.getOriginalPrice()*(e/t.price)}getOriginalRegularPrice(t,i=!0){const e=this.getAlternatePrice(t);return i?t.__instance.dataProvider.getRegularPrice():t.__instance.dataProvider.getRegularPrice()*(e/t.price)}updateSummaryTable(t,i){const e=this,r=e.getSummaryTable(t.parentId);if(!r||!r.length)return;const a=e.getAlternatePrice(t),s=e.getWtsHtml(i,t.__instance.formatting.formatPrice(t.price),t.__instance.formatting.formatPrice(a),!0),c=e.getWtsHtml(i,t.__instance.formatting.formatPrice(t.price*t.quantity),t.__instance.formatting.formatPrice(a*t.quantity),!0),o=e.getWtsHtml(i,t.__instance.formatting.formatPrice(t.price*t.quantity),t.__instance.formatting.formatPrice(a*t.quantity),!0),l=t.__instance.dataProvider.getRegularPrice();let d="";if(t.price!==l){const r=e.getOriginalRegularPrice(t,!1);d=e.getWtsHtml(i,t.__instance.formatting.formatPrice(l),t.__instance.formatting.formatPrice(r),!1)}setTimeout(function(){r.find("[data-tier-pricing-table-summary-product-price]").html(s),r.find("[data-tier-pricing-table-summary-total]").html(c),r.find("[data-tier-pricing-table-summary-total-with-tax]").html(o),r.find("[data-tier-pricing-table-summary-product-old-price]").html(d),n.A.setPriceClasses(e.originalTaxDisplay)},10)}getSummaryTable(t){return t?a()(".tier-pricing-summary-table").filter(`[data-product-id=${t}]`):a()(".tier-pricing-summary-table")}resetPrices(t){const i=this.priceBackups.get(t);i&&a()(".tiered-pricing-dynamic-price-wrapper").filter(`[data-product-id=${t}]`).html(i),n.A.setPriceClasses(this.originalTaxDisplay)}getWtsHtml(t,i,e,r=!1,a=null,n=null){const c=this,o=(t,i)=>i?`<del>${i}</del> <ins>${t}</ins>`:t,[l,d]=c.isInclTaxDisplay?[i,e]:[e,i],[p,g]=c.isInclTaxDisplay?[a,n]:[n,a],u=`\n        <span class="wts-price-wrapper">\n            <span class="wts-price-incl ${t?"wts-active":"wts-inactive"}">\n                ${o(l,p)}\n            </span>\n            <span class="wts-price-excl ${t?"wts-inactive":"wts-active"}">\n                ${o(d,g)}\n            </span>\n        </span>\n    `;return r&&(c.vatTexts||(c.vatTexts=s.A.getVatTexts()),c.vatTexts)?`\n                <span class="wts-price-container">\n                    ${u}\n                    ${s.A.getVatTextElement(t,c.vatTexts.including,c.vatTexts.excluding)}\n                </span>\n            `:`\n        <span class="wts-price-container">\n            ${u}\n        </span>\n    `}getAlternatePrice(t){return this.isInclTaxDisplay?t.pricing.price_excl_tax:t.pricing.price_incl_tax}};(0,e(538).P)(()=>{const t=window.wtsViewObject||{originalTaxDisplay:"incl"};new c(t.originalTaxDisplay).init()})},143:t=>{t.exports=window.wp.data}},e={};function r(t){var a=e[t];if(void 0!==a)return a.exports;var n=e[t]={exports:{}};return i[t](n,n.exports,r),n.exports}r.m=i,t=[],r.O=(i,e,a,n)=>{if(!e){var s=1/0;for(d=0;d<t.length;d++){for(var[e,a,n]=t[d],c=!0,o=0;o<e.length;o++)(!1&n||s>=n)&&Object.keys(r.O).every(t=>r.O[t](e[o]))?e.splice(o--,1):(c=!1,n<s&&(s=n));if(c){t.splice(d--,1);var l=a();void 0!==l&&(i=l)}}return i}n=n||0;for(var d=t.length;d>0&&t[d-1][2]>n;d--)t[d]=t[d-1];t[d]=[e,a,n]},r.n=t=>{var i=t&&t.__esModule?()=>t.default:()=>t;return r.d(i,{a:i}),i},r.d=(t,i)=>{for(var e in i)r.o(i,e)&&!r.o(t,e)&&Object.defineProperty(t,e,{enumerable:!0,get:i[e]})},r.o=(t,i)=>Object.prototype.hasOwnProperty.call(t,i),r.j=387,(()=>{var t={387:0};r.O.j=i=>0===t[i];var i=(i,e)=>{var a,n,[s,c,o]=e,l=0;if(s.some(i=>0!==t[i])){for(a in c)r.o(c,a)&&(r.m[a]=c[a]);if(o)var d=o(r)}for(i&&i(e);l<s.length;l++)n=s[l],r.o(t,n)&&t[n]&&t[n][0](),t[n]=0;return r.O(d)},e=globalThis.webpackChunkwdevs_tax_switch=globalThis.webpackChunkwdevs_tax_switch||[];e.forEach(i.bind(null,0)),e.push=i.bind(null,e.push.bind(e))})();var a=r.O(void 0,[320],()=>r(102));a=r.O(a)})();
  • tax-switch-for-woocommerce/trunk/includes/trait-wdevs-tax-switch-helper.php

    r3447052 r3481881  
    254254    public function is_file_context() {
    255255        //Compatibility for PDF Invoices & Packing Slips for WooCommerce
    256         if (did_filter( 'wcpdf_get_document' ) ) {
     256        // wcpdf_get_document is also called sometimes via AJAX in frontend
     257        // This would probably return false or null, but this would pass this if incorrectly
     258        //if (did_filter( 'wcpdf_get_document' ) ) {
     259        //In 1.6.11 switched to:
     260        if ( did_filter( 'wpo_wcpdf_html_filters' ) || did_filter( 'wpo_wcpdf_pdf_filters' ) ) {
    257261            return true;
    258262        }
  • tax-switch-for-woocommerce/trunk/wdevs-tax-switch.php

    r3472745 r3481881  
    1717 * Plugin URI:           https://wijnberg.dev
    1818 * Description:          Let customers toggle between inclusive and exclusive VAT pricing in your WooCommerce store.
    19  * Version:              1.6.10
     19 * Version:              1.6.11
    2020 * Author:               Wijnberg Developments
    2121 * Author URI:           https://wijnberg.dev/
     
    4141 * Rename this for your plugin and update it as you release new versions.
    4242 */
    43 define( 'WDEVS_TAX_SWITCH_VERSION', '1.6.10' );
     43define( 'WDEVS_TAX_SWITCH_VERSION', '1.6.11' );
    4444
    4545/**
Note: See TracChangeset for help on using the changeset viewer.