Plugin Directory

Changeset 3292484


Ignore:
Timestamp:
05/13/2025 10:48:11 AM (11 months ago)
Author:
ibamu
Message:

bump to 1.4.0

Location:
ibamu
Files:
20 added
4 edited
1 copied

Legend:

Unmodified
Added
Removed
  • ibamu/tags/1.4.0/ibamu.php

    r3287718 r3292484  
    77Plugin URI: https://lawwwing.com/
    88Description: 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.0
     9Version: 1.4.0
    1010Author: ibamu
    1111Author URI: https://profiles.wordpress.org/ibamu/
     
    1414Text Domain: Lawwwing
    1515*/
    16 
    1716if (! defined('ABSPATH')){
    1817    die;
    1918}
     19
     20// Define plugin constants
     21define('LW_PLUGIN_NAME', 'Lawwwing');
     22define('LW_PLUGIN_REFERENCE', 'lawwwing');
     23define('LW_PLUGIN_VERSION', '1.4.0');
    2024
    2125// First, I define a constant to see if site is network activated
     
    3135}
    3236
    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.
     38require_once( plugin_dir_path( __FILE__ ) . 'options/options.php' );
    5439
    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.
     41require_once( plugin_dir_path( __FILE__ ) . 'installation/install.php' );
    6742
    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
     44require_once( plugin_dir_path( __FILE__ ) . 'integrations/wp_rocket.php' );
     45require_once( plugin_dir_path( __FILE__ ) . 'integrations/wp_siteground.php' );
    8146
    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;
     47if (is_plugin_active('wp-consent-api/wp-consent-api.php')) {
     48    require_once( plugin_dir_path( __FILE__ ) . 'integrations/wp_consent_api.php' );
    42949}
    43050
  • ibamu/tags/1.4.0/readme.txt

    r3287718 r3292484  
    66Requires PHP: 5.2.4
    77Tested up to: 6.8.1
    8 Stable tag: 1.3.0
     8Stable tag: 1.4.0
    99License: GPLv2 or later
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    2828- **🥇** **IAB TCF v2.2**: Cumplimos con los estándares del IAB TCF para garantizar un consentimiento publicitario sólido y transparente.
    2929- **🥇** **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**
    3032
    3133**CENTRATE EN TU NEGOCIO**, Nosotros nos encargamos de los temas legales.
     
    7274Puedes contactar con nosotros en [hola@lawwwing.com](mailto:hola@lawwwing.com) o llamando al +34644628995.
    7375
    74 Consulta nuestra documentación en [https://lawwwing.com/docs/](https://lawwwing.com/docs/).
     76Consulta nuestra documentación en [https://docs.lawwwing.com](https://docs.lawwwing.com).
    7577
    7678== Installation ==
     
    127129
    128130Lawwwing es compatible con todo tipo de webs.
     131
     132**¿Está Lawwwing integrado con WP Consent API?**
     133
     134Sí, 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/).
    129135
    130136
     
    145151== Changelog ==
    146152
     153= 1.4.0 =
     154* WP Consent API integration
     155
    147156= 1.3.0 =
    148157* Tested up wp 6.8.1
     
    420429= 1.3.0 =
    421430* Tested up wp 6.8.1
     431
     432= 1.4.0 =
     433* WP Consent API integration
  • ibamu/trunk/ibamu.php

    r3287718 r3292484  
    77Plugin URI: https://lawwwing.com/
    88Description: 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.0
     9Version: 1.4.0
    1010Author: ibamu
    1111Author URI: https://profiles.wordpress.org/ibamu/
     
    1414Text Domain: Lawwwing
    1515*/
    16 
    1716if (! defined('ABSPATH')){
    1817    die;
    1918}
     19
     20// Define plugin constants
     21define('LW_PLUGIN_NAME', 'Lawwwing');
     22define('LW_PLUGIN_REFERENCE', 'lawwwing');
     23define('LW_PLUGIN_VERSION', '1.4.0');
    2024
    2125// First, I define a constant to see if site is network activated
     
    3135}
    3236
    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.
     38require_once( plugin_dir_path( __FILE__ ) . 'options/options.php' );
    5439
    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.
     41require_once( plugin_dir_path( __FILE__ ) . 'installation/install.php' );
    6742
    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
     44require_once( plugin_dir_path( __FILE__ ) . 'integrations/wp_rocket.php' );
     45require_once( plugin_dir_path( __FILE__ ) . 'integrations/wp_siteground.php' );
    8146
    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;
     47if (is_plugin_active('wp-consent-api/wp-consent-api.php')) {
     48    require_once( plugin_dir_path( __FILE__ ) . 'integrations/wp_consent_api.php' );
    42949}
    43050
  • ibamu/trunk/readme.txt

    r3287718 r3292484  
    66Requires PHP: 5.2.4
    77Tested up to: 6.8.1
    8 Stable tag: 1.3.0
     8Stable tag: 1.4.0
    99License: GPLv2 or later
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    2828- **🥇** **IAB TCF v2.2**: Cumplimos con los estándares del IAB TCF para garantizar un consentimiento publicitario sólido y transparente.
    2929- **🥇** **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**
    3032
    3133**CENTRATE EN TU NEGOCIO**, Nosotros nos encargamos de los temas legales.
     
    7274Puedes contactar con nosotros en [hola@lawwwing.com](mailto:hola@lawwwing.com) o llamando al +34644628995.
    7375
    74 Consulta nuestra documentación en [https://lawwwing.com/docs/](https://lawwwing.com/docs/).
     76Consulta nuestra documentación en [https://docs.lawwwing.com](https://docs.lawwwing.com).
    7577
    7678== Installation ==
     
    127129
    128130Lawwwing es compatible con todo tipo de webs.
     131
     132**¿Está Lawwwing integrado con WP Consent API?**
     133
     134Sí, 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/).
    129135
    130136
     
    145151== Changelog ==
    146152
     153= 1.4.0 =
     154* WP Consent API integration
     155
    147156= 1.3.0 =
    148157* Tested up wp 6.8.1
     
    420429= 1.3.0 =
    421430* 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.