Changeset 3049554
- Timestamp:
- 03/12/2024 07:18:55 AM (2 years ago)
- Location:
- terms-and-conditions-per-product
- Files:
-
- 262 added
- 4 edited
-
tags/1.2.11 (added)
-
tags/1.2.11/app (added)
-
tags/1.2.11/app/main (added)
-
tags/1.2.11/app/main/class-db-management.php (added)
-
tags/1.2.11/app/main/class-main.php (added)
-
tags/1.2.11/app/main/class-tacpp4-terms-and-conditions-checkout-block.php (added)
-
tags/1.2.11/app/main/class-tacpp4-terms-conditions-accept-log.php (added)
-
tags/1.2.11/app/main/class-tacpp4-terms-conditions-admin-notices.php (added)
-
tags/1.2.11/app/main/class-tacpp4-terms-conditions-modal.php (added)
-
tags/1.2.11/app/main/class-tacpp4-terms-conditions-per-categories.php (added)
-
tags/1.2.11/app/main/class-tacpp4-terms-conditions-per-product.php (added)
-
tags/1.2.11/app/main/class-tacpp4-terms-conditions-settings.php (added)
-
tags/1.2.11/assets (added)
-
tags/1.2.11/assets/banner-1544x500-rtl.jpg (added)
-
tags/1.2.11/assets/banner-1544x500.jpg (added)
-
tags/1.2.11/assets/banner-772x250-rtl.jpg (added)
-
tags/1.2.11/assets/banner-772x250.jpg (added)
-
tags/1.2.11/assets/css (added)
-
tags/1.2.11/assets/css/checkout.css (added)
-
tags/1.2.11/assets/css/terms-admin-settings.css (added)
-
tags/1.2.11/assets/css/terms-modal.css (added)
-
tags/1.2.11/assets/css/terms-per-product.css (added)
-
tags/1.2.11/assets/icon-128x128.png (added)
-
tags/1.2.11/assets/icon-256x256.jpg (added)
-
tags/1.2.11/assets/images (added)
-
tags/1.2.11/assets/images/avatar.svg (added)
-
tags/1.2.11/assets/images/menu-logo.png (added)
-
tags/1.2.11/assets/images/settings (added)
-
tags/1.2.11/assets/images/settings/hide-wc-terms.jpg (added)
-
tags/1.2.11/assets/images/settings/log-acceptance.jpg (added)
-
tags/1.2.11/assets/images/settings/must-open-link.jpg (added)
-
tags/1.2.11/assets/images/settings/show-on-product-page.jpg (added)
-
tags/1.2.11/assets/images/settings/terms-modal.jpg (added)
-
tags/1.2.11/assets/images/tacpp-avatar-100.png (added)
-
tags/1.2.11/assets/images/tacpp-avatar-20-bw.png (added)
-
tags/1.2.11/assets/images/tacpp-avatar-20.png (added)
-
tags/1.2.11/assets/images/tacpp-avatar-32.png (added)
-
tags/1.2.11/assets/images/tacpp-avatar-64.png (added)
-
tags/1.2.11/assets/js (added)
-
tags/1.2.11/assets/js/extensions (added)
-
tags/1.2.11/assets/js/extensions/checkout (added)
-
tags/1.2.11/assets/js/extensions/checkout/frontend.js (added)
-
tags/1.2.11/assets/js/plugin-core.js (added)
-
tags/1.2.11/assets/js/terms-modal.js (added)
-
tags/1.2.11/assets/js/terms-per-product-admin.js (added)
-
tags/1.2.11/assets/js/terms-per-product.js (added)
-
tags/1.2.11/assets/screenshot-1.jpg (added)
-
tags/1.2.11/assets/screenshot-2.jpg (added)
-
tags/1.2.11/assets/screenshot-3.jpg (added)
-
tags/1.2.11/freemius (added)
-
tags/1.2.11/freemius/LICENSE.txt (added)
-
tags/1.2.11/freemius/README.md (added)
-
tags/1.2.11/freemius/assets (added)
-
tags/1.2.11/freemius/assets/css (added)
-
tags/1.2.11/freemius/assets/css/admin (added)
-
tags/1.2.11/freemius/assets/css/admin/account.css (added)
-
tags/1.2.11/freemius/assets/css/admin/add-ons.css (added)
-
tags/1.2.11/freemius/assets/css/admin/affiliation.css (added)
-
tags/1.2.11/freemius/assets/css/admin/checkout.css (added)
-
tags/1.2.11/freemius/assets/css/admin/clone-resolution.css (added)
-
tags/1.2.11/freemius/assets/css/admin/common.css (added)
-
tags/1.2.11/freemius/assets/css/admin/connect.css (added)
-
tags/1.2.11/freemius/assets/css/admin/debug.css (added)
-
tags/1.2.11/freemius/assets/css/admin/dialog-boxes.css (added)
-
tags/1.2.11/freemius/assets/css/admin/gdpr-optin-notice.css (added)
-
tags/1.2.11/freemius/assets/css/admin/index.php (added)
-
tags/1.2.11/freemius/assets/css/admin/optout.css (added)
-
tags/1.2.11/freemius/assets/css/admin/plugins.css (added)
-
tags/1.2.11/freemius/assets/css/customizer.css (added)
-
tags/1.2.11/freemius/assets/css/index.php (added)
-
tags/1.2.11/freemius/assets/img (added)
-
tags/1.2.11/freemius/assets/img/index.php (added)
-
tags/1.2.11/freemius/assets/img/plugin-icon.png (added)
-
tags/1.2.11/freemius/assets/img/terms-and-conditions-per-product.png (added)
-
tags/1.2.11/freemius/assets/img/theme-icon.png (added)
-
tags/1.2.11/freemius/assets/index.php (added)
-
tags/1.2.11/freemius/assets/js (added)
-
tags/1.2.11/freemius/assets/js/index.php (added)
-
tags/1.2.11/freemius/assets/js/nojquery.ba-postmessage.js (added)
-
tags/1.2.11/freemius/assets/js/nojquery.ba-postmessage.min.js (added)
-
tags/1.2.11/freemius/assets/js/postmessage.js (added)
-
tags/1.2.11/freemius/config.php (added)
-
tags/1.2.11/freemius/includes (added)
-
tags/1.2.11/freemius/includes/class-freemius-abstract.php (added)
-
tags/1.2.11/freemius/includes/class-freemius.php (added)
-
tags/1.2.11/freemius/includes/class-fs-admin-notices.php (added)
-
tags/1.2.11/freemius/includes/class-fs-api.php (added)
-
tags/1.2.11/freemius/includes/class-fs-garbage-collector.php (added)
-
tags/1.2.11/freemius/includes/class-fs-lock.php (added)
-
tags/1.2.11/freemius/includes/class-fs-logger.php (added)
-
tags/1.2.11/freemius/includes/class-fs-options.php (added)
-
tags/1.2.11/freemius/includes/class-fs-plugin-updater.php (added)
-
tags/1.2.11/freemius/includes/class-fs-security.php (added)
-
tags/1.2.11/freemius/includes/class-fs-storage.php (added)
-
tags/1.2.11/freemius/includes/class-fs-user-lock.php (added)
-
tags/1.2.11/freemius/includes/customizer (added)
-
tags/1.2.11/freemius/includes/customizer/class-fs-customizer-support-section.php (added)
-
tags/1.2.11/freemius/includes/customizer/class-fs-customizer-upsell-control.php (added)
-
tags/1.2.11/freemius/includes/customizer/index.php (added)
-
tags/1.2.11/freemius/includes/debug (added)
-
tags/1.2.11/freemius/includes/debug/class-fs-debug-bar-panel.php (added)
-
tags/1.2.11/freemius/includes/debug/debug-bar-start.php (added)
-
tags/1.2.11/freemius/includes/debug/index.php (added)
-
tags/1.2.11/freemius/includes/entities (added)
-
tags/1.2.11/freemius/includes/entities/class-fs-affiliate-terms.php (added)
-
tags/1.2.11/freemius/includes/entities/class-fs-affiliate.php (added)
-
tags/1.2.11/freemius/includes/entities/class-fs-billing.php (added)
-
tags/1.2.11/freemius/includes/entities/class-fs-entity.php (added)
-
tags/1.2.11/freemius/includes/entities/class-fs-payment.php (added)
-
tags/1.2.11/freemius/includes/entities/class-fs-plugin-info.php (added)
-
tags/1.2.11/freemius/includes/entities/class-fs-plugin-license.php (added)
-
tags/1.2.11/freemius/includes/entities/class-fs-plugin-plan.php (added)
-
tags/1.2.11/freemius/includes/entities/class-fs-plugin-tag.php (added)
-
tags/1.2.11/freemius/includes/entities/class-fs-plugin.php (added)
-
tags/1.2.11/freemius/includes/entities/class-fs-pricing.php (added)
-
tags/1.2.11/freemius/includes/entities/class-fs-scope-entity.php (added)
-
tags/1.2.11/freemius/includes/entities/class-fs-site.php (added)
-
tags/1.2.11/freemius/includes/entities/class-fs-subscription.php (added)
-
tags/1.2.11/freemius/includes/entities/class-fs-user.php (added)
-
tags/1.2.11/freemius/includes/entities/index.php (added)
-
tags/1.2.11/freemius/includes/fs-core-functions.php (added)
-
tags/1.2.11/freemius/includes/fs-essential-functions.php (added)
-
tags/1.2.11/freemius/includes/fs-html-escaping-functions.php (added)
-
tags/1.2.11/freemius/includes/fs-plugin-info-dialog.php (added)
-
tags/1.2.11/freemius/includes/index.php (added)
-
tags/1.2.11/freemius/includes/l10n.php (added)
-
tags/1.2.11/freemius/includes/managers (added)
-
tags/1.2.11/freemius/includes/managers/class-fs-admin-menu-manager.php (added)
-
tags/1.2.11/freemius/includes/managers/class-fs-admin-notice-manager.php (added)
-
tags/1.2.11/freemius/includes/managers/class-fs-cache-manager.php (added)
-
tags/1.2.11/freemius/includes/managers/class-fs-clone-manager.php (added)
-
tags/1.2.11/freemius/includes/managers/class-fs-gdpr-manager.php (added)
-
tags/1.2.11/freemius/includes/managers/class-fs-key-value-storage.php (added)
-
tags/1.2.11/freemius/includes/managers/class-fs-license-manager.php (added)
-
tags/1.2.11/freemius/includes/managers/class-fs-option-manager.php (added)
-
tags/1.2.11/freemius/includes/managers/class-fs-permission-manager.php (added)
-
tags/1.2.11/freemius/includes/managers/class-fs-plan-manager.php (added)
-
tags/1.2.11/freemius/includes/managers/class-fs-plugin-manager.php (added)
-
tags/1.2.11/freemius/includes/managers/index.php (added)
-
tags/1.2.11/freemius/includes/sdk (added)
-
tags/1.2.11/freemius/includes/sdk/Exceptions (added)
-
tags/1.2.11/freemius/includes/sdk/Exceptions/ArgumentNotExistException.php (added)
-
tags/1.2.11/freemius/includes/sdk/Exceptions/EmptyArgumentException.php (added)
-
tags/1.2.11/freemius/includes/sdk/Exceptions/Exception.php (added)
-
tags/1.2.11/freemius/includes/sdk/Exceptions/InvalidArgumentException.php (added)
-
tags/1.2.11/freemius/includes/sdk/Exceptions/OAuthException.php (added)
-
tags/1.2.11/freemius/includes/sdk/Exceptions/index.php (added)
-
tags/1.2.11/freemius/includes/sdk/FreemiusBase.php (added)
-
tags/1.2.11/freemius/includes/sdk/FreemiusWordPress.php (added)
-
tags/1.2.11/freemius/includes/sdk/LICENSE.txt (added)
-
tags/1.2.11/freemius/includes/sdk/index.php (added)
-
tags/1.2.11/freemius/includes/supplements (added)
-
tags/1.2.11/freemius/includes/supplements/fs-essential-functions-1.1.7.1.php (added)
-
tags/1.2.11/freemius/includes/supplements/fs-essential-functions-2.2.1.php (added)
-
tags/1.2.11/freemius/includes/supplements/fs-migration-2.5.1.php (added)
-
tags/1.2.11/freemius/includes/supplements/index.php (added)
-
tags/1.2.11/freemius/index.php (added)
-
tags/1.2.11/freemius/languages (added)
-
tags/1.2.11/freemius/languages/freemius-cs_CZ.mo (added)
-
tags/1.2.11/freemius/languages/freemius-da_DK.mo (added)
-
tags/1.2.11/freemius/languages/freemius-de_DE.mo (added)
-
tags/1.2.11/freemius/languages/freemius-en.mo (added)
-
tags/1.2.11/freemius/languages/freemius-es_ES.mo (added)
-
tags/1.2.11/freemius/languages/freemius-fr_FR.mo (added)
-
tags/1.2.11/freemius/languages/freemius-he_IL.mo (added)
-
tags/1.2.11/freemius/languages/freemius-hu_HU.mo (added)
-
tags/1.2.11/freemius/languages/freemius-it_IT.mo (added)
-
tags/1.2.11/freemius/languages/freemius-ja.mo (added)
-
tags/1.2.11/freemius/languages/freemius-nl_NL.mo (added)
-
tags/1.2.11/freemius/languages/freemius-ru_RU.mo (added)
-
tags/1.2.11/freemius/languages/freemius-ta.mo (added)
-
tags/1.2.11/freemius/languages/freemius-zh_CN.mo (added)
-
tags/1.2.11/freemius/languages/freemius.pot (added)
-
tags/1.2.11/freemius/languages/index.php (added)
-
tags/1.2.11/freemius/require.php (added)
-
tags/1.2.11/freemius/start.php (added)
-
tags/1.2.11/freemius/templates (added)
-
tags/1.2.11/freemius/templates/account (added)
-
tags/1.2.11/freemius/templates/account.php (added)
-
tags/1.2.11/freemius/templates/account/billing.php (added)
-
tags/1.2.11/freemius/templates/account/index.php (added)
-
tags/1.2.11/freemius/templates/account/partials (added)
-
tags/1.2.11/freemius/templates/account/partials/activate-license-button.php (added)
-
tags/1.2.11/freemius/templates/account/partials/addon.php (added)
-
tags/1.2.11/freemius/templates/account/partials/deactivate-license-button.php (added)
-
tags/1.2.11/freemius/templates/account/partials/disconnect-button.php (added)
-
tags/1.2.11/freemius/templates/account/partials/index.php (added)
-
tags/1.2.11/freemius/templates/account/partials/site.php (added)
-
tags/1.2.11/freemius/templates/account/payments.php (added)
-
tags/1.2.11/freemius/templates/add-ons.php (added)
-
tags/1.2.11/freemius/templates/add-trial-to-pricing.php (added)
-
tags/1.2.11/freemius/templates/admin-notice.php (added)
-
tags/1.2.11/freemius/templates/ajax-loader.php (added)
-
tags/1.2.11/freemius/templates/api-connectivity-message-js.php (added)
-
tags/1.2.11/freemius/templates/auto-installation.php (added)
-
tags/1.2.11/freemius/templates/checkout.php (added)
-
tags/1.2.11/freemius/templates/clone-resolution-js.php (added)
-
tags/1.2.11/freemius/templates/connect (added)
-
tags/1.2.11/freemius/templates/connect.php (added)
-
tags/1.2.11/freemius/templates/connect/index.php (added)
-
tags/1.2.11/freemius/templates/connect/permission.php (added)
-
tags/1.2.11/freemius/templates/connect/permissions-group.php (added)
-
tags/1.2.11/freemius/templates/contact.php (added)
-
tags/1.2.11/freemius/templates/debug (added)
-
tags/1.2.11/freemius/templates/debug.php (added)
-
tags/1.2.11/freemius/templates/debug/api-calls.php (added)
-
tags/1.2.11/freemius/templates/debug/index.php (added)
-
tags/1.2.11/freemius/templates/debug/logger.php (added)
-
tags/1.2.11/freemius/templates/debug/plugins-themes-sync.php (added)
-
tags/1.2.11/freemius/templates/debug/scheduled-crons.php (added)
-
tags/1.2.11/freemius/templates/email.php (added)
-
tags/1.2.11/freemius/templates/forms (added)
-
tags/1.2.11/freemius/templates/forms/affiliation.php (added)
-
tags/1.2.11/freemius/templates/forms/data-debug-mode.php (added)
-
tags/1.2.11/freemius/templates/forms/deactivation (added)
-
tags/1.2.11/freemius/templates/forms/deactivation/contact.php (added)
-
tags/1.2.11/freemius/templates/forms/deactivation/form.php (added)
-
tags/1.2.11/freemius/templates/forms/deactivation/index.php (added)
-
tags/1.2.11/freemius/templates/forms/deactivation/retry-skip.php (added)
-
tags/1.2.11/freemius/templates/forms/email-address-update.php (added)
-
tags/1.2.11/freemius/templates/forms/index.php (added)
-
tags/1.2.11/freemius/templates/forms/license-activation.php (added)
-
tags/1.2.11/freemius/templates/forms/optout.php (added)
-
tags/1.2.11/freemius/templates/forms/premium-versions-upgrade-handler.php (added)
-
tags/1.2.11/freemius/templates/forms/premium-versions-upgrade-metadata.php (added)
-
tags/1.2.11/freemius/templates/forms/resend-key.php (added)
-
tags/1.2.11/freemius/templates/forms/subscription-cancellation.php (added)
-
tags/1.2.11/freemius/templates/forms/trial-start.php (added)
-
tags/1.2.11/freemius/templates/forms/user-change.php (added)
-
tags/1.2.11/freemius/templates/gdpr-optin-js.php (added)
-
tags/1.2.11/freemius/templates/index.php (added)
-
tags/1.2.11/freemius/templates/js (added)
-
tags/1.2.11/freemius/templates/js/index.php (added)
-
tags/1.2.11/freemius/templates/js/jquery.content-change.php (added)
-
tags/1.2.11/freemius/templates/js/open-license-activation.php (added)
-
tags/1.2.11/freemius/templates/js/permissions.php (added)
-
tags/1.2.11/freemius/templates/js/style-premium-theme.php (added)
-
tags/1.2.11/freemius/templates/partials (added)
-
tags/1.2.11/freemius/templates/partials/index.php (added)
-
tags/1.2.11/freemius/templates/partials/network-activation.php (added)
-
tags/1.2.11/freemius/templates/plugin-icon.php (added)
-
tags/1.2.11/freemius/templates/plugin-info (added)
-
tags/1.2.11/freemius/templates/plugin-info/description.php (added)
-
tags/1.2.11/freemius/templates/plugin-info/features.php (added)
-
tags/1.2.11/freemius/templates/plugin-info/index.php (added)
-
tags/1.2.11/freemius/templates/plugin-info/screenshots.php (added)
-
tags/1.2.11/freemius/templates/powered-by.php (added)
-
tags/1.2.11/freemius/templates/pricing.php (added)
-
tags/1.2.11/freemius/templates/secure-https-header.php (added)
-
tags/1.2.11/freemius/templates/sticky-admin-notice-js.php (added)
-
tags/1.2.11/freemius/templates/tabs-capture-js.php (added)
-
tags/1.2.11/freemius/templates/tabs.php (added)
-
tags/1.2.11/includes (added)
-
tags/1.2.11/index.php (added)
-
tags/1.2.11/languages (added)
-
tags/1.2.11/languages/terms-and-conditions-per-product.pot (added)
-
tags/1.2.11/readme.txt (added)
-
tags/1.2.11/templates (added)
-
tags/1.2.11/templates/admin-header.php (added)
-
tags/1.2.11/templates/admin-settings-page.php (added)
-
tags/1.2.11/templates/admin-tacpp-page.php (added)
-
tags/1.2.11/terms-per-product.php (added)
-
trunk/app/main/class-tacpp4-terms-and-conditions-checkout-block.php (modified) (3 diffs)
-
trunk/assets/js/extensions/checkout/frontend.js (modified) (1 diff)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/terms-per-product.php (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
-
terms-and-conditions-per-product/trunk/app/main/class-tacpp4-terms-and-conditions-checkout-block.php
r3035417 r3049554 10 10 */ 11 11 if ( ! defined( 'ABSPATH' ) ) { 12 exit;12 exit; 13 13 } 14 14 … … 16 16 if ( ! class_exists( 'TACPP4_Terms_Conditions_Checkout_Block' ) ) { 17 17 18 /**19 * Class for TACPP4_Terms_Conditions_Checkout_Block.20 */21 class TACPP4_Terms_Conditions_Checkout_Block {18 /** 19 * Class for TACPP4_Terms_Conditions_Checkout_Block. 20 */ 21 class TACPP4_Terms_Conditions_Checkout_Block { 22 22 23 protected static $instance = null;23 protected static $instance = null; 24 24 25 public static function get_instance() {26 null === self::$instance and self::$instance = new self;25 public static function get_instance() { 26 null === self::$instance and self::$instance = new self; 27 27 28 return self::$instance;29 }28 return self::$instance; 29 } 30 30 31 31 32 /**33 * Constructor for class.34 */35 public function __construct() {32 /** 33 * Constructor for class. 34 */ 35 public function __construct() { 36 36 37 // Enqueue front-end scripts38 add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 100 );37 // Enqueue front-end scripts 38 add_action( 'wp_enqueue_scripts', array( $this, 'enqueue_scripts' ), 100 ); 39 39 40 // Enqueue Back end scripts 41 add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueue_scripts' ), 100 ); 40 // Add product specific Terms and Conditions to WC Checkout Block 41 add_filter( "render_block_woocommerce/checkout-terms-block", 42 array( $this, 'add_checkout_per_product_terms_on_block' ), 10, 3 ); 42 43 43 // Add product specific Terms and Conditions to WC Checkout Block 44 add_filter( "render_block_woocommerce/checkout-terms-block", 45 array( $this, 'add_checkout_per_product_terms_on_block' ), 10, 3 ); 44 } 46 45 47 } 48 49 /** 50 * Enqueue style/script. 51 * 52 * @return void 53 */ 54 public function enqueue_scripts() { 55 wp_enqueue_style( 56 'terms-checkout-style', 57 TACPP4_PLUGIN_URL . 'assets/css/checkout.css', 58 '', 59 TACPP4_PLUGIN_VERSION 60 ); 61 // Register plugin's JS script 62 wp_register_script( 63 'terms-checkout-action-script', 64 TACPP4_PLUGIN_URL . 'assets/js/extensions/checkout/frontend.js', 65 array( 66 'jquery', 67 ), 68 TACPP4_PLUGIN_VERSION, 69 false 70 ); 46 /** 47 * Enqueue style/script. 48 * 49 * @return void 50 */ 51 public function enqueue_scripts() { 52 // Bailout if the Gutenberg checkout block is not present 53 if ( is_admin() || ! self::is_wc_checkout_block() ) { 54 return; 55 } 56 wp_enqueue_style( 57 'terms-checkout-style', 58 TACPP4_PLUGIN_URL . 'assets/css/checkout.css', 59 '', 60 TACPP4_PLUGIN_VERSION 61 ); 62 // Register plugin's JS script 63 wp_register_script( 64 'terms-checkout-action-script', 65 TACPP4_PLUGIN_URL . 'assets/js/extensions/checkout/frontend.js', 66 array( 67 'jquery', 68 ), 69 TACPP4_PLUGIN_VERSION, 70 false 71 ); 71 72 72 73 $not_checked_notice = apply_filters( 'tacpp_block_checkout_not_checked_notice', … … 78 79 'tacppChBlock', 79 80 array( 80 'notCheckedNotice' => $not_checked_notice81 'notCheckedNotice' => $not_checked_notice 81 82 ) 82 83 ); 83 84 84 wp_enqueue_script( 'terms-checkout-action-script' );85 wp_enqueue_script( 'terms-checkout-action-script' ); 85 86 86 }87 } 87 88 88 /**89 * Enqueue Admin style/script.90 *91 * @return void92 */93 public function admin_enqueue_scripts() {94 89 95 } 90 public function add_checkout_per_product_terms_on_block( $block_content, $block, $block_instance ) { 91 if ( is_admin() || ! self::is_wc_checkout_block() ) { 92 return $block_content; 93 } 96 94 97 public function add_checkout_per_product_terms_on_block( $block_content, $block, $block_instance ) { 95 $output_html = ''; // Initialize an empty string to store the HTML output 98 96 99 $output_html = ''; // Initialize an empty string to store the HTML output 97 ob_start(); 98 TACPP4_Terms_Conditions_Per_Product::add_checkout_per_product_terms(); 99 $output_html .= ob_get_clean(); 100 100 101 ob_start(); 102 TACPP4_Terms_Conditions_Per_Product::add_checkout_per_product_terms(); 103 $output_html .= ob_get_clean(); 101 $admin_settings = get_option( 'tacpp_admin_settings' ); 102 $terms_must_read = $admin_settings['terms_must_read']; 104 103 105 $admin_settings = get_option( 'tacpp_admin_settings' ); 106 $terms_must_read = $admin_settings['terms_must_read']; 104 $hide_wc_terms = isset( $admin_settings['hide_default_terms'] ) ? $admin_settings['hide_default_terms'] : 0; 107 105 108 $hide_wc_terms = isset( $admin_settings['hide_default_terms'] ) ? $admin_settings['hide_default_terms'] : 0; 106 if ( $hide_wc_terms > 0 ) { 107 $block_content = $output_html; 108 } else { 109 $block_content = $block_content . $output_html; 110 } 109 111 110 if ( $hide_wc_terms > 0 ) { 111 $block_content = $output_html; 112 } else { 113 $block_content = $block_content . $output_html; 114 } 112 return $block_content; 113 } 115 114 116 return $block_content; 117 } 115 /** 116 * Function to check if the WC checkout block is present. 117 * 118 * @return bool True if it is, false otherwise. 119 */ 120 public static function is_wc_checkout_block() { 121 // Get the ID of the current post 122 $post_id = get_the_ID(); 123 // Gutenberg checkout block name 124 $block_name = 'woocommerce/checkout'; 118 125 119 }120 126 121 new TACPP4_Terms_Conditions_Checkout_Block(); 127 // Get the post content. 128 $post_content = get_post_field( 'post_content', $post_id ); 129 130 // Parse the content to extract block information. 131 $blocks = parse_blocks( $post_content ); 132 133 // Loop through the blocks to check for the specified block name. 134 foreach ( $blocks as $block ) { 135 if ( isset( $block['blockName'] ) && $block['blockName'] === $block_name ) { 136 return true; // Block found 137 } 138 } 139 140 return false; // Block not found 141 } 142 143 } 144 145 new TACPP4_Terms_Conditions_Checkout_Block(); 122 146 } -
terms-and-conditions-per-product/trunk/assets/js/extensions/checkout/frontend.js
r3035417 r3049554 1 1 class HandleProductsTerms { 2 constructor(term, allTerms) {3 this.term = term;4 this.allTerms = allTerms;5 this.label = this.term.querySelector(".woocommerce-form__label");6 this.checkboxInput = this.term.querySelector(7 ".woocommerce-form__input-checkbox"8 );9 this.placeOrderButton = document.querySelector(10 ".wc-block-checkout__main .wc-block-components-checkout-place-order-button"11 );12 this.mustReadTerms = document.querySelector(".extra-terms-must-read");2 constructor(term, allTerms) { 3 this.term = term; 4 this.allTerms = allTerms; 5 this.label = this.term.querySelector(".woocommerce-form__label"); 6 this.checkboxInput = this.term.querySelector( 7 ".woocommerce-form__input-checkbox" 8 ); 9 this.placeOrderButton = document.querySelector( 10 ".wc-block-checkout__main .wc-block-components-checkout-place-order-button" 11 ); 12 this.mustReadTerms = document.querySelector(".extra-terms-must-read"); 13 13 14 this.termLink = this.term.querySelector("a"); 15 this.isAllTermsChecked = false; 16 this.init(); 17 } 18 init() { 19 this.handleCheckbox(); 20 this.handleLink(); 21 this.handleOrderButtonVisibility(); 22 } 23 handleOrderButtonVisibility(hide = true) { 24 if (hide) { 25 this.placeOrderButton.disabled = true; 26 this.placeOrderButton.classList.add("terms-not-checked"); 27 } else { 28 this.placeOrderButton.disabled = false; 29 if (this.placeOrderButton.classList.contains("terms-not-checked")) { 30 this.placeOrderButton.classList.remove("terms-not-checked"); 31 } 32 } 33 } 34 checkAllTerms() { 35 const mappedTerms = Array.from(this.allTerms).filter((term) => { 36 const checkboxInput = term.querySelector( 37 ".woocommerce-form__input-checkbox" 38 ); 39 return checkboxInput.checked; 40 }); 41 return mappedTerms; 42 } 43 handleCheckbox() { 44 this.label.addEventListener("click", (e) => { 45 const isChecked = this.checkboxInput.checked; 46 const name = this.checkboxInput.name; 47 const getTerms = sessionStorage.getItem("extraTerms"); 48 const clickedTerms = getTerms ? JSON.parse(getTerms) : []; 49 const checkedTerms = this.checkAllTerms(); 14 this.termLink = this.term.querySelector("a"); 15 this.isAllTermsChecked = false; 16 this.init(); 17 } 50 18 51 if (this.mustReadTerms) { 52 if (clickedTerms.includes(name)) { 53 this.checkboxInput.disabled = false; 54 this.checkboxInput.checked = isChecked; 55 if (checkedTerms.length >= this.allTerms.length) { 56 this.handleOrderButtonVisibility(false); 57 } else { 58 this.handleOrderButtonVisibility(true); 59 } 60 } else { 61 this.checkboxInput.checked = false; 62 } 63 } else { 64 this.checkboxInput.checked = isChecked; 65 if (checkedTerms.length >= this.allTerms.length) { 66 this.handleOrderButtonVisibility(false); 67 } else { 68 this.handleOrderButtonVisibility(true); 69 } 70 } 71 }); 72 } 73 handleLink() { 74 this.termLink.addEventListener("click", (e) => { 75 const getTerms = sessionStorage.getItem("extraTerms"); 76 const clickedTerms = getTerms ? JSON.parse(getTerms) : []; 77 if (!clickedTerms.includes(this.checkboxInput.name)) { 78 clickedTerms.push(this.checkboxInput.name); 79 sessionStorage.setItem("extraTerms", JSON.stringify(clickedTerms)); 80 } 81 }); 82 } 19 init() { 20 this.handleCheckbox(); 21 this.handleLink(); 22 this.handleOrderButtonVisibility(); 23 } 24 25 handleOrderButtonVisibility(hide = true) { 26 if(hide) { 27 this.placeOrderButton.disabled = true; 28 this.placeOrderButton.classList.add("terms-not-checked"); 29 } else { 30 this.placeOrderButton.disabled = false; 31 if(this.placeOrderButton.classList.contains("terms-not-checked")) { 32 this.placeOrderButton.classList.remove("terms-not-checked"); 33 } 34 } 35 } 36 37 checkAllTerms() { 38 const mappedTerms = Array.from(this.allTerms).filter((term) => { 39 const checkboxInput = term.querySelector( 40 ".woocommerce-form__input-checkbox" 41 ); 42 return checkboxInput.checked; 43 }); 44 return mappedTerms; 45 } 46 47 handleCheckbox() { 48 this.label.addEventListener("click", (e) => { 49 const isChecked = this.checkboxInput.checked; 50 const name = this.checkboxInput.name; 51 const getTerms = sessionStorage.getItem("extraTerms"); 52 const clickedTerms = getTerms ? JSON.parse(getTerms) : []; 53 const checkedTerms = this.checkAllTerms(); 54 55 if(this.mustReadTerms) { 56 if(clickedTerms.includes(name)) { 57 this.checkboxInput.disabled = false; 58 this.checkboxInput.checked = isChecked; 59 if(checkedTerms.length >= this.allTerms.length) { 60 this.handleOrderButtonVisibility(false); 61 } else { 62 this.handleOrderButtonVisibility(true); 63 } 64 } else { 65 this.checkboxInput.checked = false; 66 } 67 } else { 68 this.checkboxInput.checked = isChecked; 69 if(checkedTerms.length >= this.allTerms.length) { 70 this.handleOrderButtonVisibility(false); 71 } else { 72 this.handleOrderButtonVisibility(true); 73 } 74 } 75 }); 76 } 77 78 handleLink() { 79 this.termLink.addEventListener("click", (e) => { 80 const getTerms = sessionStorage.getItem("extraTerms"); 81 const clickedTerms = getTerms ? JSON.parse(getTerms) : []; 82 if(!clickedTerms.includes(this.checkboxInput.name)) { 83 clickedTerms.push(this.checkboxInput.name); 84 sessionStorage.setItem("extraTerms", JSON.stringify(clickedTerms)); 85 } 86 }); 87 } 83 88 } 84 89 85 90 window.addEventListener("load", () => { 86 const extraTerms = document.querySelectorAll( 87 ".wc-block-checkout__main .extra-terms" 88 ); 89 const placeOrderButton = document.querySelector( 90 ".wc-block-checkout__main .wc-block-components-checkout-place-order-button" 91 ); 92 extraTerms.forEach((term) => { 93 new HandleProductsTerms(term, extraTerms); 94 }); 95 let toolTipWrapper = document.createElement("div"); 96 toolTipWrapper.classList.add("extra-terms-place-order-tooltip-wrapper"); 97 let toolTip = document.createElement("p"); 98 toolTip.classList.add("extra-terms-place-order-tooltip"); 99 toolTip.innerHTML = tacppChBlock.notCheckedNotice; 100 toolTipWrapper.appendChild(toolTip); 101 placeOrderButton.appendChild(toolTipWrapper); 91 const extraTerms = document.querySelectorAll( 92 ".wc-block-checkout__main .extra-terms" 93 ); 94 const placeOrderButton = document.querySelector( 95 ".wc-block-checkout__main .wc-block-components-checkout-place-order-button" 96 ); 97 98 // Bailout if no order button exists 99 if(placeOrderButton === undefined || placeOrderButton === null) { 100 return; 101 } 102 103 extraTerms.forEach((term) => { 104 new HandleProductsTerms(term, extraTerms); 105 }); 106 let toolTipWrapper = document.createElement("div"); 107 toolTipWrapper.classList.add("extra-terms-place-order-tooltip-wrapper"); 108 let toolTip = document.createElement("p"); 109 toolTip.classList.add("extra-terms-place-order-tooltip"); 110 toolTip.innerHTML = tacppChBlock.notCheckedNotice; 111 toolTipWrapper.appendChild(toolTip); 112 placeOrderButton.appendChild(toolTipWrapper); 102 113 }); -
terms-and-conditions-per-product/trunk/readme.txt
r3035417 r3049554 5 5 Tested up to: 6.4.1 6 6 Requires PHP: 7.2 7 Stable tag: 1.2.1 07 Stable tag: 1.2.11 8 8 Author: Terms and Conditions Per Product 9 9 License: GPLv2 or later … … 85 85 86 86 == Changelog == 87 = 1.2.11 = 88 * Fix: Remove the checkout enqueued JS and functionality from pages that do not contain the Gutenberg checkout block. 89 87 90 = 1.2.10 = 88 91 * Update: Enable Block Checkout functionality -
terms-and-conditions-per-product/trunk/terms-per-product.php
r3035417 r3049554 13 13 * Plugin URI: https://tacpp-pro.com 14 14 * Description: Set custom Terms and Conditions per WooCommerce product, category or tag and display them on the checkout page. 15 * Version: 1.2.1 015 * Version: 1.2.11 16 16 * Author: Terms Per Product 17 17 * Author URI: https://tacpp-pro.com … … 33 33 * The version of the plugin. 34 34 */ 35 define( 'TACPP4_PLUGIN_VERSION', '1.2.1 0' );35 define( 'TACPP4_PLUGIN_VERSION', '1.2.11' ); 36 36 } 37 37
Note: See TracChangeset
for help on using the changeset viewer.