Changeset 3306868
- Timestamp:
- 06/05/2025 07:42:21 AM (7 months ago)
- Location:
- ti-woocommerce-wishlist
- Files:
-
- 295 added
- 38 edited
-
tags/2.10.0 (added)
-
tags/2.10.0/admin (added)
-
tags/2.10.0/admin/base.helper.php (added)
-
tags/2.10.0/admin/basesection.helper.php (added)
-
tags/2.10.0/admin/basestyle.helper.php (added)
-
tags/2.10.0/admin/index.php (added)
-
tags/2.10.0/admin/notices.class.php (added)
-
tags/2.10.0/admin/settings (added)
-
tags/2.10.0/admin/settings/general.class.php (added)
-
tags/2.10.0/admin/settings/index.php (added)
-
tags/2.10.0/admin/settings/integrations.class.php (added)
-
tags/2.10.0/admin/settings/settings.class.php (added)
-
tags/2.10.0/admin/settings/style.class.php (added)
-
tags/2.10.0/admin/settings/upgrade.class.php (added)
-
tags/2.10.0/admin/tinvwl.class.php (added)
-
tags/2.10.0/admin/wishlist.class.php (added)
-
tags/2.10.0/assets (added)
-
tags/2.10.0/assets/css (added)
-
tags/2.10.0/assets/css/admin-form-rtl.css (added)
-
tags/2.10.0/assets/css/admin-form-rtl.css.map (added)
-
tags/2.10.0/assets/css/admin-form-rtl.min.css (added)
-
tags/2.10.0/assets/css/admin-form.css (added)
-
tags/2.10.0/assets/css/admin-form.css.map (added)
-
tags/2.10.0/assets/css/admin-form.min.css (added)
-
tags/2.10.0/assets/css/admin-rtl.css (added)
-
tags/2.10.0/assets/css/admin-rtl.css.map (added)
-
tags/2.10.0/assets/css/admin-rtl.min.css (added)
-
tags/2.10.0/assets/css/admin-setup-rtl.css (added)
-
tags/2.10.0/assets/css/admin-setup-rtl.css.map (added)
-
tags/2.10.0/assets/css/admin-setup-rtl.min.css (added)
-
tags/2.10.0/assets/css/admin-setup.css (added)
-
tags/2.10.0/assets/css/admin-setup.css.map (added)
-
tags/2.10.0/assets/css/admin-setup.min.css (added)
-
tags/2.10.0/assets/css/admin.css (added)
-
tags/2.10.0/assets/css/admin.css.map (added)
-
tags/2.10.0/assets/css/admin.min.css (added)
-
tags/2.10.0/assets/css/public-rtl.css (added)
-
tags/2.10.0/assets/css/public-rtl.css.map (added)
-
tags/2.10.0/assets/css/public-rtl.min.css (added)
-
tags/2.10.0/assets/css/public.css (added)
-
tags/2.10.0/assets/css/public.css.map (added)
-
tags/2.10.0/assets/css/public.min.css (added)
-
tags/2.10.0/assets/css/theme-rtl.css (added)
-
tags/2.10.0/assets/css/theme-rtl.css.map (added)
-
tags/2.10.0/assets/css/theme-rtl.min.css (added)
-
tags/2.10.0/assets/css/theme.css (added)
-
tags/2.10.0/assets/css/theme.css.map (added)
-
tags/2.10.0/assets/css/theme.min.css (added)
-
tags/2.10.0/assets/css/webfont-rtl.css (added)
-
tags/2.10.0/assets/css/webfont-rtl.css.map (added)
-
tags/2.10.0/assets/css/webfont-rtl.min.css (added)
-
tags/2.10.0/assets/css/webfont.css (added)
-
tags/2.10.0/assets/css/webfont.css.map (added)
-
tags/2.10.0/assets/css/webfont.min.css (added)
-
tags/2.10.0/assets/fonts (added)
-
tags/2.10.0/assets/fonts/tinvwl-webfont.eot (added)
-
tags/2.10.0/assets/fonts/tinvwl-webfont.svg (added)
-
tags/2.10.0/assets/fonts/tinvwl-webfont.ttf (added)
-
tags/2.10.0/assets/fonts/tinvwl-webfont.woff (added)
-
tags/2.10.0/assets/fonts/tinvwl-webfont.woff2 (added)
-
tags/2.10.0/assets/img (added)
-
tags/2.10.0/assets/img/admin-rescue.png (added)
-
tags/2.10.0/assets/img/[email protected] (added)
-
tags/2.10.0/assets/img/admin-update.png (added)
-
tags/2.10.0/assets/img/[email protected] (added)
-
tags/2.10.0/assets/img/chevron_down.png (added)
-
tags/2.10.0/assets/img/[email protected] (added)
-
tags/2.10.0/assets/img/chevron_icon.png (added)
-
tags/2.10.0/assets/img/[email protected] (added)
-
tags/2.10.0/assets/img/color_icon.png (added)
-
tags/2.10.0/assets/img/[email protected] (added)
-
tags/2.10.0/assets/img/cyber_monday.png (added)
-
tags/2.10.0/assets/img/heart-tinv.svg (added)
-
tags/2.10.0/assets/img/icon_menu.png (added)
-
tags/2.10.0/assets/img/[email protected] (added)
-
tags/2.10.0/assets/img/logo_heart.png (added)
-
tags/2.10.0/assets/img/[email protected] (added)
-
tags/2.10.0/assets/img/money-back.svg (added)
-
tags/2.10.0/assets/img/premium_logo.png (added)
-
tags/2.10.0/assets/img/select_caret.png (added)
-
tags/2.10.0/assets/img/[email protected] (added)
-
tags/2.10.0/assets/img/select_caret_t.png (added)
-
tags/2.10.0/assets/img/[email protected] (added)
-
tags/2.10.0/assets/img/wishlists_table.png (added)
-
tags/2.10.0/assets/img/wizard_logo.png (added)
-
tags/2.10.0/assets/img/[email protected] (added)
-
tags/2.10.0/assets/img/wizard_setup.png (added)
-
tags/2.10.0/assets/img/[email protected] (added)
-
tags/2.10.0/assets/js (added)
-
tags/2.10.0/assets/js/admin.js (added)
-
tags/2.10.0/assets/js/admin.min.js (added)
-
tags/2.10.0/assets/js/blocks.js (added)
-
tags/2.10.0/assets/js/bootstrap.js (added)
-
tags/2.10.0/assets/js/bootstrap.min.js (added)
-
tags/2.10.0/assets/js/clipboard.min.js (added)
-
tags/2.10.0/assets/js/editor.js (added)
-
tags/2.10.0/assets/js/public.js (added)
-
tags/2.10.0/assets/js/public.min.js (added)
-
tags/2.10.0/includes (added)
-
tags/2.10.0/includes/activator.class.php (added)
-
tags/2.10.0/includes/analytics.class.php (added)
-
tags/2.10.0/includes/api (added)
-
tags/2.10.0/includes/api.class.php (added)
-
tags/2.10.0/includes/api/wishlist.class.php (added)
-
tags/2.10.0/includes/deprecated (added)
-
tags/2.10.0/includes/deprecated.class.php (added)
-
tags/2.10.0/includes/deprecated/actions.class.php (added)
-
tags/2.10.0/includes/deprecated/filters.class.php (added)
-
tags/2.10.0/includes/export.class.php (added)
-
tags/2.10.0/includes/form.helper.php (added)
-
tags/2.10.0/includes/index.php (added)
-
tags/2.10.0/includes/pluginextend.helper.php (added)
-
tags/2.10.0/includes/product (added)
-
tags/2.10.0/includes/product.helper.php (added)
-
tags/2.10.0/includes/product/index.php (added)
-
tags/2.10.0/includes/product/legacy.class.php (added)
-
tags/2.10.0/includes/product/local.class.php (added)
-
tags/2.10.0/includes/tinvwl.class.php (added)
-
tags/2.10.0/includes/update.helper.php (added)
-
tags/2.10.0/includes/view.helper.php (added)
-
tags/2.10.0/includes/viewsection.helper.php (added)
-
tags/2.10.0/includes/wishlist.class.php (added)
-
tags/2.10.0/includes/wizard.class.php (added)
-
tags/2.10.0/includes/wizardsetup.helper.php (added)
-
tags/2.10.0/index.php (added)
-
tags/2.10.0/integrations (added)
-
tags/2.10.0/integrations/advanced-product-fields-for-woocommerce-pro.php (added)
-
tags/2.10.0/integrations/advanced-product-fields-for-woocommerce.php (added)
-
tags/2.10.0/integrations/automatewoo (added)
-
tags/2.10.0/integrations/automatewoo.php (added)
-
tags/2.10.0/integrations/automatewoo/trigger-wishlist-item-added-to-cart.php (added)
-
tags/2.10.0/integrations/automatewoo/trigger-wishlist-item-added.php (added)
-
tags/2.10.0/integrations/automatewoo/trigger-wishlist-item-purchased.php (added)
-
tags/2.10.0/integrations/automatewoo/trigger-wishlist-item-removed.php (added)
-
tags/2.10.0/integrations/automatewoo/trigger-wishlist-reminder.php (added)
-
tags/2.10.0/integrations/automatewoo/wishlist.class.php (added)
-
tags/2.10.0/integrations/buy-now-button-for-woocommerce.php (added)
-
tags/2.10.0/integrations/check-pincodezipcode-for-shipping-woocommerce.php (added)
-
tags/2.10.0/integrations/cleantalk-spam-protect.php (added)
-
tags/2.10.0/integrations/clever-swatches.php (added)
-
tags/2.10.0/integrations/comet-cache.php (added)
-
tags/2.10.0/integrations/duracelltomi-google-tag-manager.php (added)
-
tags/2.10.0/integrations/elex-woocommerce-catalog-mode.php (added)
-
tags/2.10.0/integrations/gift-cards-for-woocommerce.php (added)
-
tags/2.10.0/integrations/hide-price-add-to-cart-button.php (added)
-
tags/2.10.0/integrations/honeypot.php (added)
-
tags/2.10.0/integrations/improved-variable-product-attributes.php (added)
-
tags/2.10.0/integrations/ione360-configurator.php (added)
-
tags/2.10.0/integrations/litespeed-cache.php (added)
-
tags/2.10.0/integrations/mycred.php (added)
-
tags/2.10.0/integrations/nasa-core.php (added)
-
tags/2.10.0/integrations/product-extras-for-woocommerce.php (added)
-
tags/2.10.0/integrations/product-quantity-for-woocommerce.php (added)
-
tags/2.10.0/integrations/pw-woocommerce-gift-cards.php (added)
-
tags/2.10.0/integrations/shopengine.php (added)
-
tags/2.10.0/integrations/show-single-variations.php (added)
-
tags/2.10.0/integrations/sitepress-multilingual-cms.php (added)
-
tags/2.10.0/integrations/theme-divi.php (added)
-
tags/2.10.0/integrations/theme-flatsome.php (added)
-
tags/2.10.0/integrations/theme-kallyas.php (added)
-
tags/2.10.0/integrations/theme-oceanwp.php (added)
-
tags/2.10.0/integrations/uni-woo-custom-product-options.php (added)
-
tags/2.10.0/integrations/vad-product-design.php (added)
-
tags/2.10.0/integrations/wc-fields-factory.php (added)
-
tags/2.10.0/integrations/woo-advanced-qty.php (added)
-
tags/2.10.0/integrations/woo-custom-product-addons.php (added)
-
tags/2.10.0/integrations/woo-extra-product-options.php (added)
-
tags/2.10.0/integrations/woo-payment-gateway.php (added)
-
tags/2.10.0/integrations/woo-product-bundle.php (added)
-
tags/2.10.0/integrations/woo-variation-swatches-pro.php (added)
-
tags/2.10.0/integrations/woo-variations-table-grid.php (added)
-
tags/2.10.0/integrations/woocommerce-booking.php (added)
-
tags/2.10.0/integrations/woocommerce-bookings.php (added)
-
tags/2.10.0/integrations/woocommerce-composite-products.php (added)
-
tags/2.10.0/integrations/woocommerce-custom-fields.php (added)
-
tags/2.10.0/integrations/woocommerce-fast-cart.php (added)
-
tags/2.10.0/integrations/woocommerce-gravityforms-product-addons.php (added)
-
tags/2.10.0/integrations/woocommerce-mix-and-match-products.php (added)
-
tags/2.10.0/integrations/woocommerce-multilingual.php (added)
-
tags/2.10.0/integrations/woocommerce-product-addon.php (added)
-
tags/2.10.0/integrations/woocommerce-product-addons.php (added)
-
tags/2.10.0/integrations/woocommerce-product-bundles.php (added)
-
tags/2.10.0/integrations/woocommerce-product-table.php (added)
-
tags/2.10.0/integrations/woocommerce-rental-and-booking.php (added)
-
tags/2.10.0/integrations/woocommerce-square.php (added)
-
tags/2.10.0/integrations/woocommerce-tm-extra-product-options.php (added)
-
tags/2.10.0/integrations/woocommerce-waitlist.php (added)
-
tags/2.10.0/integrations/wp-fastest-cache.php (added)
-
tags/2.10.0/integrations/wp-grid-builder.php (added)
-
tags/2.10.0/integrations/wp-multilang.php (added)
-
tags/2.10.0/integrations/wp-rocket.php (added)
-
tags/2.10.0/integrations/wpc-variations-radio-buttons.php (added)
-
tags/2.10.0/integrations/yith-woocommerce-product-add-ons.php (added)
-
tags/2.10.0/integrations/yith-woocommerce-product-bundles.php (added)
-
tags/2.10.0/integrations/yith-woocommerce-quick-view.php (added)
-
tags/2.10.0/languages (added)
-
tags/2.10.0/languages/ti-woocommerce-wishlist.pot (added)
-
tags/2.10.0/public (added)
-
tags/2.10.0/public/addtowishlist.class.php (added)
-
tags/2.10.0/public/cart.class.php (added)
-
tags/2.10.0/public/index.php (added)
-
tags/2.10.0/public/tinvwl.class.php (added)
-
tags/2.10.0/public/widget (added)
-
tags/2.10.0/public/widget/index.php (added)
-
tags/2.10.0/public/widget/wishlistcounter.class.php (added)
-
tags/2.10.0/public/wishlist (added)
-
tags/2.10.0/public/wishlist/ajax.class.php (added)
-
tags/2.10.0/public/wishlist/buttons.class.php (added)
-
tags/2.10.0/public/wishlist/index.php (added)
-
tags/2.10.0/public/wishlist/social.class.php (added)
-
tags/2.10.0/public/wishlist/view.class.php (added)
-
tags/2.10.0/public/wishlistcounter.class.php (added)
-
tags/2.10.0/readme.txt (added)
-
tags/2.10.0/templates (added)
-
tags/2.10.0/templates/ti-addedtowishlist-dialogbox.php (added)
-
tags/2.10.0/templates/ti-addtowishlist.php (added)
-
tags/2.10.0/templates/ti-wishlist-empty.php (added)
-
tags/2.10.0/templates/ti-wishlist-header.php (added)
-
tags/2.10.0/templates/ti-wishlist-item-data.php (added)
-
tags/2.10.0/templates/ti-wishlist-null.php (added)
-
tags/2.10.0/templates/ti-wishlist-product-counter.php (added)
-
tags/2.10.0/templates/ti-wishlist-social.php (added)
-
tags/2.10.0/templates/ti-wishlist-user.php (added)
-
tags/2.10.0/templates/ti-wishlist.php (added)
-
tags/2.10.0/ti-woocommerce-wishlist.php (added)
-
tags/2.10.0/tinv-wishlists-function.php (added)
-
tags/2.10.0/vendor (added)
-
tags/2.10.0/vendor/autoload.php (added)
-
tags/2.10.0/vendor/composer (added)
-
tags/2.10.0/vendor/composer/ClassLoader.php (added)
-
tags/2.10.0/vendor/composer/InstalledVersions.php (added)
-
tags/2.10.0/vendor/composer/LICENSE (added)
-
tags/2.10.0/vendor/composer/autoload_classmap.php (added)
-
tags/2.10.0/vendor/composer/autoload_namespaces.php (added)
-
tags/2.10.0/vendor/composer/autoload_psr4.php (added)
-
tags/2.10.0/vendor/composer/autoload_real.php (added)
-
tags/2.10.0/vendor/composer/autoload_static.php (added)
-
tags/2.10.0/vendor/composer/installed.json (added)
-
tags/2.10.0/vendor/composer/installed.php (added)
-
tags/2.10.0/vendor/composer/platform_check.php (added)
-
tags/2.10.0/vendor/imangazaliev (added)
-
tags/2.10.0/vendor/imangazaliev/didom (added)
-
tags/2.10.0/vendor/imangazaliev/didom/CHANGELOG.md (added)
-
tags/2.10.0/vendor/imangazaliev/didom/LICENSE (added)
-
tags/2.10.0/vendor/imangazaliev/didom/README-RU.md (added)
-
tags/2.10.0/vendor/imangazaliev/didom/README.md (added)
-
tags/2.10.0/vendor/imangazaliev/didom/composer.json (added)
-
tags/2.10.0/vendor/imangazaliev/didom/composer.lock (added)
-
tags/2.10.0/vendor/imangazaliev/didom/src (added)
-
tags/2.10.0/vendor/imangazaliev/didom/src/DiDom (added)
-
tags/2.10.0/vendor/imangazaliev/didom/src/DiDom/ClassAttribute.php (added)
-
tags/2.10.0/vendor/imangazaliev/didom/src/DiDom/Document.php (added)
-
tags/2.10.0/vendor/imangazaliev/didom/src/DiDom/DocumentFragment.php (added)
-
tags/2.10.0/vendor/imangazaliev/didom/src/DiDom/Element.php (added)
-
tags/2.10.0/vendor/imangazaliev/didom/src/DiDom/Encoder.php (added)
-
tags/2.10.0/vendor/imangazaliev/didom/src/DiDom/Errors.php (added)
-
tags/2.10.0/vendor/imangazaliev/didom/src/DiDom/Exceptions (added)
-
tags/2.10.0/vendor/imangazaliev/didom/src/DiDom/Exceptions/InvalidSelectorException.php (added)
-
tags/2.10.0/vendor/imangazaliev/didom/src/DiDom/Node.php (added)
-
tags/2.10.0/vendor/imangazaliev/didom/src/DiDom/Query.php (added)
-
tags/2.10.0/vendor/imangazaliev/didom/src/DiDom/StyleAttribute.php (added)
-
tags/2.10.0/views (added)
-
tags/2.10.0/views/admin (added)
-
tags/2.10.0/views/admin/export-import-settings.php (added)
-
tags/2.10.0/views/admin/index.php (added)
-
tags/2.10.0/views/admin/premium-features.php (added)
-
tags/2.10.0/views/admin/templates-status.php (added)
-
tags/2.10.0/views/admin/wishlists.php (added)
-
tags/2.10.0/views/general.php (added)
-
tags/2.10.0/views/header.php (added)
-
tags/2.10.0/views/index.php (added)
-
tags/2.10.0/views/message.php (added)
-
tags/2.10.0/views/null.php (added)
-
tags/2.10.0/views/section-field-html.php (added)
-
tags/2.10.0/views/section-field-style.php (added)
-
tags/2.10.0/views/section-field.php (added)
-
tags/2.10.0/views/section-general.php (added)
-
tags/2.10.0/views/section-group-style-e.php (added)
-
tags/2.10.0/views/section-group-style.php (added)
-
tags/2.10.0/views/section-group.php (added)
-
tags/2.10.0/views/section-infoblock.php (added)
-
tags/2.10.0/views/wizard (added)
-
tags/2.10.0/views/wizard/finish.php (added)
-
tags/2.10.0/views/wizard/footer.php (added)
-
tags/2.10.0/views/wizard/header.php (added)
-
tags/2.10.0/views/wizard/index.php (added)
-
tags/2.10.0/views/wizard/intro.php (added)
-
tags/2.10.0/views/wizard/step-button.php (added)
-
tags/2.10.0/views/wizard/step-page-field.php (added)
-
tags/2.10.0/views/wizard/step-page.php (added)
-
tags/2.10.0/views/wizard/step-processing.php (added)
-
tags/2.10.0/views/wizard/step-social.php (added)
-
tags/2.10.0/views/wizard/step-support.php (added)
-
tags/2.10.0/wpm-config.json (added)
-
tags/2.10.0/wpml-config.xml (added)
-
trunk/assets/css/admin-form-rtl.min.css (modified) (1 diff)
-
trunk/assets/css/admin-form.min.css (modified) (1 diff)
-
trunk/assets/css/admin-rtl.min.css (modified) (1 diff)
-
trunk/assets/css/admin-setup-rtl.min.css (modified) (1 diff)
-
trunk/assets/css/admin-setup.min.css (modified) (1 diff)
-
trunk/assets/css/admin.min.css (modified) (1 diff)
-
trunk/assets/css/public-rtl.min.css (modified) (1 diff)
-
trunk/assets/css/public.min.css (modified) (1 diff)
-
trunk/assets/css/theme-rtl.min.css (modified) (1 diff)
-
trunk/assets/css/theme.min.css (modified) (1 diff)
-
trunk/assets/css/webfont-rtl.min.css (modified) (1 diff)
-
trunk/assets/css/webfont.min.css (modified) (1 diff)
-
trunk/assets/js/admin.min.js (modified) (1 diff)
-
trunk/assets/js/public.min.js (modified) (1 diff)
-
trunk/integrations/advanced-product-fields-for-woocommerce.php (modified) (3 diffs)
-
trunk/integrations/cleantalk-spam-protect.php (modified) (2 diffs)
-
trunk/integrations/duracelltomi-google-tag-manager.php (modified) (1 diff)
-
trunk/integrations/elex-woocommerce-catalog-mode.php (modified) (5 diffs)
-
trunk/integrations/honeypot.php (modified) (1 diff)
-
trunk/integrations/mycred.php (modified) (1 diff)
-
trunk/integrations/product-quantity-for-woocommerce.php (modified) (2 diffs)
-
trunk/integrations/pw-woocommerce-gift-cards.php (modified) (9 diffs)
-
trunk/integrations/uni-woo-custom-product-options.php (modified) (12 diffs)
-
trunk/integrations/wc-fields-factory.php (modified) (2 diffs)
-
trunk/integrations/woo-extra-product-options.php (modified) (1 diff)
-
trunk/integrations/woo-payment-gateway.php (modified) (1 diff)
-
trunk/integrations/woo-product-bundle.php (modified) (1 diff)
-
trunk/integrations/woocommerce-product-addon.php (modified) (12 diffs)
-
trunk/integrations/wp-fastest-cache.php (modified) (3 diffs)
-
trunk/integrations/wp-multilang.php (modified) (3 diffs)
-
trunk/integrations/wpc-variations-radio-buttons.php (modified) (5 diffs)
-
trunk/integrations/yith-woocommerce-product-bundles.php (modified) (1 diff)
-
trunk/integrations/yith-woocommerce-quick-view.php (modified) (5 diffs)
-
trunk/languages/ti-woocommerce-wishlist.pot (modified) (9 diffs)
-
trunk/public/cart.class.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (3 diffs)
-
trunk/ti-woocommerce-wishlist.php (modified) (2 diffs)
-
trunk/tinv-wishlists-function.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
ti-woocommerce-wishlist/trunk/assets/css/admin-form-rtl.min.css
r3199516 r3306868 1 1 /** 2 2 * TI WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free. 3 * @version 2. 9.23 * @version 2.10.0 4 4 * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/ 5 5 */ -
ti-woocommerce-wishlist/trunk/assets/css/admin-form.min.css
r3199516 r3306868 1 1 /** 2 2 * TI WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free. 3 * @version 2. 9.23 * @version 2.10.0 4 4 * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/ 5 5 */ -
ti-woocommerce-wishlist/trunk/assets/css/admin-rtl.min.css
r3199516 r3306868 1 1 /** 2 2 * TI WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free. 3 * @version 2. 9.23 * @version 2.10.0 4 4 * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/ 5 5 */ -
ti-woocommerce-wishlist/trunk/assets/css/admin-setup-rtl.min.css
r3199516 r3306868 1 1 /** 2 2 * TI WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free. 3 * @version 2. 9.23 * @version 2.10.0 4 4 * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/ 5 5 */ -
ti-woocommerce-wishlist/trunk/assets/css/admin-setup.min.css
r3199516 r3306868 1 1 /** 2 2 * TI WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free. 3 * @version 2. 9.23 * @version 2.10.0 4 4 * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/ 5 5 */ -
ti-woocommerce-wishlist/trunk/assets/css/admin.min.css
r3199516 r3306868 1 1 /** 2 2 * TI WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free. 3 * @version 2. 9.23 * @version 2.10.0 4 4 * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/ 5 5 */ -
ti-woocommerce-wishlist/trunk/assets/css/public-rtl.min.css
r3199516 r3306868 1 1 /** 2 2 * TI WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free. 3 * @version 2. 9.23 * @version 2.10.0 4 4 * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/ 5 5 */ -
ti-woocommerce-wishlist/trunk/assets/css/public.min.css
r3199516 r3306868 1 1 /** 2 2 * TI WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free. 3 * @version 2. 9.23 * @version 2.10.0 4 4 * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/ 5 5 */ -
ti-woocommerce-wishlist/trunk/assets/css/theme-rtl.min.css
r3199516 r3306868 1 1 /** 2 2 * TI WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free. 3 * @version 2. 9.23 * @version 2.10.0 4 4 * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/ 5 5 */ -
ti-woocommerce-wishlist/trunk/assets/css/theme.min.css
r3199516 r3306868 1 1 /** 2 2 * TI WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free. 3 * @version 2. 9.23 * @version 2.10.0 4 4 * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/ 5 5 */ -
ti-woocommerce-wishlist/trunk/assets/css/webfont-rtl.min.css
r3199516 r3306868 1 1 /** 2 2 * TI WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free. 3 * @version 2. 9.23 * @version 2.10.0 4 4 * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/ 5 5 */ -
ti-woocommerce-wishlist/trunk/assets/css/webfont.min.css
r3199516 r3306868 1 1 /** 2 2 * TI WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free. 3 * @version 2. 9.23 * @version 2.10.0 4 4 * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/ 5 5 */ -
ti-woocommerce-wishlist/trunk/assets/js/admin.min.js
r3199516 r3306868 1 1 /** 2 2 * TI WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free. 3 * @version 2. 9.23 * @version 2.10.0 4 4 * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/ 5 5 */ -
ti-woocommerce-wishlist/trunk/assets/js/public.min.js
r3199516 r3306868 1 1 /** 2 2 * TI WooCommerce Wishlist Plugin - Allow your store guests and customers to add products to Wishlist. Add Wishlist functionality to your store for free. 3 * @version 2. 9.23 * @version 2.10.0 4 4 * @link https://wordpress.org/plugins/ti-woocommerce-wishlist/ 5 5 */ -
ti-woocommerce-wishlist/trunk/integrations/advanced-product-fields-for-woocommerce.php
r3167298 r3306868 5 5 * @name Advanced Product Fields (Product Addons) for WooCommerce 6 6 * 7 * @version 1.6.1 7 * @version 1.6.13 8 8 * 9 9 * @slug advanced-product-fields-for-woocommerce … … 46 46 use SW_WAPF\Includes\Classes\Field_Groups; 47 47 use SW_WAPF\Includes\Classes\Fields; 48 use SW_WAPF\Includes\Classes\Helper;49 use SW_WAPF\Includes\Controllers\Product_Controller;50 48 use SW_WAPF\Includes\Models\Field; 49 50 if ( ! function_exists( 'tinv_wishlist_item_meta_hidden_fields_wapf' ) ) { 51 52 /** 53 * Filter hidden fields data 54 * 55 * @param array $hidden_fields Fields names array. 56 * 57 * @return array 58 */ 59 60 function tinv_wishlist_item_meta_hidden_fields_wapf( $hidden_fields ) { 61 if ( class_exists( 'SW_WAPF\WAPF' ) ) { 62 $hidden_fields = array_values( array_diff( $hidden_fields, [ 'wapf', 'wapf_field_groups' ] ) ); 63 } 64 65 return $hidden_fields; 66 } 67 68 add_filter( 'tinvwl_wishlist_item_meta_hidden_fields', 'tinv_wishlist_item_meta_hidden_fields_wapf', 10, 1 ); 69 } 70 51 71 52 72 if ( ! function_exists( 'tinv_wishlist_item_meta_wapf' ) ) { … … 236 256 } 237 257 if ( $wapf_data ) { 238 $wl_product['meta']['wapf'] = $wapf_data;258 $wl_product['meta']['wapf'] = array_merge( $wl_product['meta']['wapf'], $wapf_data ); 239 259 } 240 260 -
ti-woocommerce-wishlist/trunk/integrations/cleantalk-spam-protect.php
r3167298 r3306868 5 5 * @name Anti-Spam by CleanTalk 6 6 * 7 * @version 5.1737 * @version 6.56 8 8 * 9 9 * @slug cleantalk-spam-protect … … 57 57 58 58 foreach ( array_keys( $item_data ) as $key ) { 59 if ( strpos( $key, 'apbct_' ) === 0 ) {59 if ( strpos( $key, 'apbct_' ) === 0 || $key === "ct_bot_detector_event_token" ) { 60 60 unset( $item_data[ $key ] ); 61 61 } -
ti-woocommerce-wishlist/trunk/integrations/duracelltomi-google-tag-manager.php
r3167298 r3306868 5 5 * @name Google Tag Manager for WordPress 6 6 * 7 * @version 1. 107 * @version 1.21.1 8 8 * 9 9 * @slug duracelltomi-google-tag-manager -
ti-woocommerce-wishlist/trunk/integrations/elex-woocommerce-catalog-mode.php
r3167298 r3306868 5 5 * @name ELEX WooCommerce Catalog Mode 6 6 * 7 * @version 1. 0.67 * @version 1.5.0 8 8 * 9 9 * @slug elex-woocommerce-catalog-mode … … 14 14 15 15 // If this file is called directly, abort. 16 if ( !defined('ABSPATH')) {16 if ( ! defined( 'ABSPATH' ) ) { 17 17 exit; 18 18 } … … 25 25 $name = "ELEX WooCommerce Catalog Mode"; 26 26 27 $available = class_exists('Elex_CM_Price_Discount_Admin');27 $available = defined( 'ELEX_CATALOG_MODE_MAIN_URL_PATH' ); 28 28 29 29 $tinvwl_integrations = is_array( $tinvwl_integrations ) ? $tinvwl_integrations : []; 30 30 31 $tinvwl_integrations[ $slug] = array(32 'name' => $name,31 $tinvwl_integrations[ $slug ] = array( 32 'name' => $name, 33 33 'available' => $available, 34 34 ); 35 35 36 if ( !tinv_get_option('integrations', $slug)) {36 if ( ! tinv_get_option( 'integrations', $slug ) ) { 37 37 return; 38 38 } 39 39 40 if ( !$available) {40 if ( ! $available ) { 41 41 return; 42 42 } … … 46 46 * Run hooks on page redirect. 47 47 */ 48 function tinvwl_elex_init() 49 { 50 if (class_exists('Elex_CM_Price_Discount_Admin')) { 48 function tinvwl_elex_init() { 49 if ( defined( 'ELEX_CATALOG_MODE_MAIN_URL_PATH' ) ) { 51 50 52 51 global $post; 53 $product = wc_get_product($post->ID); 54 if (!empty($product)) { 55 56 if ('yes' == get_option('eh_pricing_discount_cart_catalog_mode') && 'yes' == get_option('elex_catalog_remove_addtocart_product')) { 57 if (!(get_option('eh_pricing_discount_price_catalog_mode_exclude_admin') == 'yes' && in_array('administrator', (array)wp_get_current_user()->roles))) { 58 add_action('woocommerce_single_product_summary', 'tinvwl_elex_single_product_summary', 40); 52 $product = wc_get_product( $post->ID ); 53 if ( ! empty( $product ) ) { 54 if ( 'yes' == get_option( 'eh_pricing_discount_cart_catalog_mode' ) && 'yes' == get_option( 'elex_catalog_remove_addtocart_product' ) ) { 55 if ( ! ( get_option( 'eh_pricing_discount_price_catalog_mode_exclude_admin' ) == 'yes' && in_array( 'administrator', (array) wp_get_current_user()->roles ) ) ) { 56 add_action( 'woocommerce_single_product_summary', 'tinvwl_elex_single_product_summary', 40 ); 59 57 } 60 } elseif ( ('yes' == get_post_meta($post->ID, 'product_adjustment_hide_addtocart_catalog', true)) && (('yes' == get_post_meta($post->ID, 'product_adjustment_hide_addtocart_catalog_product', true)) || ('' == get_post_meta($post->ID, 'product_adjustment_hide_addtocart_catalog_product', true)))) {61 if ( !(get_post_meta($post->ID, 'product_adjustment_exclude_admin_catalog', true) == 'yes' && in_array('administrator', (array)wp_get_current_user()->roles))) {62 add_action( 'woocommerce_single_product_summary', 'tinvwl_elex_single_product_summary', 40);58 } elseif ( ( 'yes' == get_post_meta( $post->ID, 'product_adjustment_hide_addtocart_catalog', true ) ) && ( ( 'yes' == get_post_meta( $post->ID, 'product_adjustment_hide_addtocart_catalog_product', true ) ) || ( '' == get_post_meta( $post->ID, 'product_adjustment_hide_addtocart_catalog_product', true ) ) ) ) { 59 if ( ! ( get_post_meta( $post->ID, 'product_adjustment_exclude_admin_catalog', true ) == 'yes' && in_array( 'administrator', (array) wp_get_current_user()->roles ) ) ) { 60 add_action( 'woocommerce_single_product_summary', 'tinvwl_elex_single_product_summary', 40 ); 63 61 } 64 62 } … … 67 65 } 68 66 69 add_action( 'template_redirect', 'tinvwl_elex_init');67 add_action( 'template_redirect', 'tinvwl_elex_init' ); 70 68 71 69 // Add a custom hook for single page. 72 function tinvwl_elex_single_product_summary() 73 { 74 add_filter('tinvwl_allow_addtowishlist_single_product_summary', '__return_true'); 75 do_action('tinvwl_single_product_summary'); 70 function tinvwl_elex_single_product_summary() { 71 add_filter( 'tinvwl_allow_addtowishlist_single_product_summary', '__return_true' ); 72 do_action( 'tinvwl_single_product_summary' ); 76 73 } -
ti-woocommerce-wishlist/trunk/integrations/honeypot.php
r3167298 r3306868 5 5 * @name WP Armour - Honeypot Anti Spam 6 6 * 7 * @version 2. 1.157 * @version 2.2.11 8 8 * 9 9 * @slug honeypot -
ti-woocommerce-wishlist/trunk/integrations/mycred.php
r3167298 r3306868 5 5 * @name myCRED 6 6 * 7 * @version 2. 57 * @version 2.9.4.3 8 8 * 9 9 * @slug mycred -
ti-woocommerce-wishlist/trunk/integrations/product-quantity-for-woocommerce.php
r3167298 r3306868 5 5 * @name All in One Product Quantity for WooCommerce 6 6 * 7 * @version 4.4.17 * @version 5.1.1 8 8 * 9 9 * @slug product-quantity-for-woocommerce … … 54 54 function tinv_wishlist_cart_quantity_alg_wc_pq( $qty, $wl_product ) { 55 55 56 $qty = alg_wc_pq()->core->get_product_qty_min_max( $wl_product['product_id'], 0, 'min', $wl_product['variation_id'] );56 $qty = alg_wc_pq()->core->get_product_qty_min_max( $wl_product['product_id'], alg_wc_pq()->core->get_product_qty_default( $wl_product['product_id']), 'min', $wl_product['variation_id'] ); 57 57 58 58 return $qty; -
ti-woocommerce-wishlist/trunk/integrations/pw-woocommerce-gift-cards.php
r3167298 r3306868 5 5 * @name PW WooCommerce Gift Cards 6 6 * 7 * @version 1.2987 * @version 2.14 8 8 * 9 9 * @slug pw-woocommerce-gift-cards … … 14 14 15 15 // If this file is called directly, abort. 16 if ( !defined('ABSPATH')) {16 if ( ! defined( 'ABSPATH' ) ) { 17 17 exit; 18 18 } … … 25 25 $name = "PW WooCommerce Gift Cards"; 26 26 27 $available = defined( 'PWGC_VERSION');27 $available = defined( 'PWGC_VERSION' ); 28 28 29 $tinvwl_integrations = is_array( $tinvwl_integrations) ? $tinvwl_integrations : [];29 $tinvwl_integrations = is_array( $tinvwl_integrations ) ? $tinvwl_integrations : []; 30 30 31 $tinvwl_integrations[ $slug] = array(32 'name' => $name,31 $tinvwl_integrations[ $slug ] = array( 32 'name' => $name, 33 33 'available' => $available, 34 34 ); 35 35 36 if ( !tinv_get_option('integrations', $slug)) {36 if ( ! tinv_get_option( 'integrations', $slug ) ) { 37 37 return; 38 38 } 39 39 40 if ( !$available) {40 if ( ! $available ) { 41 41 return; 42 42 } 43 43 44 if ( defined('PWGC_VERSION')) {44 if ( defined( 'PWGC_VERSION' ) ) { 45 45 46 if ( !function_exists('tinv_wishlist_item_meta_pw_woocommerce_gift_cards')) {46 if ( ! function_exists( 'tinv_wishlist_item_meta_pw_woocommerce_gift_cards' ) ) { 47 47 48 48 /** … … 55 55 * @return array 56 56 */ 57 function tinv_wishlist_item_meta_pw_woocommerce_gift_cards($item_data, $product_id, $variation_id) 58 { 57 function tinv_wishlist_item_meta_pw_woocommerce_gift_cards( $item_data, $product_id, $variation_id ) { 59 58 60 if ( defined('PWGC_VERSION')) {59 if ( defined( 'PWGC_VERSION' ) ) { 61 60 global $pw_gift_cards; 62 61 63 foreach ( $pw_gift_cards->gift_card_meta as $key => $display) {64 if ( isset($item_data[$key])) {65 $item_data[ $key]['key'] = $display;62 foreach ( $pw_gift_cards->gift_card_meta as $key => $display ) { 63 if ( isset( $item_data[ $key ] ) ) { 64 $item_data[ $key ]['key'] = $display; 66 65 } 67 66 } … … 72 71 } 73 72 74 add_filter( 'tinvwl_wishlist_item_meta_post', 'tinv_wishlist_item_meta_pw_woocommerce_gift_cards', 10, 3);73 add_filter( 'tinvwl_wishlist_item_meta_post', 'tinv_wishlist_item_meta_pw_woocommerce_gift_cards', 10, 3 ); 75 74 } // End if(). 76 75 77 if ( !function_exists('tinvwl_item_price_pw_woocommerce_gift_cards')) {76 if ( ! function_exists( 'tinvwl_item_price_pw_woocommerce_gift_cards' ) ) { 78 77 79 78 /** … … 86 85 * @return string 87 86 */ 88 function tinvwl_item_price_pw_woocommerce_gift_cards($price, $wl_product, $product) 89 { 87 function tinvwl_item_price_pw_woocommerce_gift_cards( $price, $wl_product, $product ) { 90 88 91 if ( defined('PWGC_VERSION')) {92 if ( $product->get_type() == PWGC_PRODUCT_TYPE_SLUG) {93 $id = ( $wl_product['variation_id']) ? $wl_product['variation_id'] : $wl_product['product_id'];94 $p = wc_get_product($id);89 if ( defined( 'PWGC_VERSION' ) ) { 90 if ( $product->get_type() == PWGC_PRODUCT_TYPE_SLUG ) { 91 $id = ( $wl_product['variation_id'] ) ? $wl_product['variation_id'] : $wl_product['product_id']; 92 $p = wc_get_product( $id ); 95 93 96 if ( $p) {94 if ( $p ) { 97 95 return $p->get_price_html(); 98 96 } … … 103 101 } 104 102 105 add_filter( 'tinvwl_wishlist_item_price', 'tinvwl_item_price_pw_woocommerce_gift_cards', 10, 3);103 add_filter( 'tinvwl_wishlist_item_price', 'tinvwl_item_price_pw_woocommerce_gift_cards', 10, 3 ); 106 104 } // End if(). 107 105 108 106 109 add_filter( 'tinvwl_addtowishlist_modify_type', 'tinvwl_addtowishlist_modify_type_pw_woocommerce_gift_cards', 10, 2);107 add_filter( 'tinvwl_addtowishlist_modify_type', 'tinvwl_addtowishlist_modify_type_pw_woocommerce_gift_cards', 10, 2 ); 110 108 111 function tinvwl_addtowishlist_modify_type_pw_woocommerce_gift_cards($type, $post) 112 { 113 if (defined('PWGC_VERSION')) { 114 if ($type == PWGC_PRODUCT_TYPE_SLUG) { 109 function tinvwl_addtowishlist_modify_type_pw_woocommerce_gift_cards( $type, $post ) { 110 if ( defined( 'PWGC_VERSION' ) ) { 111 if ( $type == PWGC_PRODUCT_TYPE_SLUG ) { 115 112 return 'variable'; 116 113 } … … 121 118 122 119 123 function tinv_add_to_wishlist_pw_woocommerce_gift_cards() 124 { 125 wp_add_inline_script('tinvwl', " 120 function tinv_add_to_wishlist_pw_woocommerce_gift_cards() { 121 wp_add_inline_script( 'tinvwl', " 126 122 jQuery('body').on('tinvwl_add_to_wishlist_button_click', function(e, el){ 127 123 if ('pw-gift-card' === jQuery(el).data('tinv-wl-producttype')){ … … 135 131 } 136 132 }); 137 " );133 " ); 138 134 } 139 135 140 add_action( 'wp_enqueue_scripts', 'tinv_add_to_wishlist_pw_woocommerce_gift_cards', 100, 1);136 add_action( 'wp_enqueue_scripts', 'tinv_add_to_wishlist_pw_woocommerce_gift_cards', 100, 1 ); 141 137 } -
ti-woocommerce-wishlist/trunk/integrations/uni-woo-custom-product-options.php
r3167298 r3306868 5 5 * @name Product Options and Price Calculation Formulas for WooCommerce – Uni CPO 6 6 * 7 * @version 4.9. 9.17 * @version 4.9.47 8 8 * 9 9 * @slug uni-woo-custom-product-options … … 14 14 15 15 // If this file is called directly, abort. 16 if ( !defined('ABSPATH')) {16 if ( ! defined( 'ABSPATH' ) ) { 17 17 exit; 18 18 } … … 25 25 $name = "Product Options and Price Calculation Formulas for WooCommerce – Uni CPO"; 26 26 27 $available = class_exists( 'Uni_Cpo');28 29 $tinvwl_integrations = is_array( $tinvwl_integrations) ? $tinvwl_integrations : [];30 31 $tinvwl_integrations[ $slug] = array(32 'name' => $name,27 $available = class_exists( 'Uni_Cpo' ); 28 29 $tinvwl_integrations = is_array( $tinvwl_integrations ) ? $tinvwl_integrations : []; 30 31 $tinvwl_integrations[ $slug ] = array( 32 'name' => $name, 33 33 'available' => $available, 34 34 ); 35 35 36 if ( !tinv_get_option('integrations', $slug)) {36 if ( ! tinv_get_option( 'integrations', $slug ) ) { 37 37 return; 38 38 } 39 39 40 if ( !$available) {40 if ( ! $available ) { 41 41 return; 42 42 } 43 43 44 if ( !function_exists('tinv_wishlist_item_meta_uni_woo_custom_product_options')) {44 if ( ! function_exists( 'tinv_wishlist_item_meta_uni_woo_custom_product_options' ) ) { 45 45 46 46 /** … … 54 54 */ 55 55 56 function tinv_wishlist_item_meta_uni_woo_custom_product_options($item_data, $product_id, $variation_id) 57 { 58 59 if (class_exists('Uni_Cpo')) { 60 foreach (array_keys($item_data) as $key) { 61 if (strpos($key, 'cpo_') === 0) { 62 unset($item_data[$key]); 56 function tinv_wishlist_item_meta_uni_woo_custom_product_options( $item_data, $product_id, $variation_id ) { 57 58 if ( class_exists( 'Uni_Cpo' ) ) { 59 foreach ( array_keys( $item_data ) as $key ) { 60 if ( strpos( $key, 'cpo_' ) === 0 ) { 61 unset( $item_data[ $key ] ); 63 62 } 64 63 } 65 64 66 if ( !empty($item_data)) {65 if ( ! empty( $item_data ) ) { 67 66 $options_eval_result = []; 68 $form_data = array();69 $formatted_vars = array();70 $variables = array();71 $product_data = Uni_Cpo_Product::get_product_data_by_id($product_id);72 foreach ( $item_data as $key => $value) {73 $form_data[ $key] = $value['display'];67 $form_data = array(); 68 $formatted_vars = array(); 69 $variables = array(); 70 $product_data = Uni_Cpo_Product::get_product_data_by_id( $product_id ); 71 foreach ( $item_data as $key => $value ) { 72 $form_data[ $key ] = $value['display']; 74 73 } 75 74 76 75 array_walk( 77 76 $options_eval_result, 78 function ( $v) use (&$variables, &$formatted_vars, &$nice_names_vars) {79 foreach ( $v as $slug => $value) {77 function ( $v ) use ( &$variables, &$formatted_vars, &$nice_names_vars ) { 78 foreach ( $v as $slug => $value ) { 80 79 // prepare $variables for calculation purpose 81 $variables[ '{' . $slug . '}'] = $value['calc'];80 $variables[ '{' . $slug . '}' ] = $value['calc']; 82 81 // prepare $formatted_vars for conditional logic purpose 83 $formatted_vars[ $slug] = $value['cart_meta'];82 $formatted_vars[ $slug ] = $value['cart_meta']; 84 83 } 85 84 } … … 87 86 88 87 // non option variables 89 if ( 'on' === $product_data['nov_data']['nov_enable']90 && !empty($product_data['nov_data']['nov'])88 if ( 'on' === $product_data['nov_data']['nov_enable'] 89 && ! empty( $product_data['nov_data']['nov'] ) 91 90 ) { 92 $variables = uni_cpo_process_formula_with_non_option_vars( $variables, $product_data, $formatted_vars);93 } 94 95 $filtered_form_data = array_filter( $form_data, function ($k) use ($form_data) {96 return false !== strpos( $k, UniCpo()->get_var_slug()) && !empty($form_data[$k]);97 }, ARRAY_FILTER_USE_KEY );98 99 if ( !empty($filtered_form_data)) {100 $posts = uni_cpo_get_posts_by_slugs( array_keys($filtered_form_data));101 102 if ( !empty($posts)) {103 $posts_ids = wp_list_pluck( $posts, 'ID');104 foreach ( $posts_ids as $post_id) {105 $option = uni_cpo_get_option( $post_id);106 if ( is_object($option)) {107 $calculate_result = $option->calculate( $filtered_form_data);108 109 if ( is_array($calculate_result) && isset($calculate_result[$option->get_slug()])) {110 if ( is_array($calculate_result[$option->get_slug()]['order_meta'])) {111 $calculate_result[ $option->get_slug()]['order_meta'] = array_map(function ($item) {112 if ( !is_numeric($item)) {113 return esc_html__( $item);91 $variables = uni_cpo_process_formula_with_non_option_vars( $variables, $product_data, $formatted_vars ); 92 } 93 94 $filtered_form_data = array_filter( $form_data, function ( $k ) use ( $form_data ) { 95 return false !== strpos( $k, UniCpo()->get_var_slug() ) && ! empty( $form_data[ $k ] ); 96 }, ARRAY_FILTER_USE_KEY ); 97 98 if ( ! empty( $filtered_form_data ) ) { 99 $posts = uni_cpo_get_posts_by_slugs( array_keys( $filtered_form_data ) ); 100 101 if ( ! empty( $posts ) ) { 102 $posts_ids = wp_list_pluck( $posts, 'ID' ); 103 foreach ( $posts_ids as $post_id ) { 104 $option = uni_cpo_get_option( $post_id ); 105 if ( is_object( $option ) ) { 106 $calculate_result = $option->calculate( $filtered_form_data ); 107 108 if ( is_array( $calculate_result ) && isset( $calculate_result[ $option->get_slug() ] ) ) { 109 if ( is_array( $calculate_result[ $option->get_slug() ]['order_meta'] ) ) { 110 $calculate_result[ $option->get_slug() ]['order_meta'] = array_map( function ( $item ) { 111 if ( ! is_numeric( $item ) ) { 112 return esc_html__( $item ); 114 113 } else { 115 114 return $item; 116 115 } 117 }, $calculate_result[ $option->get_slug()]['order_meta']);118 $display_value = implode(', ', $calculate_result[$option->get_slug()]['order_meta']);116 }, $calculate_result[ $option->get_slug() ]['order_meta'] ); 117 $display_value = implode( ', ', $calculate_result[ $option->get_slug() ]['order_meta'] ); 119 118 } else { 120 if ( !is_numeric($calculate_result[$option->get_slug()]['order_meta'])) {121 $display_value = esc_html__( $calculate_result[$option->get_slug()]['order_meta']);119 if ( ! is_numeric( $calculate_result[ $option->get_slug() ]['order_meta'] ) ) { 120 $display_value = esc_html__( $calculate_result[ $option->get_slug() ]['order_meta'] ); 122 121 } else { 123 $display_value = $calculate_result[ $option->get_slug()]['order_meta'];122 $display_value = $calculate_result[ $option->get_slug() ]['order_meta']; 124 123 } 125 124 } 126 $display_key = uni_cpo_sanitize_label($option->cpo_order_label());125 $display_key = uni_cpo_sanitize_label( $option->cpo_order_label() ); 127 126 $display_value = uni_cpo_replace_curly( 128 127 $display_value, … … 131 130 $variables 132 131 ); 133 $display_value = uni_cpo_get_proper_option_label_cart( $display_value);134 $display_key = uni_cpo_replace_curly(132 $display_value = uni_cpo_get_proper_option_label_cart( $display_value ); 133 $display_key = uni_cpo_replace_curly( 135 134 $display_key, 136 135 $formatted_vars, … … 138 137 $variables 139 138 ); 140 $display_key = trim($display_key, ' ');141 $display_key = uni_cpo_get_proper_option_label_cart($display_key);142 143 $item_data[ $option->get_slug()]['display'] = $display_value;139 $display_key = trim( $display_key, ' ' ); 140 $display_key = uni_cpo_get_proper_option_label_cart( $display_key ); 141 142 $item_data[ $option->get_slug() ]['display'] = $display_value; 144 143 } 145 $item_data[ $option->get_slug()]['key'] = $display_key;144 $item_data[ $option->get_slug() ]['key'] = $display_key; 146 145 } 147 146 } … … 157 156 } 158 157 159 add_filter( 'tinvwl_wishlist_item_meta_post', 'tinv_wishlist_item_meta_uni_woo_custom_product_options', 10, 3);160 } 161 162 if ( !function_exists('tinvwl_item_price_uni_woo_custom_product_options')) {158 add_filter( 'tinvwl_wishlist_item_meta_post', 'tinv_wishlist_item_meta_uni_woo_custom_product_options', 10, 3 ); 159 } 160 161 if ( ! function_exists( 'tinvwl_item_price_uni_woo_custom_product_options' ) ) { 163 162 164 163 /** … … 171 170 * @return string 172 171 */ 173 function tinvwl_item_price_uni_woo_custom_product_options($price, $wl_product, $product) 174 { 175 176 if (class_exists('Uni_Cpo')) { 177 $product_data = Uni_Cpo_Product::get_product_data_by_id($product->get_id()); 178 179 if ('on' === $product_data['settings_data']['calc_enable']) { 180 $form_data = $wl_product['meta']; 172 function tinvwl_item_price_uni_woo_custom_product_options( $price, $wl_product, $product ) { 173 174 if ( class_exists( 'Uni_Cpo' ) ) { 175 $product_data = Uni_Cpo_Product::get_product_data_by_id( $product->get_id() ); 176 177 if ( 'on' === $product_data['settings_data']['calc_enable'] ) { 178 $form_data = $wl_product['meta']; 181 179 $options_eval_result = array(); 182 $variables = array();183 $is_calc_disabled = false;184 $formatted_vars = array();185 186 $main_formula = $product_data['formula_data']['main_formula'];187 $filtered_form_data = array_filter( $form_data, function ($k) use ($form_data) {188 return false !== strpos( $k, UniCpo()->get_var_slug()) && !empty($form_data[$k]);189 }, ARRAY_FILTER_USE_KEY );190 191 192 if ( !empty($filtered_form_data)) {193 $posts = uni_cpo_get_posts_by_slugs( array_keys($filtered_form_data));194 195 if ( !empty($posts)) {196 $posts_ids = wp_list_pluck( $posts, 'ID');197 foreach ( $posts_ids as $post_id) {198 $option = uni_cpo_get_option( $post_id);199 200 if ( is_object($option)) {201 $calculate_result = $option->calculate( $filtered_form_data);202 if ( !empty($calculate_result)) {203 $options_eval_result[ $option->get_slug()] = $calculate_result;180 $variables = array(); 181 $is_calc_disabled = false; 182 $formatted_vars = array(); 183 184 $main_formula = $product_data['formula_data']['main_formula']; 185 $filtered_form_data = array_filter( $form_data, function ( $k ) use ( $form_data ) { 186 return false !== strpos( $k, UniCpo()->get_var_slug() ) && ! empty( $form_data[ $k ] ); 187 }, ARRAY_FILTER_USE_KEY ); 188 189 190 if ( ! empty( $filtered_form_data ) ) { 191 $posts = uni_cpo_get_posts_by_slugs( array_keys( $filtered_form_data ) ); 192 193 if ( ! empty( $posts ) ) { 194 $posts_ids = wp_list_pluck( $posts, 'ID' ); 195 foreach ( $posts_ids as $post_id ) { 196 $option = uni_cpo_get_option( $post_id ); 197 198 if ( is_object( $option ) ) { 199 $calculate_result = $option->calculate( $filtered_form_data ); 200 if ( ! empty( $calculate_result ) ) { 201 $options_eval_result[ $option->get_slug() ] = $calculate_result; 204 202 } 205 203 } … … 210 208 } 211 209 212 array_walk( $options_eval_result, function ($v) use (&$variables, &$formatted_vars) {213 foreach ( $v as $slug => $value) {210 array_walk( $options_eval_result, function ( $v ) use ( &$variables, &$formatted_vars ) { 211 foreach ( $v as $slug => $value ) { 214 212 // prepare $variables for calculation purpose 215 $variables[ '{' . $slug . '}'] = $value['calc'];213 $variables[ '{' . $slug . '}' ] = $value['calc']; 216 214 // prepare $formatted_vars for conditional logic purpose 217 $formatted_vars[ $slug] = $value['cart_meta'];218 } 219 } );220 $variables['{uni_cpo_price}'] = $product->get_price( 'edit');215 $formatted_vars[ $slug ] = $value['cart_meta']; 216 } 217 } ); 218 $variables['{uni_cpo_price}'] = $product->get_price( 'edit' ); 221 219 // non option variables 222 if ( 'on' === $product_data['nov_data']['nov_enable'] && !empty($product_data['nov_data']['nov'])) {223 $variables = uni_cpo_process_formula_with_non_option_vars( $variables, $product_data, $formatted_vars);220 if ( 'on' === $product_data['nov_data']['nov_enable'] && ! empty( $product_data['nov_data']['nov'] ) ) { 221 $variables = uni_cpo_process_formula_with_non_option_vars( $variables, $product_data, $formatted_vars ); 224 222 } 225 223 // formula conditional logic 226 224 227 if ( 'on' === $product_data['formula_data']['rules_enable'] && !empty($product_data['formula_data']['formula_scheme']) && is_array($product_data['formula_data']['formula_scheme'])) {228 $conditional_formula = uni_cpo_process_formula_scheme( $formatted_vars, $product_data);229 if ( $conditional_formula) {225 if ( 'on' === $product_data['formula_data']['rules_enable'] && ! empty( $product_data['formula_data']['formula_scheme'] ) && is_array( $product_data['formula_data']['formula_scheme'] ) ) { 226 $conditional_formula = uni_cpo_process_formula_scheme( $formatted_vars, $product_data ); 227 if ( $conditional_formula ) { 230 228 $main_formula = $conditional_formula; 231 229 } 232 230 } 233 231 234 if ( 'disable' === $main_formula) {232 if ( 'disable' === $main_formula ) { 235 233 $is_calc_disabled = true; 236 234 } 237 235 // 238 236 239 if ( !$is_calc_disabled) {240 $main_formula = uni_cpo_process_formula_with_vars( $main_formula, $variables);237 if ( ! $is_calc_disabled ) { 238 $main_formula = uni_cpo_process_formula_with_vars( $main_formula, $variables ); 241 239 // calculates formula 242 $price_calculated = uni_cpo_calculate_formula( $main_formula);243 $price_min = $product_data['settings_data']['min_price'];244 $price_max = $product_data['settings_data']['max_price'];240 $price_calculated = uni_cpo_calculate_formula( $main_formula ); 241 $price_min = $product_data['settings_data']['min_price']; 242 $price_max = $product_data['settings_data']['max_price']; 245 243 // check for min price 246 if ( $price_calculated < $price_min) {244 if ( $price_calculated < $price_min ) { 247 245 $price_calculated = $price_min; 248 246 } 249 247 // check for max price 250 if ( !empty($price_max) && $price_calculated >= $price_max) {248 if ( ! empty( $price_max ) && $price_calculated >= $price_max ) { 251 249 $is_calc_disabled = true; 252 250 } 253 251 254 if ( true !== $is_calc_disabled) {252 if ( true !== $is_calc_disabled ) { 255 253 // filter, so 3rd party scripts can hook up 256 254 $price_calculated = apply_filters( … … 261 259 ); 262 260 263 return wc_price( $price_calculated);261 return wc_price( $price_calculated ); 264 262 } else { 265 return wc_price( $price_max);263 return wc_price( $price_max ); 266 264 } 267 265 268 266 } else { 269 return wc_price( 0);267 return wc_price( 0 ); 270 268 } 271 269 } … … 276 274 } 277 275 278 add_filter( 'tinvwl_wishlist_item_price', 'tinvwl_item_price_uni_woo_custom_product_options', 10, 3);276 add_filter( 'tinvwl_wishlist_item_price', 'tinvwl_item_price_uni_woo_custom_product_options', 10, 3 ); 279 277 } // End if(). -
ti-woocommerce-wishlist/trunk/integrations/wc-fields-factory.php
r3167298 r3306868 5 5 * @name WC Fields Factory 6 6 * 7 * @version 4.1. 57 * @version 4.1.8 8 8 * 9 9 * @slug wc-fields-factory … … 380 380 [ 381 381 'test_form' => false, 382 'test_type' => false,383 382 ] 384 383 ); -
ti-woocommerce-wishlist/trunk/integrations/woo-extra-product-options.php
r3167298 r3306868 5 5 * @name Extra product options For WooCommerce | Custom Product Addons and Fields 6 6 * 7 * @version 3. 1.97 * @version 3.3.2 8 8 * 9 9 * @slug woo-extra-product-options -
ti-woocommerce-wishlist/trunk/integrations/woo-payment-gateway.php
r3167298 r3306868 5 5 * @name Braintree For WooCommerce 6 6 * 7 * @version 3. 1.87 * @version 3.2.70 8 8 * 9 9 * @slug woo-payment-gateway -
ti-woocommerce-wishlist/trunk/integrations/woo-product-bundle.php
r3167298 r3306868 5 5 * @name WPC Product Bundles for WooCommerce 6 6 * 7 * @version 7.3.37 * @version 8.2.8 8 8 * 9 9 * @slug woo-product-bundle -
ti-woocommerce-wishlist/trunk/integrations/woocommerce-product-addon.php
r3167298 r3306868 5 5 * @name PPOM for WooCommerce 6 6 * 7 * @version 21.27 * @version 33.0.12 8 8 * 9 9 * @slug woocommerce-product-addon … … 14 14 15 15 // If this file is called directly, abort. 16 if ( !defined('ABSPATH')) {16 if ( ! defined( 'ABSPATH' ) ) { 17 17 exit; 18 18 } … … 25 25 $name = "PPOM for WooCommerce"; 26 26 27 $available = defined( 'PPOM_VERSION');27 $available = defined( 'PPOM_VERSION' ); 28 28 29 29 $tinvwl_integrations = is_array( $tinvwl_integrations ) ? $tinvwl_integrations : []; 30 30 31 $tinvwl_integrations[ $slug] = array(32 'name' => $name,31 $tinvwl_integrations[ $slug ] = array( 32 'name' => $name, 33 33 'available' => $available, 34 34 ); 35 35 36 if ( !tinv_get_option('integrations', $slug)) {36 if ( ! tinv_get_option( 'integrations', $slug ) ) { 37 37 return; 38 38 } 39 39 40 if ( !$available) {40 if ( ! $available ) { 41 41 return; 42 42 } 43 43 44 if (!function_exists('tinv_wishlist_metasupport_woocommerce_product_add_on')) { 45 46 /** 47 * Set description for meta WooCommerce Product Add-on 48 * 49 * @param array $meta Meta array. 50 * @param integer $product_id Product ID. 51 * 52 * @return array 53 */ 54 function tinv_wishlist_metasupport_woocommerce_product_add_on($meta, $product_id) 55 { 56 if (isset($meta['ppom'])) { 57 $meta = array(); 58 } 59 60 return $meta; 61 } 62 63 add_filter('tinvwl_wishlist_item_meta_post', 'tinv_wishlist_metasupport_woocommerce_product_add_on', 10, 2); 64 } // End if(). 65 66 if (!function_exists('tinv_wishlist_item_meta_woocommerce_product_add_on')) { 44 45 if ( ! function_exists( 'tinv_wishlist_item_meta_woocommerce_product_add_on' ) ) { 67 46 68 47 /** … … 75 54 * @return array 76 55 */ 77 function tinv_wishlist_item_meta_woocommerce_product_add_on($meta, $wl_product, $product) 78 { 79 if (isset($wl_product['meta']) && isset($wl_product['meta']['ppom']) && class_exists('NM_PersonalizedProduct')) { 80 81 $ppom = json_decode($wl_product['meta']['ppom']); 56 function tinv_wishlist_item_meta_woocommerce_product_add_on( $meta, $wl_product, $product ) { 57 if ( isset( $wl_product['meta'] ) && isset( $wl_product['meta']['ppom'] ) && class_exists( 'NM_PersonalizedProduct' ) ) { 58 59 $ppom = json_decode( $wl_product['meta']['ppom'] ); 82 60 $product_meta = $ppom->fields ? $ppom->fields : ''; 83 61 84 62 $item_meta = array(); 85 63 86 if ( $product_meta) {87 88 foreach ( $product_meta as $key => $value) {89 90 if ( empty($value)) {64 if ( $product_meta ) { 65 66 foreach ( $product_meta as $key => $value ) { 67 68 if ( empty( $value ) ) { 91 69 continue; 92 70 } 93 71 94 72 $product_id = $wl_product['product_id']; 95 $field_meta = ppom_get_field_meta_by_dataname( $product_id, $key);96 97 if ( empty($field_meta)) {73 $field_meta = ppom_get_field_meta_by_dataname( $product_id, $key ); 74 75 if ( empty( $field_meta ) ) { 98 76 continue; 99 77 } 100 78 101 $field_type = $field_meta['type'];79 $field_type = $field_meta['type']; 102 80 $field_title = $field_meta['title']; 103 81 104 82 105 switch ( $field_type) {83 switch ( $field_type ) { 106 84 case 'quantities': 107 85 $total_qty = 0; 108 foreach ( $value as $label => $qty) {109 if ( !empty($qty)) {86 foreach ( $value as $label => $qty ) { 87 if ( ! empty( $qty ) ) { 110 88 $item_meta[] = array( 111 'key' => $label,89 'key' => $label, 112 90 'display' => $qty, 113 91 ); 114 $total_qty += $qty;92 $total_qty += $qty; 115 93 } 116 94 } … … 119 97 case 'file': 120 98 $file_thumbs_html = ''; 121 foreach ( $value as $file_id => $file_uploaded) {122 $file_name = $file_uploaded['org'];123 $file_thumbs_html .= ppom_show_file_thumb( $file_name);124 } 125 $item_meta[] = array( 126 'key' => $field_title,99 foreach ( $value as $file_id => $file_uploaded ) { 100 $file_name = $file_uploaded['org']; 101 $file_thumbs_html .= ppom_show_file_thumb( $file_name ); 102 } 103 $item_meta[] = array( 104 'key' => $field_title, 127 105 'display' => $file_thumbs_html, 128 106 ); … … 132 110 case 'cropper': 133 111 $file_thumbs_html = ''; 134 foreach ( $value as $file_id => $file_cropped) {135 136 $file_name = $file_cropped['org'];137 $file_thumbs_html .= ppom_show_file_thumb( $file_name, true);138 } 139 $item_meta[] = array( 140 'key' => $field_title,112 foreach ( $value as $file_id => $file_cropped ) { 113 114 $file_name = $file_cropped['org']; 115 $file_thumbs_html .= ppom_show_file_thumb( $file_name, true ); 116 } 117 $item_meta[] = array( 118 'key' => $field_title, 141 119 'display' => $file_thumbs_html, 142 120 ); … … 144 122 145 123 case 'image': 146 if ( $value) {147 foreach ( $value as $id => $images_meta) {148 $images_meta = json_decode( stripslashes($images_meta), true);149 $image_url = stripslashes($images_meta['link']);150 $image_html = '<img class="img-thumbnail" style="width:' . esc_attr(ppom_get_thumbs_size()) . '" src="' . esc_url($image_url) . '" title="' . esc_attr($images_meta['title']) . '">';151 $meta_key = $field_title . '(' . $images_meta['title'] . ')';124 if ( $value ) { 125 foreach ( $value as $id => $images_meta ) { 126 $images_meta = json_decode( stripslashes( $images_meta ), true ); 127 $image_url = stripslashes( $images_meta['link'] ); 128 $image_html = '<img class="img-thumbnail" style="width:' . esc_attr( ppom_get_thumbs_size() ) . '" src="' . esc_url( $image_url ) . '" title="' . esc_attr( $images_meta['title'] ) . '">'; 129 $meta_key = $field_title . '(' . $images_meta['title'] . ')'; 152 130 $item_meta[] = array( 153 'key' => $meta_key,131 'key' => $meta_key, 154 132 'display' => $image_html, 155 133 ); … … 159 137 160 138 case 'audio': 161 if ( $value) {139 if ( $value ) { 162 140 $ppom_file_count = 1; 163 foreach ( $value as $id => $audio_meta) {164 $audio_meta = json_decode(stripslashes($audio_meta), true);165 $audio_url = stripslashes($audio_meta['link']);166 $audio_html = '<a href="' . esc_url($audio_url) . '" title="' . esc_attr($audio_meta['title']) . '">' . $audio_meta['title'] . '</a>';167 $meta_key = $field_title . ': ' . $ppom_file_count++;141 foreach ( $value as $id => $audio_meta ) { 142 $audio_meta = json_decode( stripslashes( $audio_meta ), true ); 143 $audio_url = stripslashes( $audio_meta['link'] ); 144 $audio_html = '<a href="' . esc_url( $audio_url ) . '" title="' . esc_attr( $audio_meta['title'] ) . '">' . $audio_meta['title'] . '</a>'; 145 $meta_key = $field_title . ': ' . $ppom_file_count ++; 168 146 $item_meta[] = array( 169 'key' => $meta_key,147 'key' => $meta_key, 170 148 'display' => $audio_html, 171 149 ); … … 176 154 case 'bulkquantity': 177 155 $item_meta[] = array( 178 'key' => $key,156 'key' => $key, 179 157 'display' => $value['option'] . ' (' . $value['qty'] . ')', 180 158 ); … … 182 160 183 161 default: 184 $value = is_object($value) ? implode(",", (array)$value) : $value;185 $item_meta[] = array( 186 'key' => $field_title,187 'display' => stripcslashes( $value),162 $value = is_object( $value ) ? implode( ",", (array) $value ) : $value; 163 $item_meta[] = array( 164 'key' => $field_title, 165 'display' => stripcslashes( $value ), 188 166 ); 189 167 break; … … 193 171 } // End if(). 194 172 195 if ( 0 < count($item_meta)) {173 if ( 0 < count( $item_meta ) ) { 196 174 ob_start(); 197 tinv_wishlist_template( 'ti-wishlist-item-data.php', array('item_data' => $item_meta));175 tinv_wishlist_template( 'ti-wishlist-item-data.php', array( 'item_data' => $item_meta ) ); 198 176 $meta .= ob_get_clean(); 199 177 } … … 203 181 } 204 182 205 add_filter( 'tinvwl_wishlist_item_meta_data', 'tinv_wishlist_item_meta_woocommerce_product_add_on', 10, 3);183 add_filter( 'tinvwl_wishlist_item_meta_data', 'tinv_wishlist_item_meta_woocommerce_product_add_on', 10, 3 ); 206 184 } // End if(). 185 186 function tinvwl_add_to_cart_meta_woocommerce_product_add_on( $wl_product ) { 187 188 if ( isset( $wl_product['action'] ) && 'add' === $wl_product['action'] && isset( $wl_product['meta']['ppom'] ) ) { 189 190 $decoded = json_decode( $wl_product['meta']['ppom'], true ); 191 192 if ( JSON_ERROR_NONE === json_last_error() && is_array( $decoded ) ) { 193 $wl_product['meta']['ppom'] = $decoded; 194 } 195 } 196 197 return $wl_product; 198 } 199 200 add_filter( 'tinvwl_addproduct_tocart', 'tinvwl_add_to_cart_meta_woocommerce_product_add_on' ); 201 202 if ( ! function_exists( 'tinvwl_item_price_woocommerce_product_add_on' ) ) { 203 204 /** 205 * Modify price for PPOM for WooCommerce 206 * 207 * @param string $price Returned price. 208 * @param array $wl_product Wishlist Product. 209 * @param \WC_Product $product Woocommerce Product. 210 * 211 * @return string 212 */ 213 function tinvwl_item_price_woocommerce_product_add_on( $price, $wl_product, $product ) { 214 215 if ( defined( 'PPOM_VERSION' ) ) { 216 217 if ( isset( $wl_product['meta'] ) && isset( $wl_product['meta']['ppom'] ) ) { 218 $decoded = json_decode( $wl_product['meta']['ppom'], true ); 219 220 if ( JSON_ERROR_NONE === json_last_error() && is_array( $decoded ) && isset( $decoded['ppom_option_price'] ) ) { 221 $option_price = json_decode( $decoded['ppom_option_price'], true ); 222 223 if ( JSON_ERROR_NONE === json_last_error() && is_array( $option_price ) && ! empty( $option_price ) ) { 224 225 $options_total = 0; 226 227 foreach ( $option_price as $option ) { 228 229 $options_total = $options_total + $option['price']; 230 } 231 232 233 if ( $options_total > 0 ) { 234 $price = wc_price( floatval( $product->get_price() ) + floatval( $options_total ) ); 235 } 236 237 } 238 } 239 240 return $price; 241 } 242 } 243 244 245 return $price; 246 } 247 248 add_filter( 'tinvwl_wishlist_item_price', 'tinvwl_item_price_woocommerce_product_add_on', 10, 3 ); 249 } // End if(). -
ti-woocommerce-wishlist/trunk/integrations/wp-fastest-cache.php
r3167298 r3306868 5 5 * @name WP Fastest Cache 6 6 * 7 * @version 0.9.1.07 * @version 1.3.7 8 8 * 9 9 * @slug wp-fastest-cache … … 14 14 15 15 // If this file is called directly, abort. 16 if ( !defined('ABSPATH')) {16 if ( ! defined( 'ABSPATH' ) ) { 17 17 exit; 18 18 } … … 25 25 $name = "WP Fastest Cache"; 26 26 27 $available = defined( 'WPFC_WP_PLUGIN_DIR');27 $available = defined( 'WPFC_WP_PLUGIN_DIR' ); 28 28 29 29 $tinvwl_integrations = is_array( $tinvwl_integrations ) ? $tinvwl_integrations : []; 30 30 31 $tinvwl_integrations[ $slug] = array(32 'name' => $name,31 $tinvwl_integrations[ $slug ] = array( 32 'name' => $name, 33 33 'available' => $available, 34 34 ); 35 35 36 if ( !tinv_get_option('integrations', $slug)) {36 if ( ! tinv_get_option( 'integrations', $slug ) ) { 37 37 return; 38 38 } 39 39 40 if ( !$available) {40 if ( ! $available ) { 41 41 return; 42 42 } 43 43 44 if ( !function_exists('tinvwl_wp_fastest_cache_reject')) {44 if ( ! function_exists( 'tinvwl_wp_fastest_cache_reject' ) ) { 45 45 /** 46 46 * Disable cache for WP Fastest Cache 47 47 */ 48 function tinvwl_wp_fastest_cache_reject() 49 { 50 if (defined('WPFC_WP_PLUGIN_DIR')) { 51 $rules_json = get_option('WpFastestCacheExclude'); 52 $ids = array( 53 tinv_get_option('page', 'wishlist'), 54 tinv_get_option('page', 'manage'), 48 function tinvwl_wp_fastest_cache_reject() { 49 if ( defined( 'WPFC_WP_PLUGIN_DIR' ) ) { 50 $rules_json = get_option( 'WpFastestCacheExclude' ); 51 $ids = array( 52 tinv_get_option( 'page', 'wishlist' ), 53 tinv_get_option( 'page', 'manage' ), 55 54 ); 56 $pages = $ids;57 $languages = apply_filters('wpml_active_languages', array(), array(55 $pages = $ids; 56 $languages = apply_filters( 'wpml_active_languages', array(), array( 58 57 'skip_missing' => 0, 59 'orderby' => 'code',60 ) );61 if ( !empty($languages)) {62 foreach ( $ids as $id) {63 foreach ( $languages as $l) {64 $pages[] = apply_filters( 'wpml_object_id', $id, 'page', true, $l['language_code']);58 'orderby' => 'code', 59 ) ); 60 if ( ! empty( $languages ) ) { 61 foreach ( $ids as $id ) { 62 foreach ( $languages as $l ) { 63 $pages[] = apply_filters( 'wpml_object_id', $id, 'page', true, $l['language_code'] ); 65 64 } 66 65 } 67 $pages = array_unique( $pages);66 $pages = array_unique( $pages ); 68 67 } 69 $pages = array_filter( $pages);70 if ( !empty($pages)) {71 foreach ( $pages as $i => $page) {72 $pages[ $i] = preg_replace("/^\//", '', str_replace(get_site_url(), '', get_permalink($page))); // @codingStandardsIgnoreLine Squiz.Strings.DoubleQuoteUsage.NotRequired68 $pages = array_filter( $pages ); 69 if ( ! empty( $pages ) ) { 70 foreach ( $pages as $i => $page ) { 71 $pages[ $i ] = preg_replace( "/^\//", '', str_replace( get_site_url(), '', get_permalink( $page ) ) ); // @codingStandardsIgnoreLine Squiz.Strings.DoubleQuoteUsage.NotRequired 73 72 } 74 73 } 75 $pages = array_unique( $pages);76 $pages = array_filter( $pages);74 $pages = array_unique( $pages ); 75 $pages = array_filter( $pages ); 77 76 78 $rules_std = json_decode( $rules_json, true);79 $ex_pages = array();80 $rules_std = is_array( $rules_std) ? $rules_std : array();81 foreach ( $rules_std as $value) {82 $value['type'] = isset( $value['type']) ? $value['type'] : 'page';83 if ( 'page' === $value['type']) {77 $rules_std = json_decode( $rules_json, true ); 78 $ex_pages = array(); 79 $rules_std = is_array( $rules_std ) ? $rules_std : array(); 80 foreach ( $rules_std as $value ) { 81 $value['type'] = isset( $value['type'] ) ? $value['type'] : 'page'; 82 if ( 'page' === $value['type'] ) { 84 83 $ex_pages[] = $value['content']; 85 84 } 86 85 } 87 $ex_pages = array_unique( $ex_pages);88 $ex_pages = array_filter( $ex_pages);89 $changed = false;86 $ex_pages = array_unique( $ex_pages ); 87 $ex_pages = array_filter( $ex_pages ); 88 $changed = false; 90 89 91 foreach ( $pages as $page) {92 $page = preg_replace( '/\/$/', '', $page);90 foreach ( $pages as $page ) { 91 $page = preg_replace( '/\/$/', '', $page ); 93 92 94 if ( !in_array($page, $ex_pages)) {95 $changed = true;93 if ( ! in_array( $page, $ex_pages ) ) { 94 $changed = true; 96 95 $rules_std[] = array( 97 'prefix' => 'startwith',96 'prefix' => 'startwith', 98 97 'content' => $page, 99 'type' => 'page',98 'type' => 'page', 100 99 ); 101 100 } 102 101 } 103 if ( $changed) {104 $data = json_encode( $rules_std);105 update_option( 'WpFastestCacheExclude', $data);102 if ( $changed ) { 103 $data = json_encode( $rules_std ); 104 update_option( 'WpFastestCacheExclude', $data ); 106 105 } 107 106 } // End if(). 108 107 } 109 108 110 add_action( 'admin_init', 'tinvwl_wp_fastest_cache_reject');109 add_action( 'admin_init', 'tinvwl_wp_fastest_cache_reject' ); 111 110 } // End if(). -
ti-woocommerce-wishlist/trunk/integrations/wp-multilang.php
r3167298 r3306868 5 5 * @name WP Multilang 6 6 * 7 * @version 2. 3.07 * @version 2.4.19.1 8 8 * 9 9 * @slug wp-multilang … … 14 14 15 15 // If this file is called directly, abort. 16 if ( !defined('ABSPATH')) {16 if ( ! defined( 'ABSPATH' ) ) { 17 17 exit; 18 18 } … … 25 25 $name = "WP Multilang"; 26 26 27 $available = function_exists( 'wpm_translate_string');27 $available = function_exists( 'wpm_translate_string' ); 28 28 29 29 $tinvwl_integrations = is_array( $tinvwl_integrations ) ? $tinvwl_integrations : []; 30 30 31 $tinvwl_integrations[ $slug] = array(32 'name' => $name,31 $tinvwl_integrations[ $slug ] = array( 32 'name' => $name, 33 33 'available' => $available, 34 34 ); 35 35 36 if ( !tinv_get_option('integrations', $slug)) {36 if ( ! tinv_get_option( 'integrations', $slug ) ) { 37 37 return; 38 38 } 39 39 40 if ( !$available) {40 if ( ! $available ) { 41 41 return; 42 42 } 43 43 44 44 // WP Multilang string translations. 45 if ( function_exists('wpm_translate_string')) {45 if ( function_exists( 'wpm_translate_string' ) ) { 46 46 47 add_filter( 'tinvwl_default_wishlist_title', 'wpm_translate_string');48 add_filter( 'tinvwl_view_wishlist_text', 'wpm_translate_string');49 add_filter( 'tinvwl_added_to_wishlist_text', 'wpm_translate_string');50 add_filter( 'tinvwl_already_in_wishlist_text', 'wpm_translate_string');51 add_filter( 'tinvwl_removed_from_wishlist_text', 'wpm_translate_string');52 add_filter( 'tinvwl_remove_from_wishlist_text', 'wpm_translate_string');47 add_filter( 'tinvwl_default_wishlist_title', 'wpm_translate_string' ); 48 add_filter( 'tinvwl_view_wishlist_text', 'wpm_translate_string' ); 49 add_filter( 'tinvwl_added_to_wishlist_text', 'wpm_translate_string' ); 50 add_filter( 'tinvwl_already_in_wishlist_text', 'wpm_translate_string' ); 51 add_filter( 'tinvwl_removed_from_wishlist_text', 'wpm_translate_string' ); 52 add_filter( 'tinvwl_remove_from_wishlist_text', 'wpm_translate_string' ); 53 53 54 add_filter( 'tinvwl_added_to_wishlist_text_loop', 'wpm_translate_string');55 add_filter( 'tinvwl_remove_from_wishlist_text_loop', 'wpm_translate_string');54 add_filter( 'tinvwl_added_to_wishlist_text_loop', 'wpm_translate_string' ); 55 add_filter( 'tinvwl_remove_from_wishlist_text_loop', 'wpm_translate_string' ); 56 56 57 add_filter( 'tinvwl_add_to_cart_text', 'wpm_translate_string');57 add_filter( 'tinvwl_add_to_cart_text', 'wpm_translate_string' ); 58 58 59 add_filter( 'tinvwl_add_selected_to_cart_text', 'wpm_translate_string');60 add_filter( 'tinvwl_add_all_to_cart_text', 'wpm_translate_string');59 add_filter( 'tinvwl_add_selected_to_cart_text', 'wpm_translate_string' ); 60 add_filter( 'tinvwl_add_all_to_cart_text', 'wpm_translate_string' ); 61 61 62 add_filter( 'tinvwl_share_on_text', 'wpm_translate_string');62 add_filter( 'tinvwl_share_on_text', 'wpm_translate_string' ); 63 63 64 add_filter( 'tinvwl_wishlist_products_counter_text', 'wpm_translate_string');64 add_filter( 'tinvwl_wishlist_products_counter_text', 'wpm_translate_string' ); 65 65 66 66 } // End if(). -
ti-woocommerce-wishlist/trunk/integrations/wpc-variations-radio-buttons.php
r3167298 r3306868 5 5 * @name WPC Variations Radio Buttons for WooCommerce 6 6 * 7 * @version 2.2.17 * @version 3.6.1 8 8 * 9 9 * @slug wpc-variations-radio-buttons … … 14 14 15 15 // If this file is called directly, abort. 16 if ( !defined('ABSPATH')) {16 if ( ! defined( 'ABSPATH' ) ) { 17 17 exit; 18 18 } … … 25 25 $name = "WPC Variations Radio Buttons for WooCommerce"; 26 26 27 $available = defined( 'WOOVR_VERSION');27 $available = defined( 'WOOVR_VERSION' ); 28 28 29 29 $tinvwl_integrations = is_array( $tinvwl_integrations ) ? $tinvwl_integrations : []; 30 30 31 $tinvwl_integrations[ $slug] = array(32 'name' => $name,31 $tinvwl_integrations[ $slug ] = array( 32 'name' => $name, 33 33 'available' => $available, 34 34 ); 35 35 36 if ( !tinv_get_option('integrations', $slug)) {36 if ( ! tinv_get_option( 'integrations', $slug ) ) { 37 37 return; 38 38 } 39 39 40 if ( !$available) {40 if ( ! $available ) { 41 41 return; 42 42 } 43 43 44 if ( defined('WOOVR_VERSION')) {44 if ( defined( 'WOOVR_VERSION' ) ) { 45 45 46 46 /** … … 54 54 */ 55 55 56 function tinv_wishlist_item_meta_wpc_variations_radio_buttons($item_data, $product_id, $variation_id) 57 { 56 function tinv_wishlist_item_meta_wpc_variations_radio_buttons( $item_data, $product_id, $variation_id ) { 58 57 59 foreach ( array_keys($item_data) as $key) {60 if ( strpos($key, 'woovr_') === 0) {61 unset( $item_data[$key]);58 foreach ( array_keys( $item_data ) as $key ) { 59 if ( strpos( $key, 'woovr_' ) === 0 ) { 60 unset( $item_data[ $key ] ); 62 61 } 63 62 } … … 67 66 } 68 67 69 add_filter( 'tinvwl_wishlist_item_meta_post', 'tinv_wishlist_item_meta_wpc_variations_radio_buttons', 10, 3);68 add_filter( 'tinvwl_wishlist_item_meta_post', 'tinv_wishlist_item_meta_wpc_variations_radio_buttons', 10, 3 ); 70 69 } -
ti-woocommerce-wishlist/trunk/integrations/yith-woocommerce-product-bundles.php
r3167298 r3306868 5 5 * @name YITH WooCommerce Product Bundles 6 6 * 7 * @version 1.1.157 * @version 2.15.0 8 8 * 9 9 * @slug yith-woocommerce-product-bundles -
ti-woocommerce-wishlist/trunk/integrations/yith-woocommerce-quick-view.php
r3167298 r3306868 5 5 * @name YITH WooCommerce Quick View 6 6 * 7 * @version 1.3.137 * @version 2.4.0 8 8 * 9 9 * @slug yith-woocommerce-quick-view … … 14 14 15 15 // If this file is called directly, abort. 16 if ( !defined('ABSPATH')) {16 if ( ! defined( 'ABSPATH' ) ) { 17 17 exit; 18 18 } … … 25 25 $name = "YITH WooCommerce Quick View"; 26 26 27 $available = defined( 'YITH_WCQV');27 $available = defined( 'YITH_WCQV' ); 28 28 29 29 $tinvwl_integrations = is_array( $tinvwl_integrations ) ? $tinvwl_integrations : []; 30 30 31 $tinvwl_integrations[ $slug] = array(32 'name' => $name,31 $tinvwl_integrations[ $slug ] = array( 32 'name' => $name, 33 33 'available' => $available, 34 34 ); 35 35 36 if ( !tinv_get_option('integrations', $slug)) {36 if ( ! tinv_get_option( 'integrations', $slug ) ) { 37 37 return; 38 38 } 39 39 40 if ( !$available) {40 if ( ! $available ) { 41 41 return; 42 42 } 43 43 44 if ( defined('YITH_WCQV')) {44 if ( defined( 'YITH_WCQV' ) ) { 45 45 46 if ( !function_exists('tinv_wishlist_meta_support_yith_wcqv')) {46 if ( ! function_exists( 'tinv_wishlist_meta_support_yith_wcqv' ) ) { 47 47 48 48 /** … … 53 53 * @return array 54 54 */ 55 function tinv_wishlist_meta_support_yith_wcqv($meta) 56 { 55 function tinv_wishlist_meta_support_yith_wcqv( $meta ) { 57 56 58 foreach ( $meta as $k => $v) {57 foreach ( $meta as $k => $v ) { 59 58 $prefix = 'yith_'; 60 if ( 0 === strpos($k, $prefix)) {61 unset( $meta[$k]);59 if ( 0 === strpos( $k, $prefix ) ) { 60 unset( $meta[ $k ] ); 62 61 } 63 62 } … … 66 65 } 67 66 68 add_filter( 'tinvwl_wishlist_item_meta_post', 'tinv_wishlist_meta_support_yith_wcqv');67 add_filter( 'tinvwl_wishlist_item_meta_post', 'tinv_wishlist_meta_support_yith_wcqv' ); 69 68 } // End if(). 70 69 } -
ti-woocommerce-wishlist/trunk/languages/ti-woocommerce-wishlist.pot
r3199516 r3306868 1 # Copyright (C) 202 4 TI WooCommerce Wishlist Plugin - 2.9.22 # This file is distributed under the same license as the TI WooCommerce Wishlist Plugin - 2. 9.2package.1 # Copyright (C) 2025 TI WooCommerce Wishlist Plugin - 2.10.0 2 # This file is distributed under the same license as the TI WooCommerce Wishlist Plugin - 2.10.0 package. 3 3 msgid "" 4 4 msgstr "" 5 "Project-Id-Version: TI WooCommerce Wishlist Plugin - 2. 9.2\n"5 "Project-Id-Version: TI WooCommerce Wishlist Plugin - 2.10.0\n" 6 6 "MIME-Version: 1.0\n" 7 7 "Content-Type: text/plain; charset=UTF-8\n" … … 9 9 "Language-Team: TemplateInvaders (https://templateinvaders.com/)\n" 10 10 "Last-Translator: TemplateInvaders (https://templateinvaders.com/)\n" 11 "POT-Creation-Date: 202 4-11-29 15:00+0000\n"11 "POT-Creation-Date: 2025-06-05 07:36+0000\n" 12 12 "Report-Msgid-Bugs-To: https://templateinvaders.com/help/\n" 13 13 "X-Poedit-Basepath: ..\n" … … 1274 1274 msgstr "" 1275 1275 1276 #: public/cart.class.php:60 91276 #: public/cart.class.php:607 1277 1277 msgid "Sorry, the "%s" cannot be purchased." 1278 1278 msgid_plural "Sorry, the following products cannot be purchased: "%s"." … … 1280 1280 msgstr[1] "" 1281 1281 1282 #: public/cart.class.php:6 201282 #: public/cart.class.php:618 1283 1283 msgid "You cannot add "%s" to the cart because the product is out of stock." 1284 1284 msgid_plural "You cannot add the following products to the cart because they are out of stock: "%s"." … … 1286 1286 msgstr[1] "" 1287 1287 1288 #: public/cart.class.php:6 311288 #: public/cart.class.php:629 1289 1289 msgid "External product "%s" cannot be bought." 1290 1290 msgid_plural "The following external products cannot be bought: "%s"." … … 1292 1292 msgstr[1] "" 1293 1293 1294 #: public/cart.class.php:64 21294 #: public/cart.class.php:640 1295 1295 msgid "Please choose product options for "%s"." 1296 1296 msgid_plural "Please choose options for the following products: "%s"." … … 1298 1298 msgstr[1] "" 1299 1299 1300 #: public/cart.class.php:65 31300 #: public/cart.class.php:651 1301 1301 msgid "You cannot add another "%s" to your cart." 1302 1302 msgid_plural "You cannot add "%s" more to your cart." … … 1304 1304 msgstr[1] "" 1305 1305 1306 #: public/cart.class.php:66 41306 #: public/cart.class.php:662 1307 1307 msgid "You cannot add that amount of "%s" to the cart because there is not enough stock." 1308 1308 msgid_plural "You cannot add the following products to the cart because there is not enough stock: "%s"." … … 1310 1310 msgstr[1] "" 1311 1311 1312 #: public/cart.class.php:67 51312 #: public/cart.class.php:673 1313 1313 msgid "Product "%s" could not be added to the cart because some requirements are not met." 1314 1314 msgid_plural "Products: "%s" could not be added to the cart because some requirements are not met." -
ti-woocommerce-wishlist/trunk/public/cart.class.php
r3167298 r3306868 84 84 } 85 85 86 add_action( 'woocommerce_checkout_create_order', array( $this, 'add_order_item_meta' ) ); 87 88 add_action( 'woocommerce_checkout_update_order_meta', array( $this, 'purchased_items' ) ); 86 add_action( 'woocommerce_checkout_order_created', array( $this, 'add_order_item_meta' ) ); 87 add_action( 'woocommerce_store_api_checkout_update_order_meta', array( $this, 'add_order_item_meta' ) ); 88 89 add_action( 'woocommerce_checkout_order_created', array( $this, 'purchased_items' ) ); 90 add_action( 'woocommerce_store_api_checkout_update_order_meta', array( $this, 'purchased_items' ) ); 91 89 92 add_action( 'woocommerce_order_status_changed', array( $this, 'order_status_analytics' ), 9, 3 ); 90 93 } … … 350 353 * Run action when purchased product from a wishlist. 351 354 * 352 * @param int $order Order ID. 353 */ 354 public function purchased_items( $order_id ) { 355 $order = wc_get_order( $order_id ); 356 if ( ! $order ) { 357 return; 358 } 355 * @param \WC_Order $order Order object. 356 */ 357 public function purchased_items( $order ) { 359 358 foreach ( $order->get_items() as $item ) { 360 361 359 $_wishlist_cart = self::get_order_item_meta( $item, '_tinvwl_wishlist_cart' ); 362 360 -
ti-woocommerce-wishlist/trunk/readme.txt
r3199516 r3306868 3 3 Tags: woocommerce, wishlist, woocommerce wishlist, shop, ecommerce 4 4 Requires at least: 6.1 5 Tested up to: 6. 76 Stable tag: 2. 9.25 Tested up to: 6.8 6 Stable tag: 2.10.0 7 7 Requires PHP: 7.4 8 8 License: GPLv3 … … 159 159 160 160 == Changelog == 161 = 2.10.0 = 162 *Release Date - 5 June 2025* 163 164 - **Added**: Support for WordPress 6.8.x 165 - **Added**: Support for WooCommerce 9.8.x 166 - **Added**: filter 'tinvwl_wishlist_item_meta_hidden_fields' 167 - **Updated**: Integration with [YITH WooCommerce Product Bundles](https://wordpress.org/plugins/yith-woocommerce-product-bundles/) plugin 168 - **Updated**: Integration with [YITH WooCommerce Quick View](https://wordpress.org/plugins/yith-woocommerce-quick-view/) plugin 169 - **Updated**: Integration with [WPC Variations Radio Buttons for WooCommerce](https://wordpress.org/plugins/wpc-variations-radio-buttons/) plugin 170 - **Updated**: Integration with [WPC Product Bundles for WooCommerce](https://wordpress.org/plugins/woo-product-bundle/) plugin 171 - **Updated**: Integration with [WP Multilang – Translation and Multilingual Plugin](https://wordpress.org/plugins/wp-multilang/) 172 - **Updated**: Integration with [WP Fastest Cache](https://wordpress.org/plugins/wp-fastest-cache/) plugin 173 - **Updated**: Integration with [WP Armour – Honeypot Anti Spam](https://wordpress.org/plugins/honeypot/) plugin 174 - **Updated**: Integration with [PW WooCommerce Gift Cards](https://wordpress.org/plugins/pw-woocommerce-gift-cards/) plugin 175 - **Updated**: Integration with [Product Options and Price Calculation Formulas for WooCommerce – Uni CPO](https://wordpress.org/plugins/uni-woo-custom-product-options/) plugin 176 - **Updated**: Integration with [PPOM – Product Addons & Custom Fields for WooCommerce](https://wordpress.org/plugins/woocommerce-product-addon/) plugin 177 - **Updated**: Integration with [Payment Plugins Braintree For WooCommerce](https://wordpress.org/plugins/woo-payment-gateway/) plugin 178 - **Updated**: Integration with [myCred – Points Management System For Gamification, Ranks, Badges, and Loyalty Rewards Program](https://wordpress.org/plugins/mycred/) plugin 179 - **Updated**: Integration with [Min Max Step Quantity Limits Manager for WooCommerce](https://wordpress.org/plugins/product-quantity-for-woocommerce/) plugin 180 - **Updated**: Integration with [GTM4WP – A Google Tag Manager (GTM) plugin for WordPress](https://wordpress.org/plugins/duracelltomi-google-tag-manager/) plugin 181 - **Updated**: Integration with [Extra Product Options For WooCommerce | Custom Product Addons and Fields](https://wordpress.org/plugins/woo-extra-product-options/) plugin 182 - **Updated**: Integration with [ELEX WooCommerce Catalog Mode](https://wordpress.org/plugins/elex-woocommerce-catalog-mode/) plugin 183 - **Updated**: Integration with [Spam protection, Anti-Spam, FireWall by CleanTalk](https://wordpress.org/plugins/cleantalk-spam-protect/) plugin 184 - **Updated**: Integration with [Advanced Product Fields (Product Addons) for WooCommerce](https://wordpress.org/plugins/advanced-product-fields-for-woocommerce/) plugin 185 - **Fixed**: Vulnerability CVE-2025-47577 by updating integration with [WC Fields Factory](https://wordpress.org/plugins/wc-fields-factory/) plugin 186 161 187 = 2.9.2 = 162 188 *Release Date - 29 November 2024* … … 183 209 == Upgrade Notice == 184 210 185 = 2. 9.1=186 **Fixed**: SQL Injection vulnerability related to multilingual plugins211 = 2.10.0 = 212 **Fixed**: Vulnerability CVE-2025-47577 by updating integration with [WC Fields Factory](https://wordpress.org/plugins/wc-fields-factory/) plugin -
ti-woocommerce-wishlist/trunk/ti-woocommerce-wishlist.php
r3199516 r3306868 5 5 * Plugin URI: https://wordpress.org/plugins/ti-woocommerce-wishlist/ 6 6 * Description: Wishlist functionality for your WooCommerce store. 7 * Version: 2. 9.27 * Version: 2.10.0 8 8 * Requires at least: 6.1 9 * Tested up to: 6. 79 * Tested up to: 6.8 10 10 * Requires PHP: 7.4 11 11 * Requires Plugins: woocommerce 12 12 * WC requires at least: 3.2 13 * WC tested up to: 9. 413 * WC tested up to: 9.8 14 14 * Author: TemplateInvaders 15 15 * Author URI: https://templateinvaders.com/ … … 30 30 defined( 'TINVWL_PREFIX' ) || define( 'TINVWL_PREFIX', 'tinvwl' ); 31 31 defined( 'TINVWL_DOMAIN' ) || define( 'TINVWL_DOMAIN', 'ti-woocommerce-wishlist' ); 32 defined( 'TINVWL_FVERSION' ) || define( 'TINVWL_FVERSION', '2. 9.2' );32 defined( 'TINVWL_FVERSION' ) || define( 'TINVWL_FVERSION', '2.10.0' ); 33 33 defined( 'TINVWL_LOAD_FREE' ) || define( 'TINVWL_LOAD_FREE', plugin_basename( __FILE__ ) ); 34 34 defined( 'TINVWL_NAME' ) || define( 'TINVWL_NAME', 'TI WooCommerce Wishlist' ); -
ti-woocommerce-wishlist/trunk/tinv-wishlists-function.php
r3167298 r3306868 870 870 } 871 871 if ( array_key_exists( 'tinvwl-hidden-fields', $meta ) ) { 872 $hiddenFields = json_decode( $meta['tinvwl-hidden-fields'], true);872 $hiddenFields = apply_filters( 'tinvwl_wishlist_item_meta_hidden_fields', json_decode( $meta['tinvwl-hidden-fields'], true ) ); 873 873 if ( $hiddenFields !== null ) { 874 874 foreach ( $hiddenFields as $hiddenKey ) {
Note: See TracChangeset
for help on using the changeset viewer.