Current Path : /storage/v11800/sahityaonline/public_html/wp-content/plugins/metform/widgets/recaptcha/ |
Linux v11800 5.3.0-1023-aws #25~18.04.1-Ubuntu SMP Fri Jun 5 15:19:18 UTC 2020 aarch64
|
Current File : /storage/v11800/sahityaonline/public_html/wp-content/plugins/metform/widgets/recaptcha/recaptcha.php |
<?php
namespace Elementor;
defined( 'ABSPATH' ) || exit;
Class MetForm_Input_Recaptcha extends Widget_Base{
use \MetForm\Widgets\Widget_Notice;
public function get_name() {
return 'mf-recaptcha';
}
public function get_title() {
return esc_html__( 'reCAPTCHA', 'metform' );
}
public function show_in_panel() {
return 'metform-form' == get_post_type();
}
public function get_categories() {
return [ 'metform' ];
}
public function get_keywords() {
return ['metform', 'input', 'captcha', 'recaptcha', 'google'];
}
public function get_script_depends() {
return ['recaptcha-support'];
}
public function get_help_url() {
return 'https://wpmet.com/doc/form-widgets/#-recaptcha-';
}
protected function register_controls() {
$this->start_controls_section(
'content_section',
[
'label' => esc_html__( 'Content', 'metform' ),
'tab' => Controls_Manager::TAB_CONTENT,
]
);
$this->add_control(
'mf_recaptcha_notice_info',
[
'label' => esc_html__( 'reCAPTCHA configure: ', 'metform' ),
'type' => Controls_Manager::RAW_HTML,
'raw' => \MetForm\Utils\Util::kses( 'Turn on recaptcha from form setting.<br>Then you have to must configure recaptcha site and secret key from MetForm -> Settings <a target="__blank" href="'.get_dashboard_url().'admin.php?page=metform-menu-settings'.'">from here.</a><br><a target="__blank" href="https://help.wpmet.com/docs/form-settings/recaptcha-integration">See Documentation.</a>', 'metform-pro' ),
'content_classes' => 'mf-input-map-api-notice',
]
);
$this->add_control(
'mf_recaptcha_class_name',
[
'label' => esc_html__( 'Add Extra Class Name : ', 'metform' ),
'type' => Controls_Manager::TEXT,
]
);
$this->end_controls_section();
$this->start_controls_section(
'style_section',
[
'label' => esc_html__( 'Label', 'metform' ),
'tab' => Controls_Manager::TAB_STYLE,
]
);
$this->add_control(
'mf_input_warning_text_color',
[
'label' => esc_html__( 'Warning Text Color:', 'metform' ),
'type' => Controls_Manager::COLOR,
'global' => [
'default' => \Elementor\Core\Kits\Documents\Tabs\Global_Colors::COLOR_PRIMARY,
],
'default' => '#f00',
'selectors' => [
'{{WRAPPER}} .mf-error-message' => 'color: {{VALUE}}'
],
]
);
$this->add_group_control(
Group_Control_Typography::get_type(),
[
'name' => 'mf_input_warning_text_typography',
'label' => esc_html__( 'Warning Text Typography', 'metform' ),
'global' => [
'default' => \Elementor\Core\Kits\Documents\Tabs\Global_Typography::TYPOGRAPHY_PRIMARY,
],
'selector' => '{{WRAPPER}} .mf-error-message',
]
);
$this->end_controls_section();
$this->insert_pro_message();
}
protected function render($instance = []){
$settings = $this->get_settings_for_display();
extract($settings);
$render_on_editor = false;
$is_edit_mode = 'metform-form' === get_post_type() && \Elementor\Plugin::$instance->editor->is_edit_mode();
$configData = [
'message' => $errorMessage = isset($mf_input_validation_warning_message) ? !empty($mf_input_validation_warning_message) ? $mf_input_validation_warning_message : __("reCAPTCHA is required.", 'metform') : __("reCAPTCHA is required.", 'metform'),
'required' => true,
];
$recaptcha_setting = \MetForm\Core\Admin\Base::instance()->get_settings_option();
$recaptcha_key_v2 = isset($recaptcha_setting['mf_recaptcha_site_key']) ? $recaptcha_setting['mf_recaptcha_site_key'] : '' ;
$recaptcha_key_v3 = isset($recaptcha_setting['mf_recaptcha_site_key_v3']) ? $recaptcha_setting['mf_recaptcha_site_key_v3'] : '';
$mf_recaptcha_type = ((isset($recaptcha_setting['mf_recaptcha_version']) && ($recaptcha_setting['mf_recaptcha_version'] != '')) ? $recaptcha_setting['mf_recaptcha_version'] : 'recaptcha-v2');
?>
<div class="mf-input-wrapper">
<?php
if($mf_recaptcha_type == 'recaptcha-v2') {
?>
<div
class="g-recaptcha <?php echo esc_attr( $mf_recaptcha_class_name ); ?>"
id="g-recaptcha"
data-sitekey="<?php echo esc_attr( $recaptcha_key_v2 ); ?>"
<?php if ( !$is_edit_mode ): ?>
data-callback="handleReCAPTCHA_${this.state.recaptcha_uid}"
data-expired-callback="handleReCAPTCHA_${this.state.recaptcha_uid}"
data-error-callback="handleReCAPTCHA_${this.state.recaptcha_uid}"
aria-invalid=${validation.errors['g-recaptcha-response'] ? 'true' : 'false'}
<?php endif; ?>
></div>
<?php if ( !$is_edit_mode ): ?>
<input type="hidden"
name="g-recaptcha-response"
className="mf-input mf-mobile-hidden"
value=${parent.getValue('g-recaptcha-response')}
ref=${el => parent.activateValidation(<?php echo json_encode($configData); ?>, el)}
/>
<${validation.ErrorMessage} errors=${validation.errors} name="g-recaptcha-response" as=${html`<span className="mf-error-message"></span>`} />
<?php else: ?>
<div class="attr-alert attr-alert-warning" style="display: none; margin-bottom: 0;">
<?php esc_html_e('reCAPTCHA will be shown on preview.', 'metform'); ?>
</div>
<?php endif; ?>
<?php
wp_enqueue_script('recaptcha-v2');
/**
* Add async and defer to 'recaptcha-v2' script loading tag.
*/
add_filter(
'script_loader_tag',
function( $tag, $handle ) {
// Check for the handle we used when enqueuing the script.
if ( 'recaptcha-v2' !== $handle ) {
return $tag;
}
// Add async and defer at the end of the opening script tag.
return str_replace( '></', ' async defer></', $tag );
},
20,
2
);
// wp_enqueue_script('recaptcha-v2');
}
if($mf_recaptcha_type == 'recaptcha-v3'){
?>
<div id="recaptcha_site_key_v3" data-sitekey="<?php echo esc_attr( $recaptcha_key_v3 ); ?>" class="recaptcha_site_key_v3 <?php echo esc_attr($mf_recaptcha_class_name); ?>">
<input type="hidden" class="g-recaptcha-response-v3" name="g-recaptcha-response-v3" />
</div>
<?php
if(('metform-form' == get_post_type() || 'page' == get_post_type()) && \Elementor\Plugin::$instance->editor->is_edit_mode()){
echo "<div class='attr-alert attr-alert-warning' style='margin-bottom: 0;'>".esc_html__('reCAPTCHA will be shown on preview.', 'metform')."</div>";
}
wp_enqueue_script('recaptcha-v3');
}
?>
</div>
<?php
}
}