PATH:
home
/
letacommog
/
lenazen
/
wp-content
/
themes
/
Avada
/
includes
<?php /** * Handler for contact pages. * * @author ThemeFusion * @copyright (c) Copyright by ThemeFusion * @link http://theme-fusion.com * @package Avada * @subpackage Core * @since 3.8 */ // Do not allow directly accessing this file. if ( ! defined( 'ABSPATH' ) ) { exit( 'Direct script access denied.' ); } /** * Handle contact pages. */ class Avada_Contact { /** * The recaptcha class instance * * @access public * @var bool|object */ public $re_captcha = false; /** * Do we have an error? (bool) * * @access public * @var bool */ public $has_error = false; /** * Contact name * * @access public * @var string */ public $name = ''; /** * Subject * * @access public * @var string */ public $subject = ''; /** * Email address * * @access public * @var string */ public $email = ''; /** * The message * * @access public * @var string */ public $message = ''; /** * Data privacy confirmation checkbox text. * * @access public * @var int */ public $data_privacy_confirmation = 0; /** * Has the email been sent? * * @access public * @var bool */ public $email_sent = false; /** * The class constructor. * * @access public */ public function __construct() { $this->init_recaptcha(); if ( isset( $_POST['submit'] ) ) { // WPCS: CSRF ok. $this->process_name(); $this->process_subject(); $this->process_email(); $this->process_message(); if ( Avada()->settings->get( 'contact_form_privacy_checkbox' ) ) { $this->process_data_privacy_confirmation(); } $this->process_recaptcha(); if ( ! $this->has_error ) { $this->send_email(); } } } /** * Setup ReCaptcha. * * @access private */ private function init_recaptcha() { $options = get_option( Avada::get_option_name() ); if ( $options['recaptcha_public'] && $options['recaptcha_private'] && ! function_exists( 'recaptcha_get_html' ) ) { if ( version_compare( PHP_VERSION, '5.3' ) >= 0 && ! class_exists( 'ReCaptcha' ) ) { require_once Avada::$template_dir_path . '/includes/recaptcha/src/autoload.php'; // We use a wrapper class to avoid fatal errors due to syntax differences on PHP 5.2. require_once Avada::$template_dir_path . '/includes/recaptcha/class-avada-recaptcha.php'; // Instantiate ReCaptcha object. $re_captcha_wrapper = new Avada_ReCaptcha( $options['recaptcha_private'] ); $this->re_captcha = $re_captcha_wrapper->recaptcha; } } } /** * Check to make sure that the name field is not empty. * * @access private */ private function process_name() { $post_contact_name = ( isset( $_POST['contact_name'] ) ) ? sanitize_text_field( wp_unslash( $_POST['contact_name'] ) ) : ''; // WPCS: CSRF ok. if ( '' === $post_contact_name || esc_attr__( 'Name (required)', 'Avada' ) === $post_contact_name ) { $this->has_error = true; } else { $this->name = $post_contact_name; } } /** * Subject field is not required. * * @access private */ private function process_subject() { $post_url = ( isset( $_POST['url'] ) ) ? sanitize_text_field( wp_unslash( $_POST['url'] ) ) : ''; // WPCS: CSRF ok. $this->subject = ( function_exists( 'stripslashes' ) ) ? stripslashes( $post_url ) : $post_url; } /** * Check to make sure sure that a valid email address is submitted. * * @access private */ private function process_email() { $email = ( isset( $_POST['email'] ) ) ? trim( sanitize_email( wp_unslash( $_POST['email'] ) ) ) : ''; // WPCS: CSRF ok. if ( '' === $email || esc_attr__( 'Email (required)', 'Avada' ) === $email ) { $this->has_error = true; } elseif ( false === filter_var( $email, FILTER_VALIDATE_EMAIL ) ) { $this->has_error = true; } else { $this->email = trim( $email ); } } /** * Check to make sure a message was entered. * * @access private */ private function process_message() { if ( function_exists( 'sanitize_textarea_field' ) ) { $message = ( isset( $_POST['msg'] ) ) ? sanitize_textarea_field( wp_unslash( $_POST['msg'] ) ) : ''; // WPCS: CSRF ok. } else { $message = ( isset( $_POST['msg'] ) ) ? wp_unslash( $_POST['msg'] ) : ''; // WPCS: CSRF ok sanitization ok. } if ( '' === $message || esc_attr__( 'Message', 'Avada' ) === $message ) { $this->has_error = true; } else { $this->message = ( function_exists( 'stripslashes' ) ) ? stripslashes( $message ) : $message; } } /** * Check privacy data checkbox. * * @since 5.5 * @access private * @return void */ private function process_data_privacy_confirmation() { $data_privacy_confirmation = ( isset( $_POST['data_privacy_confirmation'] ) ) ? sanitize_text_field( wp_unslash( $_POST['data_privacy_confirmation'] ) ) : 0; // WPCS: CSRF ok. if ( ! $data_privacy_confirmation ) { $this->has_error = true; } else { $this->data_privacy_confirmation = (int) $data_privacy_confirmation; } } /** * Check recaptcha. * * @access private */ private function process_recaptcha() { if ( $this->re_captcha ) { $re_captcha_response = null; // Was there a reCAPTCHA response? $post_recaptcha_response = ( isset( $_POST['g-recaptcha-response'] ) ) ? trim( wp_unslash( $_POST['g-recaptcha-response'] ) ) : ''; // WPCS: CSRF ok sanitization ok. $server_remote_addr = ( isset( $_SERVER['REMOTE_ADDR'] ) ) ? trim( wp_unslash( $_SERVER['REMOTE_ADDR'] ) ) : ''; // WPCS: sanitization ok. if ( $post_recaptcha_response && ! empty( $post_recaptcha_response ) ) { $re_captcha_response = $this->re_captcha->verify( $post_recaptcha_response, $server_remote_addr ); } // Check the reCaptcha response. if ( null == $re_captcha_response || ! $re_captcha_response->isSuccess() ) { $this->has_error = true; } } } /** * Send the email. * * @access private */ private function send_email() { $name = esc_html( $this->name ); $email = sanitize_email( $this->email ); $subject = wp_filter_kses( $this->subject ); $message = wp_filter_kses( $this->message ); $data_privacy_confirmation = ( $this->data_privacy_confirmation ) ? esc_html__( 'confirmed', 'Avada' ) : ''; if ( function_exists( 'stripslashes' ) ) { $subject = stripslashes( $subject ); $message = stripslashes( $message ); } $message = html_entity_decode( $message ); $email_to = Avada()->settings->get( 'email_address' ); /* translators: The name. */ $body = sprintf( esc_attr__( 'Name: %s', 'Avada' ), " $name \n\n" ); /* translators: The email. */ $body .= sprintf( esc_attr__( 'Email: %s', 'Avada' ), " $email \n\n" ); /* translators: The subject. */ $body .= sprintf( esc_attr__( 'Subject: %s', 'Avada' ), " $subject \n\n" ); /* translators: The comments. */ $body .= sprintf( esc_attr__( 'Message: %s', 'Avada' ), "\n$message \n\n" ); if ( Avada()->settings->get( 'contact_form_privacy_checkbox' ) ) { /* translators: The data privacy terms. */ $body .= sprintf( esc_attr__( 'Data Privacy Terms: %s', 'Avada' ), " $data_privacy_confirmation" ); } $headers = 'Reply-To: ' . $name . ' <' . $email . '>' . "\r\n"; wp_mail( $email_to, $subject, $body, $headers ); $this->email_sent = true; if ( $this->email_sent ) { $_POST['contact_name'] = ''; $_POST['email'] = ''; $_POST['url'] = ''; $_POST['msg'] = ''; $_POST['data_privacy_confirmation'] = 0; $this->name = ''; $this->email = ''; $this->subject = ''; $this->message = ''; $this->data_privacy_confirmation = 0; } } }
[+]
..
[-] class-fusion-builder-redux-options.php
[edit]
[-] class-avada-megamenu.php
[edit]
[-] wc-functions.php
[edit]
[-] class-avada-privacy-embeds.php
[edit]
[-] class-avada-template.php
[edit]
[+]
options
[-] class-avada-multiple-featured-images.php
[edit]
[-] class-avada-googlemap.php
[edit]
[-] fusion-functions.php
[edit]
[-] class-avada-nav-walker.php
[edit]
[-] fusion-shared-options.php
[edit]
[-] class-avada-migrate.php
[edit]
[+]
upgrade
[-] avada-functions.php
[edit]
[-] class-avada-breadcrumbs.php
[edit]
[-] class-avada-remote-installer.php
[edit]
[-] class-avada-contact.php
[edit]
[-] class-avada-sermon-manager.php
[edit]
[+]
importer
[-] class-avada-maintenance.php
[edit]
[-] class-avada-avadaredux.php
[edit]
[-] class-avada-admin.php
[edit]
[-] class-avada-blog.php
[edit]
[-] class-avada-nav-walker-megamenu.php
[edit]
[+]
metaboxes
[-] class-avada-head.php
[edit]
[+]
ls-skins
[-] class-avada-options-conditionals.php
[edit]
[-] class-avada-tgm-plugin-activation.php
[edit]
[-] class-fusion-builder-migrate.php
[edit]
[-] class-avada-social-sharing.php
[edit]
[-] class-fusion-builder-filters.php
[edit]
[+]
lib
[+]
typography
[-] class-avada-dynamic-css.php
[edit]
[-] class-avada-page-options.php
[edit]
[-] custom_functions.php
[edit]
[-] class-avada-options.php
[edit]
[-] avada-tgm.php
[edit]
[-] class-avada-portfolio.php
[edit]
[-] class-avada-upgrade.php
[edit]
[-] dynamic_css_helpers.php
[edit]
[-] class-avada-eventscalendar.php
[edit]
[-] class-avada-taxonomy-meta.php
[edit]
[-] class-avada-sidebars.php
[edit]
[-] class-fusion-gfonts-downloader.php
[edit]
[-] class-avada-widget-style.php
[edit]
[-] class-avada-admin-notices.php
[edit]
[-] class-avada-social-icons.php
[edit]
[-] class-avada-fonts.php
[edit]
[-] class-avada-scripts.php
[edit]
[-] class-avada-autoload.php
[edit]
[-] class-avada-social-icon.php
[edit]
[-] class-avada-woocommerce.php
[edit]
[-] class-avada-images.php
[edit]
[-] class-fusion-image-resizer.php
[edit]
[-] class-avada-system-status.php
[edit]
[-] class-avada-google-fonts.php
[edit]
[-] dynamic_css.php
[edit]
[+]
widget
[-] class-avada-helper.php
[edit]
[-] class-avada-layout.php
[edit]
[-] class-avada-megamenu-framework.php
[edit]
[-] class-avada-avadaredux-migration.php
[edit]
[-] class-avada-gravity-forms-tags-merger.php
[edit]
[-] deprecated.php
[edit]
[+]
admin-screens
[-] class-avada-layout-bbpress.php
[edit]
[-] class-avada-settings.php
[edit]
[-] class-avada-init.php
[edit]
[-] class-avada.php
[edit]
[-] class-fusion-builder-demos-importer.php
[edit]
[+]
plugins
[+]
recaptcha