Changeset 3292484
- Timestamp:
- 05/13/2025 10:48:11 AM (11 months ago)
- Location:
- ibamu
- Files:
-
- 20 added
- 4 edited
- 1 copied
-
tags/1.4.0 (copied) (copied from ibamu/trunk)
-
tags/1.4.0/ibamu.php (modified) (3 diffs)
-
tags/1.4.0/installation (added)
-
tags/1.4.0/installation/install.php (added)
-
tags/1.4.0/integrations (added)
-
tags/1.4.0/integrations/wp_consent_api.php (added)
-
tags/1.4.0/integrations/wp_rocket.php (added)
-
tags/1.4.0/integrations/wp_siteground.php (added)
-
tags/1.4.0/options (added)
-
tags/1.4.0/options/options-init.php (added)
-
tags/1.4.0/options/options-page.php (added)
-
tags/1.4.0/options/options.php (added)
-
tags/1.4.0/readme.txt (modified) (6 diffs)
-
trunk/ibamu.php (modified) (3 diffs)
-
trunk/installation (added)
-
trunk/installation/install.php (added)
-
trunk/integrations (added)
-
trunk/integrations/wp_consent_api.php (added)
-
trunk/integrations/wp_rocket.php (added)
-
trunk/integrations/wp_siteground.php (added)
-
trunk/options (added)
-
trunk/options/options-init.php (added)
-
trunk/options/options-page.php (added)
-
trunk/options/options.php (added)
-
trunk/readme.txt (modified) (6 diffs)
Legend:
- Unmodified
- Added
- Removed
-
ibamu/tags/1.4.0/ibamu.php
r3287718 r3292484 7 7 Plugin URI: https://lawwwing.com/ 8 8 Description: Plugin todo en uno desarrollado por Lawwwing.com. Incluye las funcionalidades para ayudar a tu web a cumplir con las normativas RGPD, LOPDGDD, LSSI, LGDCU. 9 Version: 1. 3.09 Version: 1.4.0 10 10 Author: ibamu 11 11 Author URI: https://profiles.wordpress.org/ibamu/ … … 14 14 Text Domain: Lawwwing 15 15 */ 16 17 16 if (! defined('ABSPATH')){ 18 17 die; 19 18 } 19 20 // Define plugin constants 21 define('LW_PLUGIN_NAME', 'Lawwwing'); 22 define('LW_PLUGIN_REFERENCE', 'lawwwing'); 23 define('LW_PLUGIN_VERSION', '1.4.0'); 20 24 21 25 // First, I define a constant to see if site is network activated … … 31 35 } 32 36 33 // Wordpress function 'get_site_option' and 'get_option' depending if multisite is activated 34 function get_lawwwing_option($option_name) { 35 if(LW_NETWORK_MODE== true) { 36 $lw_options = get_site_option("ibamu_options"); 37 if (isset($lw_options) && $lw_options != false) { 38 return $lw_options[$option_name]; 39 } 40 else { 41 return false; 42 } 43 } 44 else { 45 $lw_options = get_option("ibamu_options"); 46 if (isset($lw_options) && $lw_options != false) { 47 return $lw_options[$option_name]; 48 } 49 else { 50 return false; 51 } 52 } 53 } 37 // Include the options page logic. 38 require_once( plugin_dir_path( __FILE__ ) . 'options/options.php' ); 54 39 55 /** 56 * Register our ibamu_settings_init to the admin_init action hook. 57 */ 58 function ibamu_settings_init() { 59 // Register a new setting for "ibamu" page. 60 register_setting('ibamu', 'ibamu_options'); 61 // Register a new section in the "ibamu" page. 62 add_settings_section( 63 'ibamu_section_developers', 64 "", "", 65 'ibamu' 66 ); 40 // Include installation logic. 41 require_once( plugin_dir_path( __FILE__ ) . 'installation/install.php' ); 67 42 68 // Register a new field in the "ibamu_section_developers" section, inside the "ibamu" page. 69 add_settings_field( 70 'ibamu_widget_uuid', 71 __( 'Plugin ID:', 'ibamu-plugin-domain' ), 72 'ibamu_widget_uuid_render', 73 'ibamu', 74 'ibamu_section_developers', 75 array( 76 'label_for' => 'ibamu_widget_uuid', 77 'class' => 'lawwwing-row', 78 'ibamu_custom_data' => 'custom', 79 ) 80 ); 43 // Include integrations 44 require_once( plugin_dir_path( __FILE__ ) . 'integrations/wp_rocket.php' ); 45 require_once( plugin_dir_path( __FILE__ ) . 'integrations/wp_siteground.php' ); 81 46 82 // Migration from already setted options in network mode 83 if (LW_NETWORK_MODE== true) { 84 $lw_options = get_option("ibamu_options"); 85 if (isset($lw_options)) { 86 add_site_option('ibamu_options', $lw_options); 87 } 88 } 89 } 90 add_action('admin_init', 'ibamu_settings_init'); 91 92 /** 93 * Hook into options page after save. 94 * If network mode is activated, it will save the options in the network. 95 */ 96 function lw_hook_after_options_saved( $old_value, $new_value ) { 97 if (LW_NETWORK_MODE== true) { 98 add_site_option('ibamu_options', $new_value); 99 if ($old_value != $new_value) { 100 update_site_option('ibamu_options', $new_value); 101 } 102 } else { 103 add_option('ibamu_options', $new_value); 104 if ($old_value != $new_value) { 105 update_option('ibamu_options', $new_value); 106 } 107 } 108 } 109 add_action('update_option_ibamu_options', 'lw_hook_after_options_saved', 10, 2); 110 111 /** 112 * Register styles on admin_enqueue_scripts hook. 113 */ 114 function ibamu_admin_add_assets() { 115 wp_enqueue_style('lawwwing-admin-styles', plugins_url('/css/lw-styles.css', __FILE__ ), array(), "1.3.0"); 116 wp_enqueue_style('lawwwing-font-awesome', "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css", array(), "1.3.0"); 117 } 118 add_action('admin_enqueue_scripts', 'ibamu_admin_add_assets'); 119 120 121 function ibamu_widget_uuid_render( $args ) { 122 ?> 123 <input 124 id="<?php echo esc_attr( $args['label_for'] ); ?>" 125 data-custom="<?php echo esc_attr( $args['ibamu_custom_data'] ); ?>" 126 name="ibamu_options[<?php echo esc_attr( $args['label_for'] ); ?>]" 127 value="<?php echo esc_attr( get_lawwwing_option('ibamu_widget_uuid') ); ?>" 128 placeholder="Plugin id" 129 class="regular-text" 130 type="text" 131 required> 132 </input> 133 <p class="description">Introduce el Plugin ID que encontrarás en tu panel de Lawwwing</p> 134 <?php 135 } 136 137 /** 138 * Add the top level menu page. 139 */ 140 function ibamu_options_page() { 141 add_menu_page( 142 'ibamu', 143 'Lawwwing', 144 'manage_options', 145 'ibamu', 146 'ibamu_options_page_html', 147 'https://cdn.lawwwing.com/static/assets/img/favicon/lawwwing/favicon-16x16.png' 148 ); 149 } 150 151 152 /** 153 * Register our ibamu_options_page to the admin_menu action hook. 154 */ 155 add_action('admin_menu', 'ibamu_options_page'); 156 157 /** 158 * Top level menu callback function 159 */ 160 function ibamu_options_page_html() { 161 // check user capabilities 162 if ( ! current_user_can('manage_options') ) { 163 return; 164 } 165 166 // add error/update messages 167 168 // check if the user have submitted the settings 169 // WordPress will add the "settings-updated" $_GET parameter to the url 170 if ( isset( $_GET['settings-updated'] ) ) { 171 // add settings saved message with the class of "updated" 172 add_settings_error('ibamu_messages', 'ibamu_message', esc_html(__('Guardado correctamente'), 'ibamu-plugin-domain'), 'updated'); 173 } 174 175 // show error/update messages 176 esc_html(settings_errors('ibamu_messages')); 177 ?> 178 <div class="lawwwing-wrapper"> 179 <div class="lawwwing-header" id="ibamu-header"> 180 <div class="lawwwing-logo"> 181 <a href="https://lawwwing.com/?utm_source=wordpress" title="Lawwwing" target="_blank"> 182 <img height="32" class="navbar-brand-dark rotate-logo" src="https://cdn.lawwwing.com/static/assets/img/logos/horizontal/logo_color2.png" alt="textos legales web"> 183 </a> 184 </div> 185 <div class="lawwwing-header-links"> 186 <div> 187 <a href="https://docs.lawwwing.com" title="Documentación" target="_blank"> <i class="fa-solid fa-book"></i> Documentación</a> 188 </div> 189 <div> 190 <a href="https://app.lawwwing.com/login/" title="Abrir dashboard" target="_blank"> <i class="fa-solid fa-bars-progress"></i> Dashboard</a> 191 </div> 192 <div> 193 <a href="https://lawwwing.com/contacto/" title="Contacto" target="_blank"> <i class="fa-solid fa-phone"></i> Contacto</a> 194 </div> 195 <div class="lawwwing-version"> 196 v1.3.0 197 </div> 198 </div> 199 </div> 200 <div class="lawwwing-content"> 201 <div class="lawwwing-title"> 202 <h1>Adapta <u class="tertiary">Lawwwing</u> a tus necesidades</h1> 203 <h2>Actualiza en <strong>5 minutos</strong> y <strong>para siempre</strong> la legalidad de tu web con nuestro plugin</h2> 204 <h4>Escoge el plan que mejor se adapte a tu negocio</h4> 205 </div> 206 207 <div class="lawwwing-plan-cards"> 208 <div class="lawwwing-plan-card"> 209 <div class="lawwwing-plan-card-top"> 210 <div> 211 <h3 class="lawwwing-primary lawwwing-plan-name">STARTER</h3> 212 <p class="lawwwing-plan-subtitle">Para webs informativas y blogs sin venta online</p> 213 </div> 214 </div> 215 <div class="lawwwing-plan-card-bottom"> 216 <div class="lawwwing-plan-card-bottom-left"> 217 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Banner de cookies</p> 218 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Aviso legal</p> 219 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Política de privacidad y cookies</p> 220 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>Términos y Condiciones</p> 221 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Cláusulas de consentimiento</p> 222 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Actualizaciones automáticas</p> 223 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Soporte básico</p> 224 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Derechos de usuarios</p> 225 </div> 226 <div class="lawwwing-plan-card-bottom-right"> 227 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>2 Idiomas</p> 228 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Escaneo semanal</p> 229 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Google Consent Mode v2</p> 230 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Microsoft UET Consent Mode</p> 231 232 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>Métricas de consentimiento</p> 233 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>IAB TCF v2.2</p> 234 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>Lawwwing SOS</p> 235 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>Integración de tu marca</p> 236 </div> 237 </div> 238 <div class="lawwwing-plans-wrapper"> 239 <div class="lawwwing-plan"> 240 <h3 class="lawwwing-plan-price">11€<span class="lawwwing-plan-period">/mes</span></h3> 241 </div> 242 <p>o</p> 243 <div class="lawwwing-plan discount"> 244 <h3 class="lawwwing-plan-price">99€<span class="lawwwing-plan-period">/año</span></h3> 245 <div class="lawwwing-plan-discount">-25%</div> 246 </div> 247 </div> 248 <div class="lawwwing-button-wrapper"> 249 <a href="https://lawwwing.com/signup/?utm_source=wordpress&utm_campaign=plan-button" target="_blank" class="button-solid secondary">Empezar</a> 250 </div> 251 </div> 252 253 <div class="lawwwing-plan-card"> 254 <div class="lawwwing-plan-card-top"> 255 <div> 256 <h3 class="lawwwing-primary lawwwing-plan-name">GROWTH</h3> 257 <p class="lawwwing-plan-subtitle">Para tiendas online y webs con venta de productos o servicios</p> 258 </div> 259 </div> 260 <div class="lawwwing-plan-card-bottom"> 261 <div class="lawwwing-plan-card-bottom-left"> 262 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Banner de cookies</p> 263 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Aviso legal</p> 264 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Política de privacidad y cookies</p> 265 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Términos y Condiciones</p> 266 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Cláusulas de consentimiento</p> 267 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Actualizaciones automáticas</p> 268 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Soporte básico</p> 269 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Derechos de usuarios</p> 270 </div> 271 <div class="lawwwing-plan-card-bottom-right"> 272 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>2 Idiomas</p> 273 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Escaneo semanal</p> 274 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Google Consent Mode v2</p> 275 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Microsoft UET Consent Mode</p> 276 277 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>Métricas de consentimiento</p> 278 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>IAB TCF v2.2</p> 279 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>Lawwwing SOS</p> 280 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>Integración de tu marca</p> 281 </div> 282 </div> 283 <div class="lawwwing-plans-wrapper"> 284 <div class="lawwwing-plan"> 285 <h3 class="lawwwing-plan-price">16€<span class="lawwwing-plan-period">/mes</span></h3> 286 </div> 287 <p>o</p> 288 <div class="lawwwing-plan discount"> 289 <h3 class="lawwwing-plan-price">149€<span class="lawwwing-plan-period">/año</span></h3> 290 <div class="lawwwing-plan-discount">-25%</div> 291 </div> 292 </div> 293 <div class="lawwwing-button-wrapper"> 294 <a href="https://lawwwing.com/signup/?utm_source=wordpress&utm_campaign=plan-button" target="_blank" class="button-solid secondary">Empezar</a> 295 </div> 296 </div> 297 298 <div class="lawwwing-plan-card"> 299 <div class="lawwwing-plan-card-top"> 300 <div> 301 <h3 class="lawwwing-primary lawwwing-plan-name">PROFESSIONAL</h3> 302 <p class="lawwwing-plan-subtitle">Pensado para los que buscan un nivel más avanzado de servicios y soporte</p> 303 </div> 304 </div> 305 <div class="lawwwing-plan-card-bottom"> 306 <div class="lawwwing-plan-card-bottom-left"> 307 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Banner de cookies</p> 308 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Aviso legal</p> 309 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Política de privacidad y cookies</p> 310 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Términos y Condiciones</p> 311 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Cláusulas de consentimiento</p> 312 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Actualizaciones automáticas</p> 313 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Soporte personalizado</p> 314 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Derechos de usuarios</p> 315 </div> 316 <div class="lawwwing-plan-card-bottom-right"> 317 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Todos los idiomas</p> 318 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Escaneo <u>diario</u></p> 319 320 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Google Consent Mode v2</p> 321 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Microsoft UET Consent Mode</p> 322 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Métricas de consentimiento</p> 323 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>IAB TCF v2.2</p> 324 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Lawwwing SOS</p> 325 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Integración de tu marca</p> 326 </div> 327 </div> 328 <div class="lawwwing-plans-wrapper"> 329 <div class="lawwwing-plan"> 330 <h3 class="lawwwing-plan-price">32€<span class="lawwwing-plan-period">/mes</span></h3> 331 </div> 332 <p>o</p> 333 <div class="lawwwing-plan discount"> 334 <h3 class="lawwwing-plan-price">300€<span class="lawwwing-plan-period">/año</span></h3> 335 <div class="lawwwing-plan-discount">-25%</div> 336 </div> 337 </div> 338 <div class="lawwwing-button-wrapper"> 339 <a href="https://lawwwing.com/signup/?utm_source=wordpress&utm_campaign=plan-button" target="_blank" class="button-solid secondary">Empezar</a> 340 </div> 341 </div> 342 </div> 343 344 <div class="lawwwing-configuration-wrapper"> 345 <div class="lawwwing-configuration-title"> 346 <h1 class="">Configuración</h1> 347 </div> 348 <div class="lawwwing-configuration-columns-wrapper"> 349 <div class="lawwwing-configuration-column"> 350 <p class="lawwwing-configuration-column-description"> 351 Para <strong>configurar</strong> el plugin necesitarás <strong>rellenar el formulario</strong> con el "plugin id" que encontrarás en tu <a class="ibamu-url" href="https://lawwwing.com/signup/" target="_blank">panel de Lawwwing.</a> 352 </p> 353 <form class="lawwwing-configuration-form-input" action="options.php" method="post"> 354 <?php 355 esc_html(settings_fields('ibamu')); 356 esc_html(do_settings_sections('ibamu')); 357 esc_html(submit_button(__('Guardar', 'ibamu-plugin-domain'), 'primary', 'submit', 'true', array( 'data-style' => 'lw-custom-submit' ))); 358 ?> 359 </form> 360 </div> 361 <hr> 362 <div class="lawwwing-configuration-column"> 363 <ul> 364 <li>Regístrate en <a class="ibamu-url" href="https://lawwwing.com/?utm_source=wordpress" target="_blank">https://lawwwing.com/</a> para obtener <strong>tu clave</strong></li> 365 <li>Instala Lawwwing de forma gratuita</li> 366 <li>Personaliza el <strong>comportamiento y diseño del plugin</strong> en tu panel de usuario</li> 367 <li>Elige uno de <strong>nuestros planes</strong> para garantizar el cumplimiento normativo</li> 368 <li>Escanearemos semanalmente tu web para asegurar que <strong>siempre cumple con la normativa</strong></li> 369 </ul> 370 <div class="lawwwing-configuration-badges"> 371 <img src="https://cdn.lawwwing.com/media/catalogue/files/2025/01/iab_logo_registered_cmp_base.webp" height="80"> 372 <img src="https://cdn.lawwwing.com/media/catalogue/files/2025/01/google-cmp-badge.svg" height="100"> 373 <img src="https://cdn.lawwwing.com/media/catalogue/files/2025/01/uet-consent-mode.png" height="100"> 374 </div> 375 </div> 376 </div> 377 </div> 378 </div> 379 </div> 380 <?php 381 } 382 383 /** 384 * Enqueue cookie-widget script 385 */ 386 add_action('wp_enqueue_scripts', 'lawwwing_include_plugin', 1); 387 function lawwwing_include_plugin() { 388 $plugin_id = get_lawwwing_option("ibamu_widget_uuid"); 389 $base_script = "https://cdn.lawwwing.com/widgets/current/{$plugin_id}/cookie-widget.min.js"; 390 wp_enqueue_script("lawwwing-plugin", $base_script, "", "1.3.0"); 391 } 392 393 function add_lawwwing_data_arguments($tag, $handle) { 394 if ( 'lawwwing-plugin' !== $handle ) 395 return $tag; 396 397 $plugin_id = get_lawwwing_option("ibamu_widget_uuid"); 398 return str_replace(' src', " data-lwid=\"{$plugin_id}\" src", $tag); 399 } 400 add_filter('script_loader_tag', 'add_lawwwing_data_arguments', 1, 2); 401 402 /** 403 * WPRocket exclude script from minification 404 * See: https://docs.wp-rocket.me/article/976-exclude-files-from-defer-js#exclude-files-and-domains 405 */ 406 add_filter('rocket_defer_inline_exclusions', function($inline_exclusions_list) { 407 $inline_exclusions_list[] = 'cdn.lawwwing.com'; 408 return $inline_exclusions_list; 409 }); 410 411 add_filter('rocket_excluded_inline_js_content', function($inline_exclusions_list) { 412 $inline_exclusions_list[] = 'cdn.lawwwing.com'; 413 return $inline_exclusions_list; 414 }); 415 416 add_filter('rocket_minify_excluded_external_js', function($excluded_external_js) { 417 $excluded_external_js[] = 'cdn.lawwwing.com'; 418 return $excluded_external_js; 419 }); 420 421 /** 422 * SiteGround Optimizer exclude script from combination 423 * See: https://wordpress.org/plugins/sg-cachepress/ 424 */ 425 add_filter( 'sgo_javascript_combine_excluded_external_paths', 'lawwwing_js_combine_exclude_external_script' ); 426 function lawwwing_js_combine_exclude_external_script( $exclude_list ) { 427 $exclude_list[] = 'cdn.lawwwing.com'; 428 return $exclude_list; 47 if (is_plugin_active('wp-consent-api/wp-consent-api.php')) { 48 require_once( plugin_dir_path( __FILE__ ) . 'integrations/wp_consent_api.php' ); 429 49 } 430 50 -
ibamu/tags/1.4.0/readme.txt
r3287718 r3292484 6 6 Requires PHP: 5.2.4 7 7 Tested up to: 6.8.1 8 Stable tag: 1. 3.08 Stable tag: 1.4.0 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 28 28 - **🥇** **IAB TCF v2.2**: Cumplimos con los estándares del IAB TCF para garantizar un consentimiento publicitario sólido y transparente. 29 29 - **🥇** **CMP Certificado por Google**: Somos un socio certificado por Google en la gestión de consentimiento. 30 - **🛠️** **Soporte técnico**: Si tienes dudas, nuestro equipo de soporte te ayudará a resolverlas 31 - **✅** **WP Consent Api** 30 32 31 33 **CENTRATE EN TU NEGOCIO**, Nosotros nos encargamos de los temas legales. … … 72 74 Puedes contactar con nosotros en [hola@lawwwing.com](mailto:hola@lawwwing.com) o llamando al +34644628995. 73 75 74 Consulta nuestra documentación en [https:// lawwwing.com/docs/](https://lawwwing.com/docs/).76 Consulta nuestra documentación en [https://docs.lawwwing.com](https://docs.lawwwing.com). 75 77 76 78 == Installation == … … 127 129 128 130 Lawwwing es compatible con todo tipo de webs. 131 132 **¿Está Lawwwing integrado con WP Consent API?** 133 134 Sí, Lawwwing está totalmente integrado con WP Consent API. El consentimiento de los usuarios se transmitirá automáticamente a [WP Consent API](https://wordpress.org/plugins/wp-consent-api/). 129 135 130 136 … … 145 151 == Changelog == 146 152 153 = 1.4.0 = 154 * WP Consent API integration 155 147 156 = 1.3.0 = 148 157 * Tested up wp 6.8.1 … … 420 429 = 1.3.0 = 421 430 * Tested up wp 6.8.1 431 432 = 1.4.0 = 433 * WP Consent API integration -
ibamu/trunk/ibamu.php
r3287718 r3292484 7 7 Plugin URI: https://lawwwing.com/ 8 8 Description: Plugin todo en uno desarrollado por Lawwwing.com. Incluye las funcionalidades para ayudar a tu web a cumplir con las normativas RGPD, LOPDGDD, LSSI, LGDCU. 9 Version: 1. 3.09 Version: 1.4.0 10 10 Author: ibamu 11 11 Author URI: https://profiles.wordpress.org/ibamu/ … … 14 14 Text Domain: Lawwwing 15 15 */ 16 17 16 if (! defined('ABSPATH')){ 18 17 die; 19 18 } 19 20 // Define plugin constants 21 define('LW_PLUGIN_NAME', 'Lawwwing'); 22 define('LW_PLUGIN_REFERENCE', 'lawwwing'); 23 define('LW_PLUGIN_VERSION', '1.4.0'); 20 24 21 25 // First, I define a constant to see if site is network activated … … 31 35 } 32 36 33 // Wordpress function 'get_site_option' and 'get_option' depending if multisite is activated 34 function get_lawwwing_option($option_name) { 35 if(LW_NETWORK_MODE== true) { 36 $lw_options = get_site_option("ibamu_options"); 37 if (isset($lw_options) && $lw_options != false) { 38 return $lw_options[$option_name]; 39 } 40 else { 41 return false; 42 } 43 } 44 else { 45 $lw_options = get_option("ibamu_options"); 46 if (isset($lw_options) && $lw_options != false) { 47 return $lw_options[$option_name]; 48 } 49 else { 50 return false; 51 } 52 } 53 } 37 // Include the options page logic. 38 require_once( plugin_dir_path( __FILE__ ) . 'options/options.php' ); 54 39 55 /** 56 * Register our ibamu_settings_init to the admin_init action hook. 57 */ 58 function ibamu_settings_init() { 59 // Register a new setting for "ibamu" page. 60 register_setting('ibamu', 'ibamu_options'); 61 // Register a new section in the "ibamu" page. 62 add_settings_section( 63 'ibamu_section_developers', 64 "", "", 65 'ibamu' 66 ); 40 // Include installation logic. 41 require_once( plugin_dir_path( __FILE__ ) . 'installation/install.php' ); 67 42 68 // Register a new field in the "ibamu_section_developers" section, inside the "ibamu" page. 69 add_settings_field( 70 'ibamu_widget_uuid', 71 __( 'Plugin ID:', 'ibamu-plugin-domain' ), 72 'ibamu_widget_uuid_render', 73 'ibamu', 74 'ibamu_section_developers', 75 array( 76 'label_for' => 'ibamu_widget_uuid', 77 'class' => 'lawwwing-row', 78 'ibamu_custom_data' => 'custom', 79 ) 80 ); 43 // Include integrations 44 require_once( plugin_dir_path( __FILE__ ) . 'integrations/wp_rocket.php' ); 45 require_once( plugin_dir_path( __FILE__ ) . 'integrations/wp_siteground.php' ); 81 46 82 // Migration from already setted options in network mode 83 if (LW_NETWORK_MODE== true) { 84 $lw_options = get_option("ibamu_options"); 85 if (isset($lw_options)) { 86 add_site_option('ibamu_options', $lw_options); 87 } 88 } 89 } 90 add_action('admin_init', 'ibamu_settings_init'); 91 92 /** 93 * Hook into options page after save. 94 * If network mode is activated, it will save the options in the network. 95 */ 96 function lw_hook_after_options_saved( $old_value, $new_value ) { 97 if (LW_NETWORK_MODE== true) { 98 add_site_option('ibamu_options', $new_value); 99 if ($old_value != $new_value) { 100 update_site_option('ibamu_options', $new_value); 101 } 102 } else { 103 add_option('ibamu_options', $new_value); 104 if ($old_value != $new_value) { 105 update_option('ibamu_options', $new_value); 106 } 107 } 108 } 109 add_action('update_option_ibamu_options', 'lw_hook_after_options_saved', 10, 2); 110 111 /** 112 * Register styles on admin_enqueue_scripts hook. 113 */ 114 function ibamu_admin_add_assets() { 115 wp_enqueue_style('lawwwing-admin-styles', plugins_url('/css/lw-styles.css', __FILE__ ), array(), "1.3.0"); 116 wp_enqueue_style('lawwwing-font-awesome', "https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.2.1/css/all.min.css", array(), "1.3.0"); 117 } 118 add_action('admin_enqueue_scripts', 'ibamu_admin_add_assets'); 119 120 121 function ibamu_widget_uuid_render( $args ) { 122 ?> 123 <input 124 id="<?php echo esc_attr( $args['label_for'] ); ?>" 125 data-custom="<?php echo esc_attr( $args['ibamu_custom_data'] ); ?>" 126 name="ibamu_options[<?php echo esc_attr( $args['label_for'] ); ?>]" 127 value="<?php echo esc_attr( get_lawwwing_option('ibamu_widget_uuid') ); ?>" 128 placeholder="Plugin id" 129 class="regular-text" 130 type="text" 131 required> 132 </input> 133 <p class="description">Introduce el Plugin ID que encontrarás en tu panel de Lawwwing</p> 134 <?php 135 } 136 137 /** 138 * Add the top level menu page. 139 */ 140 function ibamu_options_page() { 141 add_menu_page( 142 'ibamu', 143 'Lawwwing', 144 'manage_options', 145 'ibamu', 146 'ibamu_options_page_html', 147 'https://cdn.lawwwing.com/static/assets/img/favicon/lawwwing/favicon-16x16.png' 148 ); 149 } 150 151 152 /** 153 * Register our ibamu_options_page to the admin_menu action hook. 154 */ 155 add_action('admin_menu', 'ibamu_options_page'); 156 157 /** 158 * Top level menu callback function 159 */ 160 function ibamu_options_page_html() { 161 // check user capabilities 162 if ( ! current_user_can('manage_options') ) { 163 return; 164 } 165 166 // add error/update messages 167 168 // check if the user have submitted the settings 169 // WordPress will add the "settings-updated" $_GET parameter to the url 170 if ( isset( $_GET['settings-updated'] ) ) { 171 // add settings saved message with the class of "updated" 172 add_settings_error('ibamu_messages', 'ibamu_message', esc_html(__('Guardado correctamente'), 'ibamu-plugin-domain'), 'updated'); 173 } 174 175 // show error/update messages 176 esc_html(settings_errors('ibamu_messages')); 177 ?> 178 <div class="lawwwing-wrapper"> 179 <div class="lawwwing-header" id="ibamu-header"> 180 <div class="lawwwing-logo"> 181 <a href="https://lawwwing.com/?utm_source=wordpress" title="Lawwwing" target="_blank"> 182 <img height="32" class="navbar-brand-dark rotate-logo" src="https://cdn.lawwwing.com/static/assets/img/logos/horizontal/logo_color2.png" alt="textos legales web"> 183 </a> 184 </div> 185 <div class="lawwwing-header-links"> 186 <div> 187 <a href="https://docs.lawwwing.com" title="Documentación" target="_blank"> <i class="fa-solid fa-book"></i> Documentación</a> 188 </div> 189 <div> 190 <a href="https://app.lawwwing.com/login/" title="Abrir dashboard" target="_blank"> <i class="fa-solid fa-bars-progress"></i> Dashboard</a> 191 </div> 192 <div> 193 <a href="https://lawwwing.com/contacto/" title="Contacto" target="_blank"> <i class="fa-solid fa-phone"></i> Contacto</a> 194 </div> 195 <div class="lawwwing-version"> 196 v1.3.0 197 </div> 198 </div> 199 </div> 200 <div class="lawwwing-content"> 201 <div class="lawwwing-title"> 202 <h1>Adapta <u class="tertiary">Lawwwing</u> a tus necesidades</h1> 203 <h2>Actualiza en <strong>5 minutos</strong> y <strong>para siempre</strong> la legalidad de tu web con nuestro plugin</h2> 204 <h4>Escoge el plan que mejor se adapte a tu negocio</h4> 205 </div> 206 207 <div class="lawwwing-plan-cards"> 208 <div class="lawwwing-plan-card"> 209 <div class="lawwwing-plan-card-top"> 210 <div> 211 <h3 class="lawwwing-primary lawwwing-plan-name">STARTER</h3> 212 <p class="lawwwing-plan-subtitle">Para webs informativas y blogs sin venta online</p> 213 </div> 214 </div> 215 <div class="lawwwing-plan-card-bottom"> 216 <div class="lawwwing-plan-card-bottom-left"> 217 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Banner de cookies</p> 218 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Aviso legal</p> 219 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Política de privacidad y cookies</p> 220 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>Términos y Condiciones</p> 221 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Cláusulas de consentimiento</p> 222 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Actualizaciones automáticas</p> 223 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Soporte básico</p> 224 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Derechos de usuarios</p> 225 </div> 226 <div class="lawwwing-plan-card-bottom-right"> 227 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>2 Idiomas</p> 228 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Escaneo semanal</p> 229 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Google Consent Mode v2</p> 230 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Microsoft UET Consent Mode</p> 231 232 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>Métricas de consentimiento</p> 233 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>IAB TCF v2.2</p> 234 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>Lawwwing SOS</p> 235 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>Integración de tu marca</p> 236 </div> 237 </div> 238 <div class="lawwwing-plans-wrapper"> 239 <div class="lawwwing-plan"> 240 <h3 class="lawwwing-plan-price">11€<span class="lawwwing-plan-period">/mes</span></h3> 241 </div> 242 <p>o</p> 243 <div class="lawwwing-plan discount"> 244 <h3 class="lawwwing-plan-price">99€<span class="lawwwing-plan-period">/año</span></h3> 245 <div class="lawwwing-plan-discount">-25%</div> 246 </div> 247 </div> 248 <div class="lawwwing-button-wrapper"> 249 <a href="https://lawwwing.com/signup/?utm_source=wordpress&utm_campaign=plan-button" target="_blank" class="button-solid secondary">Empezar</a> 250 </div> 251 </div> 252 253 <div class="lawwwing-plan-card"> 254 <div class="lawwwing-plan-card-top"> 255 <div> 256 <h3 class="lawwwing-primary lawwwing-plan-name">GROWTH</h3> 257 <p class="lawwwing-plan-subtitle">Para tiendas online y webs con venta de productos o servicios</p> 258 </div> 259 </div> 260 <div class="lawwwing-plan-card-bottom"> 261 <div class="lawwwing-plan-card-bottom-left"> 262 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Banner de cookies</p> 263 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Aviso legal</p> 264 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Política de privacidad y cookies</p> 265 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Términos y Condiciones</p> 266 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Cláusulas de consentimiento</p> 267 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Actualizaciones automáticas</p> 268 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Soporte básico</p> 269 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Derechos de usuarios</p> 270 </div> 271 <div class="lawwwing-plan-card-bottom-right"> 272 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>2 Idiomas</p> 273 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Escaneo semanal</p> 274 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Google Consent Mode v2</p> 275 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Microsoft UET Consent Mode</p> 276 277 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>Métricas de consentimiento</p> 278 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>IAB TCF v2.2</p> 279 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>Lawwwing SOS</p> 280 <p class="lawwwing-bullet-element"><i class="fas fa-circle-xmark"></i>Integración de tu marca</p> 281 </div> 282 </div> 283 <div class="lawwwing-plans-wrapper"> 284 <div class="lawwwing-plan"> 285 <h3 class="lawwwing-plan-price">16€<span class="lawwwing-plan-period">/mes</span></h3> 286 </div> 287 <p>o</p> 288 <div class="lawwwing-plan discount"> 289 <h3 class="lawwwing-plan-price">149€<span class="lawwwing-plan-period">/año</span></h3> 290 <div class="lawwwing-plan-discount">-25%</div> 291 </div> 292 </div> 293 <div class="lawwwing-button-wrapper"> 294 <a href="https://lawwwing.com/signup/?utm_source=wordpress&utm_campaign=plan-button" target="_blank" class="button-solid secondary">Empezar</a> 295 </div> 296 </div> 297 298 <div class="lawwwing-plan-card"> 299 <div class="lawwwing-plan-card-top"> 300 <div> 301 <h3 class="lawwwing-primary lawwwing-plan-name">PROFESSIONAL</h3> 302 <p class="lawwwing-plan-subtitle">Pensado para los que buscan un nivel más avanzado de servicios y soporte</p> 303 </div> 304 </div> 305 <div class="lawwwing-plan-card-bottom"> 306 <div class="lawwwing-plan-card-bottom-left"> 307 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Banner de cookies</p> 308 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Aviso legal</p> 309 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Política de privacidad y cookies</p> 310 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Términos y Condiciones</p> 311 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Cláusulas de consentimiento</p> 312 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Actualizaciones automáticas</p> 313 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Soporte personalizado</p> 314 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Derechos de usuarios</p> 315 </div> 316 <div class="lawwwing-plan-card-bottom-right"> 317 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Todos los idiomas</p> 318 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Escaneo <u>diario</u></p> 319 320 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Google Consent Mode v2</p> 321 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Microsoft UET Consent Mode</p> 322 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Métricas de consentimiento</p> 323 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>IAB TCF v2.2</p> 324 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Lawwwing SOS</p> 325 <p class="lawwwing-bullet-element"><i class="fas fa-check-circle"></i>Integración de tu marca</p> 326 </div> 327 </div> 328 <div class="lawwwing-plans-wrapper"> 329 <div class="lawwwing-plan"> 330 <h3 class="lawwwing-plan-price">32€<span class="lawwwing-plan-period">/mes</span></h3> 331 </div> 332 <p>o</p> 333 <div class="lawwwing-plan discount"> 334 <h3 class="lawwwing-plan-price">300€<span class="lawwwing-plan-period">/año</span></h3> 335 <div class="lawwwing-plan-discount">-25%</div> 336 </div> 337 </div> 338 <div class="lawwwing-button-wrapper"> 339 <a href="https://lawwwing.com/signup/?utm_source=wordpress&utm_campaign=plan-button" target="_blank" class="button-solid secondary">Empezar</a> 340 </div> 341 </div> 342 </div> 343 344 <div class="lawwwing-configuration-wrapper"> 345 <div class="lawwwing-configuration-title"> 346 <h1 class="">Configuración</h1> 347 </div> 348 <div class="lawwwing-configuration-columns-wrapper"> 349 <div class="lawwwing-configuration-column"> 350 <p class="lawwwing-configuration-column-description"> 351 Para <strong>configurar</strong> el plugin necesitarás <strong>rellenar el formulario</strong> con el "plugin id" que encontrarás en tu <a class="ibamu-url" href="https://lawwwing.com/signup/" target="_blank">panel de Lawwwing.</a> 352 </p> 353 <form class="lawwwing-configuration-form-input" action="options.php" method="post"> 354 <?php 355 esc_html(settings_fields('ibamu')); 356 esc_html(do_settings_sections('ibamu')); 357 esc_html(submit_button(__('Guardar', 'ibamu-plugin-domain'), 'primary', 'submit', 'true', array( 'data-style' => 'lw-custom-submit' ))); 358 ?> 359 </form> 360 </div> 361 <hr> 362 <div class="lawwwing-configuration-column"> 363 <ul> 364 <li>Regístrate en <a class="ibamu-url" href="https://lawwwing.com/?utm_source=wordpress" target="_blank">https://lawwwing.com/</a> para obtener <strong>tu clave</strong></li> 365 <li>Instala Lawwwing de forma gratuita</li> 366 <li>Personaliza el <strong>comportamiento y diseño del plugin</strong> en tu panel de usuario</li> 367 <li>Elige uno de <strong>nuestros planes</strong> para garantizar el cumplimiento normativo</li> 368 <li>Escanearemos semanalmente tu web para asegurar que <strong>siempre cumple con la normativa</strong></li> 369 </ul> 370 <div class="lawwwing-configuration-badges"> 371 <img src="https://cdn.lawwwing.com/media/catalogue/files/2025/01/iab_logo_registered_cmp_base.webp" height="80"> 372 <img src="https://cdn.lawwwing.com/media/catalogue/files/2025/01/google-cmp-badge.svg" height="100"> 373 <img src="https://cdn.lawwwing.com/media/catalogue/files/2025/01/uet-consent-mode.png" height="100"> 374 </div> 375 </div> 376 </div> 377 </div> 378 </div> 379 </div> 380 <?php 381 } 382 383 /** 384 * Enqueue cookie-widget script 385 */ 386 add_action('wp_enqueue_scripts', 'lawwwing_include_plugin', 1); 387 function lawwwing_include_plugin() { 388 $plugin_id = get_lawwwing_option("ibamu_widget_uuid"); 389 $base_script = "https://cdn.lawwwing.com/widgets/current/{$plugin_id}/cookie-widget.min.js"; 390 wp_enqueue_script("lawwwing-plugin", $base_script, "", "1.3.0"); 391 } 392 393 function add_lawwwing_data_arguments($tag, $handle) { 394 if ( 'lawwwing-plugin' !== $handle ) 395 return $tag; 396 397 $plugin_id = get_lawwwing_option("ibamu_widget_uuid"); 398 return str_replace(' src', " data-lwid=\"{$plugin_id}\" src", $tag); 399 } 400 add_filter('script_loader_tag', 'add_lawwwing_data_arguments', 1, 2); 401 402 /** 403 * WPRocket exclude script from minification 404 * See: https://docs.wp-rocket.me/article/976-exclude-files-from-defer-js#exclude-files-and-domains 405 */ 406 add_filter('rocket_defer_inline_exclusions', function($inline_exclusions_list) { 407 $inline_exclusions_list[] = 'cdn.lawwwing.com'; 408 return $inline_exclusions_list; 409 }); 410 411 add_filter('rocket_excluded_inline_js_content', function($inline_exclusions_list) { 412 $inline_exclusions_list[] = 'cdn.lawwwing.com'; 413 return $inline_exclusions_list; 414 }); 415 416 add_filter('rocket_minify_excluded_external_js', function($excluded_external_js) { 417 $excluded_external_js[] = 'cdn.lawwwing.com'; 418 return $excluded_external_js; 419 }); 420 421 /** 422 * SiteGround Optimizer exclude script from combination 423 * See: https://wordpress.org/plugins/sg-cachepress/ 424 */ 425 add_filter( 'sgo_javascript_combine_excluded_external_paths', 'lawwwing_js_combine_exclude_external_script' ); 426 function lawwwing_js_combine_exclude_external_script( $exclude_list ) { 427 $exclude_list[] = 'cdn.lawwwing.com'; 428 return $exclude_list; 47 if (is_plugin_active('wp-consent-api/wp-consent-api.php')) { 48 require_once( plugin_dir_path( __FILE__ ) . 'integrations/wp_consent_api.php' ); 429 49 } 430 50 -
ibamu/trunk/readme.txt
r3287718 r3292484 6 6 Requires PHP: 5.2.4 7 7 Tested up to: 6.8.1 8 Stable tag: 1. 3.08 Stable tag: 1.4.0 9 9 License: GPLv2 or later 10 10 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 28 28 - **🥇** **IAB TCF v2.2**: Cumplimos con los estándares del IAB TCF para garantizar un consentimiento publicitario sólido y transparente. 29 29 - **🥇** **CMP Certificado por Google**: Somos un socio certificado por Google en la gestión de consentimiento. 30 - **🛠️** **Soporte técnico**: Si tienes dudas, nuestro equipo de soporte te ayudará a resolverlas 31 - **✅** **WP Consent Api** 30 32 31 33 **CENTRATE EN TU NEGOCIO**, Nosotros nos encargamos de los temas legales. … … 72 74 Puedes contactar con nosotros en [hola@lawwwing.com](mailto:hola@lawwwing.com) o llamando al +34644628995. 73 75 74 Consulta nuestra documentación en [https:// lawwwing.com/docs/](https://lawwwing.com/docs/).76 Consulta nuestra documentación en [https://docs.lawwwing.com](https://docs.lawwwing.com). 75 77 76 78 == Installation == … … 127 129 128 130 Lawwwing es compatible con todo tipo de webs. 131 132 **¿Está Lawwwing integrado con WP Consent API?** 133 134 Sí, Lawwwing está totalmente integrado con WP Consent API. El consentimiento de los usuarios se transmitirá automáticamente a [WP Consent API](https://wordpress.org/plugins/wp-consent-api/). 129 135 130 136 … … 145 151 == Changelog == 146 152 153 = 1.4.0 = 154 * WP Consent API integration 155 147 156 = 1.3.0 = 148 157 * Tested up wp 6.8.1 … … 420 429 = 1.3.0 = 421 430 * Tested up wp 6.8.1 431 432 = 1.4.0 = 433 * WP Consent API integration
Note: See TracChangeset
for help on using the changeset viewer.