PluginProbe ʕ •ᴥ•ʔ
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments / 2.6.1
SureCart – Ecommerce Made Easy For Selling Physical Products, Digital Downloads, Subscriptions, Donations, & Payments v2.6.1
4.4.2 4.4.1 4.4.0 4.3.3 4.3.2 4.3.1 4.3.0 4.2.3 4.2.2 4.2.1 1.0.3 1.0.4 1.0.5 1.0.6 1.1.0 1.1.1 1.1.10 1.1.11 1.1.12 1.1.13 1.1.14 1.1.15 1.1.16 1.1.17 1.1.18 1.1.19 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.10.0 1.10.1 1.10.2 1.10.3 1.10.4 1.11.0 1.11.1 1.11.2 1.2.0 1.2.1 1.2.2 1.2.3 1.2.4 1.2.5 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 1.8.2 1.8.3 1.8.4 1.8.5 1.9.0 1.9.1 1.9.2 1.9.3 1.9.4 1.9.5 2.0.0 2.0.1 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.10.0 2.10.1 2.11.0 2.11.1 2.11.2 2.11.3 2.11.4 2.12.0 2.13.0 2.14.0 2.14.1 2.15.0 2.15.1 2.16.0 2.16.1 2.16.2 2.16.3 2.17.0 2.17.1 2.17.2 2.18.0 2.19.0 2.19.2 2.19.3 2.19.4 2.2.0 2.2.1 2.20.0 2.20.1 2.20.2 2.20.3 2.20.4 2.20.5 2.20.6 2.21.0 2.22.0 2.22.1 2.23.0 2.24.0 2.25.0 2.25.1 2.25.2 2.26.0 2.27.0 2.27.1 2.28.0 2.29.0 2.29.1 2.29.2 2.29.3 2.29.4 2.3.0 2.3.1 2.30.0 2.31.0 2.31.1 2.31.2 2.31.3 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.40.0 2.40.1 2.5.0 2.5.1 2.5.2 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.8.2 2.8.3 2.8.4 2.9.0 3.0.0 3.0.0-RC1 3.0.0-RC2 3.0.0-beta1 3.0.0-beta2 3.0.1 3.0.2 3.0.3 3.0.4 3.0.5 3.1.0 3.1.1 3.1.2 3.1.3 3.1.4 3.1.5 3.1.6 3.10.0 3.10.1 3.11.0 3.12.0 3.13.0 3.13.1 3.13.2 3.13.3 3.13.4 3.14.0 3.15.0 3.15.1 3.15.2 3.15.3 3.15.4 3.15.5 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.16.6 3.16.7 3.16.8 3.17.0 3.17.1 3.17.2 3.17.3 3.17.4 3.17.5 3.17.6 3.18.0 3.19.0 3.19.1 3.19.2 3.2.0 3.2.1 3.2.2 3.20.0 3.20.1 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.4.3 3.5.0 3.5.1 3.5.2 3.5.3 3.6.0 3.6.1 3.6.2 3.7.0 3.7.1 3.7.2 3.7.3 3.8.0 3.8.1 3.8.2 3.8.3 3.8.4 3.8.5 3.9.0 4.0.0 4.0.1 4.0.2 4.0.3 trunk 4.1.0 0.2.19.1 4.1.1 1.0.0 4.2.0 1.0.1 1.0.2
surecart / app / src / Integrations / Elementor / ReusableFormWidget.php
surecart / app / src / Integrations / Elementor Last commit date
Conditions 3 years ago Documents 2 years ago assets 3 years ago ElementorServiceProvider.php 2 years ago ReusableFormWidget.php 3 years ago
ReusableFormWidget.php
180 lines
1 <?php
2
3 namespace SureCart\Integrations\Elementor;
4
5 use Elementor\Widget_Base;
6
7 if ( ! defined( 'ABSPATH' ) ) {
8 exit; // Exit if accessed directly.
9 }
10
11 /**
12 * SureCart form form widget.
13 *
14 * Surecart widget that displays a form.
15 */
16 class ReusableFormWidget extends Widget_Base {
17 /**
18 * Get widget name.
19 *
20 * Retrieve form widget name.
21 *
22 * @since x.x.x
23 * @access public
24 *
25 * @return string Widget name.
26 */
27 public function get_name() {
28 return 'surecart_form';
29 }
30
31 /**
32 * Get widget title.
33 *
34 * Retrieve form widget title.
35 *
36 * @since x.x.x
37 * @access public
38 *
39 * @return string Widget title.
40 */
41 public function get_title() {
42 return __( 'Checkout Form', 'surecart' );
43 }
44
45 /**
46 * Get widget icon.
47 *
48 * Retrieve form widget icon.
49 *
50 * @since x.x.x
51 * @access public
52 *
53 * @return string Widget icon.
54 */
55 public function get_icon() {
56 return 'eicon-form-horizontal surecart-checkout-icon';
57 }
58
59 /**
60 * Get widget categories.
61 *
62 * Retrieve the list of categories the form widget belongs to.
63 *
64 * Used to determine where to display the widget in the editor.
65 *
66 * @since x.x.x
67 * @access public
68 *
69 * @return array Widget categories.
70 */
71 public function get_categories() {
72 return [ 'surecart-elementor' ];
73 }
74
75 /**
76 * Get widget keywords.
77 *
78 * Retrieve the list of keywords the widget belongs to.
79 *
80 * @since x.x.x
81 * @access public
82 *
83 * @return array Widget keywords.
84 */
85 public function get_keywords() {
86 return [ 'form', 'surecart', 'checkout' ];
87 }
88
89 /**
90 * Register form widget controls.
91 *
92 * Adds different input fields to allow the user to change and customize the widget settings.
93 *
94 * @since x.x.x
95 * @access protected
96 */
97 protected function _register_controls() {
98 $this->start_controls_section(
99 'section_form',
100 [
101 'label' => __( 'Checkout Form', 'surecart' ),
102 ]
103 );
104
105 $options = $this->get_forms_options();
106
107 $this->add_control(
108 'sc_form_block',
109 [
110 'label' => __( 'Select Form', 'surecart' ),
111 'type' => \Elementor\Controls_Manager::SELECT2,
112 'options' => $options,
113 'default' => array_keys( $options )[0],
114 ]
115 );
116
117 $this->add_control(
118 'sc_edit_form',
119 [
120 'label' => __( 'Edit Form', 'surecart' ),
121 'type' => \Elementor\Controls_Manager::BUTTON,
122 'text' => __( 'Edit', 'surecart' ),
123 'event' => 'surecart:form:edit',
124 ]
125 );
126
127 $this->add_control(
128 'sc_create_form',
129 [
130 'label' => __( 'Create New Form', 'surecart' ),
131 'separator' => 'before',
132 'classes' => 'testclass',
133 'type' => \Elementor\Controls_Manager::BUTTON,
134 'text' => __( 'Create', 'surecart' ),
135 'event' => 'surecart:form:create',
136 ]
137 );
138
139 $this->end_controls_section();
140 }
141
142 /**
143 * Get froms options.
144 *
145 * @since x.x.x
146 *
147 * @return array
148 */
149 public function get_forms_options() {
150 $args = [
151 'numberposts' => -1,
152 'fields' => 'ids',
153 ];
154
155 $get_forms = \SureCart::forms()->get_forms( $args );
156
157 $options = [];
158
159 foreach ( $get_forms as $form ) {
160 $options[ $form ] = get_the_title( $form );
161 }
162
163 return $options;
164 }
165
166 /**
167 * Render form widget output on the frontend.
168 *
169 * Written in PHP and used to generate the final HTML.
170 *
171 * @since x.x.x
172 * @access protected
173 */
174 protected function render() {
175 $settings = $this->get_settings_for_display();
176
177 echo do_shortcode( '[sc_form id=' . $settings['sc_form_block'] . ']' );
178 }
179 }
180