Changeset 3431172
- Timestamp:
- 01/02/2026 05:31:17 PM (3 months ago)
- Location:
- vuelve
- Files:
-
- 62 added
- 6 edited
-
tags/1.0.1 (added)
-
tags/1.0.1/assets (added)
-
tags/1.0.1/assets/css (added)
-
tags/1.0.1/assets/css/cart-consent.css (added)
-
tags/1.0.1/assets/css/cart-restore.css (added)
-
tags/1.0.1/assets/css/public.css (added)
-
tags/1.0.1/assets/images (added)
-
tags/1.0.1/assets/images/default-recovery-image.jpg (added)
-
tags/1.0.1/assets/js (added)
-
tags/1.0.1/assets/js/admin.js (added)
-
tags/1.0.1/assets/js/cart-consent.js (added)
-
tags/1.0.1/assets/js/live-updates.js (added)
-
tags/1.0.1/assets/js/public.js (added)
-
tags/1.0.1/assets/js/restore.js (added)
-
tags/1.0.1/assets/js/vuelve-capture.js (added)
-
tags/1.0.1/assets/js/vuelve-cart-check.js (added)
-
tags/1.0.1/assets/js/vuelve-consent.js (added)
-
tags/1.0.1/readme.txt (added)
-
tags/1.0.1/src (added)
-
tags/1.0.1/src/API (added)
-
tags/1.0.1/src/API/API.php (added)
-
tags/1.0.1/src/Admin (added)
-
tags/1.0.1/src/Admin/VuelveAdmin.php (added)
-
tags/1.0.1/src/Admin/assets (added)
-
tags/1.0.1/src/Admin/assets/admin.css (added)
-
tags/1.0.1/src/Admin/assets/admin.js (added)
-
tags/1.0.1/src/Admin/assets/dummy.js (added)
-
tags/1.0.1/src/Admin/assets/fonts (added)
-
tags/1.0.1/src/Admin/assets/fonts/quicksand (added)
-
tags/1.0.1/src/Admin/assets/fonts/quicksand/Quicksand-Bold.ttf (added)
-
tags/1.0.1/src/Admin/assets/fonts/quicksand/Quicksand-Light.ttf (added)
-
tags/1.0.1/src/Admin/assets/fonts/quicksand/Quicksand-Medium.ttf (added)
-
tags/1.0.1/src/Admin/assets/fonts/quicksand/Quicksand-Regular.ttf (added)
-
tags/1.0.1/src/Admin/assets/fonts/quicksand/Quicksand-SemiBold.ttf (added)
-
tags/1.0.1/src/Admin/assets/images (added)
-
tags/1.0.1/src/Admin/assets/images/appstore-icon.png (added)
-
tags/1.0.1/src/Admin/assets/images/chat-illustration.png (added)
-
tags/1.0.1/src/Admin/assets/images/google-play-icon.png (added)
-
tags/1.0.1/src/Admin/assets/images/mobile-app-background.jpg (added)
-
tags/1.0.1/src/Admin/assets/images/space-bg.jpg (added)
-
tags/1.0.1/src/Admin/assets/images/support.png (added)
-
tags/1.0.1/src/Admin/assets/vlv-wp-logo.png (added)
-
tags/1.0.1/src/Admin/assets/vlv-wp-logo.svg (added)
-
tags/1.0.1/src/Admin/assets/vuelve-admin-logo.png (added)
-
tags/1.0.1/src/Auth (added)
-
tags/1.0.1/src/Auth/VuelveAuth.php (added)
-
tags/1.0.1/src/Auth/VuelveIdentifier.php (added)
-
tags/1.0.1/src/Cart (added)
-
tags/1.0.1/src/Cart/CartCapture.php (added)
-
tags/1.0.1/src/Cart/CartRestore.php (added)
-
tags/1.0.1/src/CartIdManager (added)
-
tags/1.0.1/src/CartIdManager/CartIdManager.php (added)
-
tags/1.0.1/src/ConsentCheckbox (added)
-
tags/1.0.1/src/ConsentCheckbox/ConsentCheckbox.php (added)
-
tags/1.0.1/src/Event (added)
-
tags/1.0.1/src/Event/VuelveEvent.php (added)
-
tags/1.0.1/src/ImageBaseUrl (added)
-
tags/1.0.1/src/ImageBaseUrl/VuelveImageBaseUrl.php (added)
-
tags/1.0.1/src/utils (added)
-
tags/1.0.1/src/utils/getAllClients.php (added)
-
tags/1.0.1/uninstall.php (added)
-
tags/1.0.1/vuelve.php (added)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/src/Admin/VuelveAdmin.php (modified) (4 diffs)
-
trunk/src/Admin/assets/admin.css (modified) (1 diff)
-
trunk/src/Admin/assets/admin.js (modified) (4 diffs)
-
trunk/src/ConsentCheckbox/ConsentCheckbox.php (modified) (7 diffs)
-
trunk/vuelve.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
vuelve/trunk/readme.txt
r3431081 r3431172 3 3 Tags: woocommerce, whatsapp, abandoned cart, automation, campaigns 4 4 Requires at least: 5.8 5 Tested up to: 6. 95 Tested up to: 6.7 6 6 Requires PHP: 7.4 7 Stable tag: 1.0. 07 Stable tag: 1.0.1 8 8 License: GPLv2 or later 9 9 License URI: https://www.gnu.org/licenses/gpl-2.0.html … … 85 85 = 1.0.0 = 86 86 Initial stable release. Update required for future compatibility and improvements. 87 88 == Changelog == 89 90 = 1.0.1 = 91 * Added new controller over marketing consent checkbox. -
vuelve/trunk/src/Admin/VuelveAdmin.php
r3431081 r3431172 50 50 public function vuelve_render_admin_page() { 51 51 $nonce = wp_create_nonce('vuelve_save_managers'); 52 $prechecked = get_option('vuelve_consent_default_checked', '0'); 52 53 ?> 53 54 <div class="vlv-admin"> … … 146 147 <input type="text" value="<?php echo esc_html($this->marketingConsentLabel); ?>" id="marketing-consent-label" onkeyup="VuelveAdmin.clearError('marketing-consent-label')" /> 147 148 </div> 149 <div class="field field-row"> 150 <label for="vuelve_consent_default_checked"> 151 <input name="vuelve_consent_default_checked" type="checkbox" id="vuelve_consent_default_checked" value="1" <?php checked('1', $prechecked); ?> /> 152 Pre-check the consent box at checkout 153 </label> 154 <p class="checkbox-note"> 155 Opt-in requirements vary by country. Please ensure that pre-selecting this box aligns with the anti-spam laws in your region before enabling. 156 </p> 157 </div> 148 158 <div class="settings-buttons"> 149 159 <button id="submit-settings" class="primary-button" onClick="VuelveAdmin.submitSettings()">Save Settings</button> … … 210 220 add_action( 'admin_menu', [$this, 'vuelve_register_admin_page'] ); 211 221 add_action( 'admin_enqueue_scripts', [$this, 'vuelve_admin_assets'] ); 222 add_action('admin_init', function() { 223 register_setting('vuelve_settings_group', 'vuelve_consent_default_checked'); 224 }); 212 225 213 226 add_action('wp_ajax_vuelve_save_settings', function() { … … 225 238 : ''; 226 239 227 if ( strlen( $raw_label ) < 5 ) { 228 wp_send_json_error( array( 'message' => 'Label too short' ), 400 ); 229 } 240 $is_checked = ( isset($_POST['consentDefault']) && ( $_POST['consentDefault'] === 'true' || $_POST['consentDefault'] === '1' ) ); 241 $consent_default_val = $is_checked ? '1' : '0'; 242 243 // if ( strlen( $raw_label ) < 5 ) { 244 // wp_send_json_error( array( 'message' => 'Label too short' ), 400 ); 245 // } 230 246 231 247 update_option( 'vuelve_marketing_consent_label', $raw_label ); 248 update_option( 'vuelve_consent_default_checked', $consent_default_val ); 249 232 250 wp_send_json_success(); 233 251 }); -
vuelve/trunk/src/Admin/assets/admin.css
r3431081 r3431172 507 507 } 508 508 509 .vlv-admin input#vuelve_consent_default_checked { 510 width: 17px; 511 height: 16px; 512 } 513 514 .vlv-admin .checkbox-note { 515 color: #959595; 516 max-width: 600px; 517 margin-top: 2px; 518 font-size: 11px; 519 font-family: 'quicksand-medium'; 520 margin-left: 24px; 521 } 522 509 523 /* Target ONLY the Vuelve menu item */ 510 524 #adminmenu .toplevel_page_vuelve-admin .wp-menu-image { -
vuelve/trunk/src/Admin/assets/admin.js
r3431081 r3431172 43 43 errorMessage.classList.add('shown'); 44 44 } else { 45 console.log("managers: ", managers);46 45 sendManagers(managers); 47 46 } … … 128 127 function submitVuelveSettings() { 129 128 const marketingConsentLabelInput = document.querySelector('#marketing-consent-label'); 129 const marketingConsentDefaultChecked = document.querySelector('#vuelve_consent_default_checked'); 130 130 const marketingConsentLabel = marketingConsentLabelInput?.value; 131 const marketingConsentDefault = marketingConsentDefaultChecked.checked; 131 132 let hasError = false; 132 133 133 if (marketingConsentLabel.length < 5) {134 hasError = 1;135 setError(`marketing-consent-label`);136 }134 // if (marketingConsentLabel.length < 5) { 135 // hasError = 1; 136 // setError(`marketing-consent-label`); 137 // } 137 138 138 139 if (hasError) { … … 140 141 errorMessage.classList.add('shown'); 141 142 } else { 142 console.log("marketingconsentLabel: ", marketingConsentLabel); 143 sendVuelveSettings(marketingConsentLabel); 143 sendVuelveSettings(marketingConsentLabel, marketingConsentDefault); 144 144 } 145 145 } 146 146 147 async function sendVuelveSettings(consentLabel ) {147 async function sendVuelveSettings(consentLabel, consentDefault) { 148 148 const fd = new FormData(); 149 149 const submitBtn = document.getElementById('submit-settings'); … … 151 151 fd.append('security', VUELVE_ADMIN.nonceSettings); 152 152 fd.append('consentLabel', consentLabel); 153 fd.append('consentDefault', consentDefault); 153 154 if(submitBtn) submitBtn.disabled = true; 154 155 try { -
vuelve/trunk/src/ConsentCheckbox/ConsentCheckbox.php
r3431081 r3431172 10 10 11 11 public $consentText = 'I agree to receive updates and offers via SMS and Whatsapp'; 12 13 private function get_merchant_default() { 14 return get_option('vuelve_consent_default_checked', '0'); // Defaults to 0 (unchecked) 15 } 12 16 13 17 public function __construct() { … … 16 20 'I agree to receive updates and offers via SMS and WhatsApp' 17 21 ); 22 if($this->consentText == '') { 23 $this->consentText = 'I agree to receive updates and offers via SMS and WhatsApp'; 24 } 18 25 19 26 // Classic checkout … … 103 110 $isNull = is_null( WC()->session->get('vuelve_marketing_consent', null) ); 104 111 if($isNull) { 105 // error_log("marketing consent change 2: 1"); 106 WC()->session->set('vuelve_marketing_consent', 1); 112 WC()->session->set('vuelve_marketing_consent', $this->get_merchant_default()); 107 113 } else { 108 114 // error_log("marketing consent change 3"); … … 151 157 $isNull = is_null( WC()->session->get('vuelve_marketing_consent', null) ); 152 158 if($isNull) { 153 $stored = 1;159 $stored = $this->get_merchant_default(); 154 160 } else { 155 161 $stored = WC()->session->get('vuelve_marketing_consent'); … … 184 190 if ( is_null($stored) ) { 185 191 // No prior value → default to checked 186 return '1';192 return ($this->get_merchant_default() === '1') ? '1' : ''; 187 193 } 188 194 return ((int) $stored) ? '1' : ''; … … 214 220 215 221 if ($init === null) { 216 WC()->session->set('vuelve_marketing_consent', 1); 217 $init = 1; 222 $default = $this->get_merchant_default(); 223 WC()->session->set('vuelve_marketing_consent', $default); 224 $init = $default; 218 225 } 219 226 // error_log("init: ", $init); … … 239 246 public function render_cart_checkbox() { 240 247 if ( ! function_exists('WC') || ! WC()->session ) return; 241 $checked = (int) WC()->session->get('vuelve_marketing_consent', 1);248 $checked = (int) WC()->session->get('vuelve_marketing_consent', $this->get_merchant_default()); 242 249 ?> 243 250 <div class="vuelve-consent-cart"> -
vuelve/trunk/vuelve.php
r3431081 r3431172 3 3 * Plugin Name: Vuelve 4 4 * Description: Adds Vuelve abandoned cart recovery and WhatsApp cart restoration to WooCommerce. 5 * Version: 1.0. 05 * Version: 1.0.1 6 6 * Author: Vuelve 7 7 * Author URI: https://vuelve.co
Note: See TracChangeset
for help on using the changeset viewer.