From 7ccb5c0138abea95cd89ffb980bc80f59821c944 Mon Sep 17 00:00:00 2001 From: Nicola Peluchetti Date: Thu, 28 Nov 2024 20:01:11 +0400 Subject: [PATCH 1/6] Remove unneded Check [TMZ-202] --- modules/forms/classes/ajax-handler.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/modules/forms/classes/ajax-handler.php b/modules/forms/classes/ajax-handler.php index 81cb5e1b..5fb01abf 100644 --- a/modules/forms/classes/ajax-handler.php +++ b/modules/forms/classes/ajax-handler.php @@ -30,8 +30,8 @@ class Ajax_Handler { const NONCE_ACTION = 'ehp-form-submission'; public static function is_form_submitted() { + // we don't need to check referrer here as this is only to instantiate the required classes. return wp_doing_ajax() && - check_ajax_referer( self::NONCE_ACTION, 'nonce' ) && isset( $_POST['action'] ) && 'hello_plus_forms_lite_send_form' === $_POST['action']; } From 2de8c7330d7b2c8bb33f9f6c2035ab262f0ebfee Mon Sep 17 00:00:00 2001 From: Nicola Peluchetti Date: Thu, 28 Nov 2024 20:06:31 +0400 Subject: [PATCH 2/6] refactor --- modules/forms/actions/email.php | 5 ++-- modules/forms/classes/action-base.php | 1 + modules/forms/classes/form-record.php | 1 + .../{classes => components}/ajax-handler.php | 10 ++----- modules/forms/fields/field-base.php | 4 +-- modules/forms/fields/tel.php | 2 +- modules/forms/module.php | 30 +++---------------- modules/forms/widgets/form.php | 5 ++-- 8 files changed, 15 insertions(+), 43 deletions(-) rename modules/forms/{classes => components}/ajax-handler.php (96%) diff --git a/modules/forms/actions/email.php b/modules/forms/actions/email.php index da9b3da5..ab14310e 100644 --- a/modules/forms/actions/email.php +++ b/modules/forms/actions/email.php @@ -2,10 +2,9 @@ namespace HelloPlus\Modules\Forms\Actions; use Elementor\Controls_Manager; - -use HelloPlus\Modules\Forms\Classes\Ajax_Handler; use HelloPlus\Modules\Forms\Classes\Action_Base; use HelloPlus\Modules\Forms\Classes\Form_Record; +use HelloPlus\Modules\Forms\components\Ajax_Handler; use HelloPlus\Modules\Forms\Module; if ( ! defined( 'ABSPATH' ) ) { @@ -242,7 +241,7 @@ public function on_export( $element ) { /** * @param \HelloPlus\Modules\Forms\Classes\Form_Record $record - * @param \HelloPlus\Modules\Forms\Classes\Ajax_Handler $ajax_handler + * @param \HelloPlus\Modules\Forms\components\Ajax_Handler $ajax_handler */ public function run( $record, $ajax_handler ) { $settings = $record->get( 'form_settings' ); diff --git a/modules/forms/classes/action-base.php b/modules/forms/classes/action-base.php index bc654aec..c6ba8530 100644 --- a/modules/forms/classes/action-base.php +++ b/modules/forms/classes/action-base.php @@ -1,6 +1,7 @@ esc_html__( 'Your submission was successful.', 'hello-plus' ), diff --git a/modules/forms/fields/field-base.php b/modules/forms/fields/field-base.php index 8e664f33..bc7abc7e 100644 --- a/modules/forms/fields/field-base.php +++ b/modules/forms/fields/field-base.php @@ -30,9 +30,9 @@ public function get_id() { abstract public function render( $item, $item_index, $form ); - public function validation( $field, Classes\Form_Record $record, Classes\Ajax_Handler $ajax_handler ) {} + public function validation( $field, Classes\Form_Record $record, \HelloPlus\Modules\Forms\components\Ajax_Handler $ajax_handler ) {} - public function process_field( $field, Classes\Form_Record $record, Classes\Ajax_Handler $ajax_handler ) {} + public function process_field( $field, Classes\Form_Record $record, \HelloPlus\Modules\Forms\components\Ajax_Handler $ajax_handler ) {} public function add_assets_depends() { foreach ( $this->depended_scripts as $script ) { diff --git a/modules/forms/fields/tel.php b/modules/forms/fields/tel.php index dc16bd57..c19f7c83 100644 --- a/modules/forms/fields/tel.php +++ b/modules/forms/fields/tel.php @@ -27,7 +27,7 @@ public function render( $item, $item_index, $form ) { actions_registrar = new Form_Actions_Registrar(); $this->fields_registrar = new Form_Fields_Registrar(); - - // Ajax Handler - add_action( 'init', function () { - if ( Classes\Ajax_Handler::is_form_submitted() ) { - $this->add_component( 'ajax_handler', new Classes\Ajax_Handler() ); - - /** - * Hello+ form submitted. - * - * Fires when the form is submitted. This hook allows developers - * to add functionality after form submission. - * - * @param Module $this An instance of the form module. - * - * @since 1.0.0 - * - */ - do_action( 'hello_plus/forms/form_submitted', $this ); - } - } ); } } diff --git a/modules/forms/widgets/form.php b/modules/forms/widgets/form.php index f2da62ce..284c7ce1 100644 --- a/modules/forms/widgets/form.php +++ b/modules/forms/widgets/form.php @@ -8,12 +8,11 @@ use Elementor\Group_Control_Typography; use Elementor\Modules\DynamicTags\Module as TagsModule; use Elementor\Repeater; - -use HelloPlus\Modules\Forms\Classes\Ajax_Handler; +use HelloPlus\Includes\Utils; use HelloPlus\Modules\Forms\Classes\Form_Base; use HelloPlus\Modules\Forms\Classes\Render\Widget_Form_Render; +use HelloPlus\Modules\Forms\components\Ajax_Handler; use HelloPlus\Modules\Forms\Controls\Fields_Repeater; -use HelloPlus\Includes\Utils; use HelloPlus\Modules\Forms\Module; if ( ! defined( 'ABSPATH' ) ) { From e94c2a1c1a30ce94a64ba2f4081902eee0ec0b95 Mon Sep 17 00:00:00 2001 From: Nicola Peluchetti Date: Thu, 28 Nov 2024 20:07:47 +0400 Subject: [PATCH 3/6] namespaces --- modules/forms/actions/email.php | 2 +- modules/forms/classes/form-record.php | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/forms/actions/email.php b/modules/forms/actions/email.php index ab14310e..92b9d6a4 100644 --- a/modules/forms/actions/email.php +++ b/modules/forms/actions/email.php @@ -4,7 +4,7 @@ use Elementor\Controls_Manager; use HelloPlus\Modules\Forms\Classes\Action_Base; use HelloPlus\Modules\Forms\Classes\Form_Record; -use HelloPlus\Modules\Forms\components\Ajax_Handler; +use HelloPlus\Modules\Forms\Components\Ajax_Handler; use HelloPlus\Modules\Forms\Module; if ( ! defined( 'ABSPATH' ) ) { diff --git a/modules/forms/classes/form-record.php b/modules/forms/classes/form-record.php index 2c6d26bd..435473e5 100644 --- a/modules/forms/classes/form-record.php +++ b/modules/forms/classes/form-record.php @@ -2,7 +2,7 @@ namespace HelloPlus\Modules\Forms\Classes; use HelloPlus\Includes\Utils; -use HelloPlus\Modules\Forms\components\Ajax_Handler; +use HelloPlus\Modules\Forms\Components\Ajax_Handler; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly From db1191133fcdbcad3ace199eb8675a66c125256d Mon Sep 17 00:00:00 2001 From: Nicola Peluchetti Date: Thu, 28 Nov 2024 20:09:47 +0400 Subject: [PATCH 4/6] namespaces --- modules/forms/classes/action-base.php | 2 +- modules/forms/fields/field-base.php | 5 +++-- modules/forms/fields/tel.php | 3 ++- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/modules/forms/classes/action-base.php b/modules/forms/classes/action-base.php index c6ba8530..58b2b900 100644 --- a/modules/forms/classes/action-base.php +++ b/modules/forms/classes/action-base.php @@ -1,7 +1,7 @@ depended_scripts as $script ) { diff --git a/modules/forms/fields/tel.php b/modules/forms/fields/tel.php index c19f7c83..3cf30459 100644 --- a/modules/forms/fields/tel.php +++ b/modules/forms/fields/tel.php @@ -2,6 +2,7 @@ namespace HelloPlus\Modules\Forms\Fields; use HelloPlus\Modules\Forms\Classes; +use HelloPlus\Modules\Forms\Components\Ajax_Handler; if ( ! defined( 'ABSPATH' ) ) { exit; // Exit if accessed directly @@ -27,7 +28,7 @@ public function render( $item, $item_index, $form ) { Date: Thu, 28 Nov 2024 20:11:22 +0400 Subject: [PATCH 5/6] namespaces --- modules/forms/actions/email.php | 4 ---- 1 file changed, 4 deletions(-) diff --git a/modules/forms/actions/email.php b/modules/forms/actions/email.php index 92b9d6a4..b06d3cb9 100644 --- a/modules/forms/actions/email.php +++ b/modules/forms/actions/email.php @@ -239,10 +239,6 @@ public function on_export( $element ) { return $element; } - /** - * @param \HelloPlus\Modules\Forms\Classes\Form_Record $record - * @param \HelloPlus\Modules\Forms\components\Ajax_Handler $ajax_handler - */ public function run( $record, $ajax_handler ) { $settings = $record->get( 'form_settings' ); $send_html = 'plain' !== $settings[ $this->get_control_id( 'email_content_type' ) ]; From 17520e627e1090ac5fc8c241ef10893cf3aa6960 Mon Sep 17 00:00:00 2001 From: Nurit Date: Fri, 29 Nov 2024 16:23:17 +0200 Subject: [PATCH 6/6] phpdoc --- modules/forms/classes/action-base.php | 2 +- modules/forms/classes/form-record.php | 6 +++--- modules/forms/components/ajax-handler.php | 6 +++--- modules/forms/widgets/form.php | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/modules/forms/classes/action-base.php b/modules/forms/classes/action-base.php index 58b2b900..a7a54ec2 100644 --- a/modules/forms/classes/action-base.php +++ b/modules/forms/classes/action-base.php @@ -22,7 +22,7 @@ public function get_id() { * @param Form_Record $record * @param Ajax_Handler $ajax_handler */ - abstract public function run( $record, $ajax_handler ); + abstract public function run( Form_Record $record, Ajax_Handler $ajax_handler ); /** * @param Form $form diff --git a/modules/forms/classes/form-record.php b/modules/forms/classes/form-record.php index 435473e5..ee9b3e7d 100644 --- a/modules/forms/classes/form-record.php +++ b/modules/forms/classes/form-record.php @@ -16,7 +16,7 @@ class Form_Record { protected $files = []; protected $meta = []; - public function get_formatted_data( $with_meta = false ) { + public function get_formatted_data( $with_meta = false ): array { $formatted = []; $no_label = esc_html__( 'No Label', 'hello-plus' ); $fields = $this->fields; @@ -41,7 +41,7 @@ public function get_formatted_data( $with_meta = false ) { * * @return bool */ - public function validate( $ajax_handler ) { + public function validate( Ajax_Handler $ajax_handler ): bool { foreach ( $this->fields as $id => $field ) { $field_type = $field['type']; if ( ! empty( $field['required'] ) && '' === $field['value'] && 'upload' !== $field_type ) { @@ -85,7 +85,7 @@ public function validate( $ajax_handler ) { * @param Ajax_Handler $ajax_handler An instance of the ajax handler. * */ - public function process_fields( $ajax_handler ) { + public function process_fields( Ajax_Handler $ajax_handler ) { foreach ( $this->fields as $id => $field ) { $field_type = $field['type']; diff --git a/modules/forms/components/ajax-handler.php b/modules/forms/components/ajax-handler.php index 04969746..9332ca2e 100644 --- a/modules/forms/components/ajax-handler.php +++ b/modules/forms/components/ajax-handler.php @@ -30,7 +30,7 @@ class Ajax_Handler { const SUBSCRIBER_ALREADY_EXISTS = 'subscriber_already_exists'; const NONCE_ACTION = 'ehp-form-submission'; - public static function get_default_messages() { + public static function get_default_messages(): array { return [ self::SUCCESS => esc_html__( 'Your submission was successful.', 'hello-plus' ), self::ERROR => esc_html__( 'Your submission failed because of an error.', 'hello-plus' ), @@ -41,7 +41,7 @@ public static function get_default_messages() { ]; } - public static function get_default_message( $id, $settings ) { + public static function get_default_message( $id, $settings ): string { if ( ! empty( $settings['custom_messages'] ) ) { $field_id = $id . '_message'; if ( isset( $settings[ $field_id ] ) ) { @@ -51,7 +51,7 @@ public static function get_default_message( $id, $settings ) { $default_messages = self::get_default_messages(); - return isset( $default_messages[ $id ] ) ? $default_messages[ $id ] : esc_html__( 'Unknown error.', 'hello-plus' ); + return $default_messages[ $id ] ?? esc_html__( 'Unknown error.', 'hello-plus' ); } public function ajax_send_form() { diff --git a/modules/forms/widgets/form.php b/modules/forms/widgets/form.php index 284c7ce1..9a38351d 100644 --- a/modules/forms/widgets/form.php +++ b/modules/forms/widgets/form.php @@ -11,7 +11,7 @@ use HelloPlus\Includes\Utils; use HelloPlus\Modules\Forms\Classes\Form_Base; use HelloPlus\Modules\Forms\Classes\Render\Widget_Form_Render; -use HelloPlus\Modules\Forms\components\Ajax_Handler; +use HelloPlus\Modules\Forms\Components\Ajax_Handler; use HelloPlus\Modules\Forms\Controls\Fields_Repeater; use HelloPlus\Modules\Forms\Module;