Plugin Directory

Changeset 2927558


Ignore:
Timestamp:
06/18/2023 03:18:56 PM (3 years ago)
Author:
elementinvader
Message:

1.1.7

  • Contact Form added support Recaptcha V3
  • Improvements Recaptcha security
  • Logo widget added option change css option "filter" for logo image
  • Improvements contact form ajax loading indicator
  • added shortcode [eli_option_value], show option value in raw, from get_bloginfo(),get_option(),get_theme_mod();
Location:
elementinvader-addons-for-elementor
Files:
206 added
11 edited

Legend:

Unmodified
Added
Removed
  • elementinvader-addons-for-elementor/trunk/README.txt

    r2898568 r2927558  
    66Requires PHP: 5.6
    77Tested up to: 6.2
    8 Stable tag: 1.1.6
     8Stable tag: 1.1.7
    99License: GPLv2 or later
    1010License URI: http://www.gnu.org/licenses/gpl-2.0.html
     
    8585== Changelog ==
    8686
     87= 1.1.7 =
     88* Contact Form added support Recaptcha V3
     89* Improvements Recaptcha security
     90* Logo widget added option change css option "filter" for logo image
     91* Improvements contact form ajax loading indicator
     92* added shortcode [eli_option_value], show option value in raw, from get_bloginfo(),get_option(),get_theme_mod();
     93
    8794= 1.1.6 =
    8895* Improvements on multiple elements
  • elementinvader-addons-for-elementor/trunk/assets/css/widgets/contact_form.css

    r2898568 r2927558  
    185185            border-radius: 10px;
    186186    padding: 18px 47px;
     187    position: relative;
     188}
     189
     190.elementinvader_contact_form .elementinvader_addons_for_elementor_f button .fa-custom-ajax-indicator {
     191    top: 50%;
     192    margin-top: -7px !important;
    187193}
    188194
  • elementinvader-addons-for-elementor/trunk/assets/js/main.js

    r2863668 r2927558  
    4545                    if(typeof data.redirect !='undefined' && data.redirect !='') {
    4646                        window.location = data.redirect;
     47                    } else {
     48                        if(typeof grecaptcha != 'undefined') {
     49                            if(jQuery("div.g-recaptcha").length > 0) {
     50                                grecaptcha.reset();
     51                            } else {
     52                                //There's no container, there should be no captcha
     53                            }
     54                        }
    4755                    }
    4856                   
     
    5260                   
    5361                } else {
    54                    
     62                    if(typeof grecaptcha != 'undefined') {
     63                        if(jQuery("div.g-recaptcha").length > 0) {
     64                            grecaptcha.reset();
     65                        } else {
     66                            //There's no container, there should be no captcha
     67                        }
     68                    }
    5569                }
    5670            }).always(function(data) {
  • elementinvader-addons-for-elementor/trunk/elementinvader-addons-for-elementor.php

    r2898568 r2927558  
    44 * Description: Ready to use Elementor Addon Elements like Menu, Forms, Maps, Newsletter with many styling options
    55 * Plugin URI:  https://elementinvader.com
    6  * Version:     1.1.6
     6 * Version:     1.1.7
    77 * Author:      ElementInvader
    88 * Author URI:  https://elementinvader.com
     
    1010 * Domain Path: /locale/
    1111 *
    12  * Elementor tested up to: 3.12.1
    13  * Elementor Pro tested up to: 3.13.1
     12 * Elementor tested up to: 3.13.1
     13 * Elementor Pro tested up to: 3.14.1
    1414 *
    1515 */
  • elementinvader-addons-for-elementor/trunk/modules/forms/ajax-handler.php

    r2863668 r2927558  
    175175    const FIELD_REQUIRED = 'required_field';
    176176    const INVALID_FORM = 'invalid_form';
     177    const RECAPTCHA_ERROR = 'recaptcha_error';
    177178    const SERVER_ERROR = 'server_error';
    178179    const SUBSCRIBER_ALREADY_EXISTS = 'subscriber_already_exists';
     
    188189            self::FIELD_REQUIRED => esc_html__( 'This field is required.', 'elementinvader-addons-for-elementor' ),
    189190            self::INVALID_FORM => esc_html__( 'There\'s something wrong. The form is invalid.', 'elementinvader-addons-for-elementor' ),
     191            self::RECAPTCHA_ERROR => esc_html__( 'Recaptcha is wrong, try reload page.', 'elementinvader-addons-for-elementor' ),
    190192            self::SERVER_ERROR => esc_html__( 'Server can\'t send emails, please use SMTP mail configuration.', 'elementinvader-addons-for-elementor' ),
    191193            self::SUBSCRIBER_ALREADY_EXISTS => esc_html__( 'Subscriber already exists.', 'elementinvader-addons-for-elementor' ),
     
    202204                    case 'required_field': $settings_id = 'required_field_message';
    203205                                break;
     206                    case 'recaptcha_error': $settings_id = 'recaptcha_error';
     207                                break;
    204208                    case 'invalid_form': $settings_id = 'invalid_message';
    205209                                break;
     
    227231            $post = sanitize_post($_POST);
    228232            if(!isset($post['element_id']) || empty($post['element_id'])){
    229                 $ajax_output['code'] = $this->INVALID_FORM;
     233                $ajax_output['code'] = self::INVALID_FORM;
    230234                $ajax_output['message'] = $this->generate_alert(esc_html__( 'Element id not found.', 'elementinvader-addons-for-elementor' ),'elementinvader_addons_for_elementor_alert-danger');
    231235                $this->output($ajax_output);
     
    249253
    250254            if(!$form_data){
    251                 $ajax_output['code'] = $this->INVALID_FORM;
     255                $ajax_output['code'] = self::INVALID_FORM;
    252256                $ajax_output['message'] = $this->generate_alert($this->get_default_message( self::INVALID_FORM, $form_data ),'elementinvader_addons_for_elementor_alert-danger');
    253257                $this->output($ajax_output);
     
    260264
    261265            /* start recaptcha */
    262             if(isset($post['g-recaptcha-response']))
    263                 if($this->valid_recaptcha($post['g-recaptcha-response'], $form_data['recaptcha_secret_key']) === TRUE)
     266            if(isset($form_data['recaptcha_secret_key']) && !empty($form_data['recaptcha_secret_key']))
     267                if(isset($post['g-recaptcha-response']) && $this->valid_recaptcha($post['g-recaptcha-response'], $form_data['recaptcha_secret_key']) === TRUE)
    264268                {
    265269                    /* success */
     
    267271                else
    268272                {
    269                     $ajax_output['code'] = $this->INVALID_FORM;
    270                     $ajax_output['message'] = $this->generate_alert($this->get_default_message( self::INVALID_FORM, $form_data ),'elementinvader_addons_for_elementor_alert-danger');
     273                    $ajax_output['code'] = self::RECAPTCHA_ERROR;
     274                    $ajax_output['message'] = $this->generate_alert($this->get_default_message( self::RECAPTCHA_ERROR, $form_data ),'elementinvader_addons_for_elementor_alert-danger');
    271275                    $this->output($ajax_output);
    272276                }
     
    533537               return true;
    534538            } else {
    535                 $response = json_decode($response);
     539                $response = json_decode($response['body']);
    536540                return $response->success;
    537541            }
  • elementinvader-addons-for-elementor/trunk/shortcodes/shortcodes-init.php

    r2863668 r2927558  
    33// Shortcodes
    44require_once plugin_dir_path( dirname( __FILE__ ) ) . 'shortcodes/shortcode-newsletter.php';
     5require_once plugin_dir_path( dirname( __FILE__ ) ) . 'shortcodes/shortcode-eli_option_value.php';
    56
    67function eli_shortcodes_view($view_file = '', $element = '', $print = false)
  • elementinvader-addons-for-elementor/trunk/views/form/fields/recaptcha.php

    r2606763 r2927558  
    2323    global $elementinvader_addons_for_elementor_recaptcha_init;
    2424    global $elementinvader_addons_for_elementor_recaptcha_called;
    25     if(!isset($elementinvader_addons_for_elementor_recaptcha_called))
     25
     26    if(isset($settings['recaptcha_version_3']) &&  $settings['recaptcha_version_3'] == 'yes') {
     27      ?>
     28          <div class="elementinvader_addons_for_elementor_alert elementinvader_addons_for_elementor_alert-info" role="alert">
     29            <?php esc_html_e( 'Recaptcha version 3 not use accept checkbox, you can remove it field', 'elementinvader-addons-for-elementor' );?>
     30          </div></div> 
     31      <?php
     32      return false;
     33    } elseif(!isset($elementinvader_addons_for_elementor_recaptcha_called))
    2634    {
    2735        echo "<script src='https://www.google.com/recaptcha/api.js?onload=CaptchaCallback_".$this->get_id_int()."&amp;render=explicit'></script>";
     
    3139            <div class="elementinvader_addons_for_elementor_alert elementinvader_addons_for_elementor_alert-info" role="alert">
    3240              <?php esc_html_e( 'Only one field can be recaptcha', 'elementinvader-addons-for-elementor' );?>
    33             </div>
     41            </div> </div>
    3442        <?php
    3543        return false;
  • elementinvader-addons-for-elementor/trunk/views/form/widget_layout.php

    r2863668 r2927558  
    6464                                    <span class="elementor-button-text"><?php echo $settings['button_text']; ?></span>
    6565                            <?php endif; ?>
     66                            <i class="fa fa-spinner fa-spin fa-custom-ajax-indicator ajax-indicator-masking " style="display: none;"></i>
    6667                        </span>
    67                         <i class="fa fa-spinner fa-spin fa-custom-ajax-indicator ajax-indicator-masking " style="display: none;"></i>
    6868                    </button>
    6969                </div>
     
    7272                <div class="elementinvader_addons_for_elementor_f_box_alert"></div>
    7373            <?php endif;?>
     74
     75            <?php if(isset($settings['recaptcha_version_3']) && $settings['recaptcha_version_3'] == 'yes'):?>
     76                <input type="hidden" name="g-recaptcha-response" id="recaptcha_called_v3_<?php echo esc_html($this->get_id_int());?>">
     77                <script src='https://www.google.com/recaptcha/api.js?render=<?php echo $settings['recaptcha_site_key'];?>'></script>
     78                <script>
     79                (function(){
     80                    grecaptcha.ready(function() {
     81                        grecaptcha.execute('<?php echo $settings['recaptcha_site_key'];?>', {action: 'submit'}).then(function(token) {
     82                            document.getElementById('recaptcha_called_v3_<?php echo esc_html($this->get_id_int());?>').value = token;
     83                        });
     84                    });
     85
     86                    // Reload token after form submit
     87                    document.querySelector('#elementinvader_addons_for_elementor_<?php echo esc_html($this->get_id_int());?> form.elementinvader_addons_for_elementor_f').addEventListener('submit', function(e) {
     88                        e.preventDefault();
     89                        grecaptcha.execute('<?php echo $settings['recaptcha_site_key'];?>', {action: 'submit'}).then(function(token) {
     90                            document.getElementById('recaptcha_called_v3_<?php echo esc_html($this->get_id_int());?>').value = token;
     91                        });
     92                    });
     93                })();
     94                </script>
     95            <?php endif;?>
    7496        </form>
    7597    </div>
  • elementinvader-addons-for-elementor/trunk/widgets/contact-form.php

    r2898568 r2927558  
    960960        );
    961961
     962       
     963        $this->add_control(
     964            'recaptcha_version_3',
     965            [
     966                'label' => esc_html__('Recaptcha Version 3', 'elementinvader-addons-for-elementor'),
     967                'description' => esc_html__('Activate if you use Recaptcha Version 3 (note, on version 3, accept Recaptcha checkbox is not visible)', 'elementinvader-addons-for-elementor'),
     968                'type' => Controls_Manager::SWITCHER,
     969                'label_on' => esc_html__('Yes', 'elementinvader-addons-for-elementor'),
     970                'label_off' => esc_html__('No', 'elementinvader-addons-for-elementor'),
     971                'return_value' => 'yes',
     972                'default' => '',
     973            ]
     974        );
     975
    962976        $this->add_control(
    963977            'important_note_smtp',
     
    968982            ]
    969983        );
     984
    970985
    971986
  • elementinvader-addons-for-elementor/trunk/widgets/logo.php

    r2863668 r2927558  
    201201        );
    202202
    203         $this->generate_renders_tabs($selectors, 'logo_section_img_dynamic',['margin','align','background','border','border_radius','padding','shadow','transition','image_size_control']);
     203        $this->generate_renders_tabs($selectors, 'logo_section_img_dynamic',['margin','align','background','border','border_radius','padding','shadow','transition','image_size_control','css_filters']);
    204204
    205205        $this->end_controls_section();
  • elementinvader-addons-for-elementor/trunk/widgets/menu.php

    r2898568 r2927558  
    15911591
    15921592        $menu_id = $settings['menu'];
     1593
    15931594        if(empty($menu_id)) {
     1595            $menu_id = NULL;
    15941596            $locations = get_nav_menu_locations();
    1595             if(!empty($locations)) {
    1596                 $menu_id = current($locations);
     1597            if(isset($locations['main_menu'])) {
     1598                $menu_id = $locations['main_menu'];
     1599            }
     1600   
     1601            if (empty($menu_id)) {
     1602                if($menus = wp_get_nav_menus())
     1603                    $menu_id =(int)$menus[0]->term_id;
    15971604            }
    15981605        }
     1606
    15991607        if(empty($menu_id)) {
    16001608            $menu_id = array_keys($menus)[0];
Note: See TracChangeset for help on using the changeset viewer.