PluginProbe
Elementor Website Builder – more than just a page builder / 4.3.0-beta2
Elementor Website Builder – more than just a page builder v4.3.0-beta2
4.3.0-beta2 4.3.0-beta1 4.2.4 4.2.3 4.2.2 4.2.1 4.2.0 4.1.5 4.2.0-beta2 4.2.0-dev2 4.2.0-beta1 4.1.4 4.1.3 4.1.2 4.1.1 4.1.0 4.1.0-beta3 4.1.0-dev3 4.0.9 4.1.0-beta2 4.1.0-dev2 4.0.8 4.1.0-beta1 4.1.0-dev1 4.0.7 All 451 releases
elementor / modules / feedback / module.php

module.php in Elementor Website Builder – more than just a page builder 4.3.0-beta2, at modules/feedback/module.php

72 lines 1.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2
3 namespace Elementor\Modules\Feedback;
4
5 use Elementor\Core\Base\Module as Module_Base;
6 use Elementor\Modules\Feedback\Data\Controller;
7 use Elementor\Plugin;
8 use Elementor\Api;
9 use Elementor\Core\Common\Modules\Connect\Rest\Rest_Api;
10 use Elementor\Utils;
11 use http\Cookie as HttpCookie;
12 use WP_Http_Cookie;
13 use WpOrg\Requests\Cookie;
14
15 if ( ! defined( 'ABSPATH' ) ) {
16 exit; // Exit if accessed directly.
17 }
18
19 class Module extends Module_Base {
20
21 const DEFAULT_SUBJECT = 'Editor Feedback';
22
23 public function __construct() {
24 add_action( 'rest_api_init', fn() => self::register_routes() );
25 }
26
27 protected function register_routes() {
28 register_rest_route( 'elementor/v1/feedback', '/submit', [
29 'methods' => 'POST',
30 'callback' => fn( $request ) => $this->handle_submit( $request ),
31 'permission_callback' => '__return_true',
32 ] );
33 }
34
35 protected function handle_submit( $request, $additional_cookies = [] ) {
36 $user_meta = get_user_meta( get_current_user_id(), 'wp_elementor_connect_common_data' );
37 $app = Plugin::$instance->common->get_component( 'connect' )->get_app( 'feedback' );
38 $subject = sanitize_text_field( $request->get_param( 'subject' ) );
39 $body = [
40 'title' => 'Editor Feedback',
41 'description' => $request->get_param( 'description' ),
42 'product' => 'EDITOR',
43 'subject' => $subject ? $subject : self::DEFAULT_SUBJECT,
44 ];
45
46 $response = $app->submit( $body );
47 $response_code = $response['response']['code'];
48 if ( 'OK' === $response['response']['message'] ) {
49 return [
50 'success' => true,
51 'code' => $response_code,
52 'message' => esc_html__( 'Feedback submitted successfully.', 'elementor' ),
53 ];
54 } else {
55 $message = $response['data']['message'] ?? esc_html__( 'Failed to submit feedback.', 'elementor' );
56 return [
57 'success' => false,
58 'code' => $response_code,
59 'message' => $message,
60 ];
61 }
62 }
63 /**
64 * Retrieve the module name.
65 *
66 * @return string
67 */
68 public function get_name() {
69 return 'feedback';
70 }
71 }
72