PluginProbe
JetFormBuilder — Dynamic Blocks Form Builder / 3.0.5
JetFormBuilder — Dynamic Blocks Form Builder v3.0.5
3.6.5.2 3.6.5.1 3.6.5 3.6.4.2 3.6.4.1 3.6.4 3.6.3.1 3.6.3 3.6.2.2 3.6.2.1 3.6.2 3.6.1.1 3.6.1 3.6.0.1 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.1.0 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 All 130 releases
← All changes | includes/admin/editor.php +468 -564 trunk3.0.5 View file →
@@ -1,564 +1,468 @@
1 -<?php
2 -
3 -namespace Jet_Form_Builder\Admin;
4 -
5 -use Jet_Form_Builder\Actions\Conditions\Condition_Manager as Action_Condition_Manager;
6 -use Jet_Form_Builder\Admin\Pages\Pages_Manager;
7 -use Jet_Form_Builder\Admin\Tabs_Handlers\Tab_Handler_Manager;
8 -use Jet_Form_Builder\Classes\Arguments\Form_Arguments;
9 -use Jet_Form_Builder\Classes\Http\Utm_Url;
10 -use Jet_Form_Builder\Classes\Tools;
11 -use Jet_Form_Builder\Exceptions\Repository_Exception;
12 -use Jet_Form_Builder\Plugin;
13 -use Jet_Form_Builder\Blocks\Conditional_Block\Condition_Manager as Block_Condition_Manager;
14 -use JFB_Modules\Post_Type\Module;
15 -
16 -// If this file is called directly, abort.
17 -if ( ! defined( 'WPINC' ) ) {
18 - die;
19 -}
20 -
21 -/**
22 - * Define Editor class
23 - */
24 -class Editor {
25 -
26 - const EDITOR_HANDLE = 'jet-form-builder-editor';
27 - const EDITOR_PACKAGE_HANDLE = 'jet-form-builder-editor-package';
28 -
29 - public function __construct() {
30 - add_action( 'enqueue_block_editor_assets', array( $this, 'admin_assets' ) );
31 - }
32 -
33 - /**
34 - * Register admin assets
35 - *
36 - * @return void [type] [description]
37 - */
38 - public function admin_assets() {
39 - if ( jet_form_builder()->post_type->is_form_editor ) {
40 - $this->enqueue_assets();
41 - } else {
42 - $this->enqueue_form_assets();
43 - }
44 - }
45 -
46 - /**
47 - * Returns taxonomies list for the config
48 - *
49 - * @return [type] [description]
50 - */
51 - public function get_taxonomies_list() {
52 -
53 - $taxonomies = get_taxonomies( array(), 'objects' );
54 -
55 - $result = array();
56 -
57 - foreach ( $taxonomies as $tax ) {
58 - $result[] = array(
59 - 'value' => $tax->name,
60 - 'label' => sprintf( '%1$s (%2$s)', $tax->label, $tax->name ),
61 - );
62 - }
63 -
64 - return $result;
65 - }
66 -
67 - public function get_preset_config() {
68 - return apply_filters(
69 - 'jet-form-builder/editor/preset-config',
70 - array(
71 - 'global_fields' => array(
72 - array(
73 - 'name' => 'from',
74 - 'label' => __( 'Source:', 'jet-form-builder' ),
75 - 'type' => 'select',
76 - 'options' => Tools::with_placeholder(
77 - array(
78 - array(
79 - 'value' => 'post',
80 - 'label' => __( 'Post', 'jet-form-builder' ),
81 - ),
82 - array(
83 - 'value' => 'user',
84 - 'label' => __( 'User', 'jet-form-builder' ),
85 - ),
86 - array(
87 - 'value' => 'query_var',
88 - 'label' => __( 'URL Query Variable', 'jet-form-builder' ),
89 - ),
90 - array(
91 - 'value' => 'term',
92 - 'label' => __( 'Term', 'jet-form-builder' ),
93 - ),
94 - )
95 - ),
96 - ),
97 - array(
98 - 'name' => 'post_from',
99 - 'label' => __( 'Get post ID from:', 'jet-form-builder' ),
100 - 'type' => 'select',
101 - 'options' => Tools::with_placeholder(
102 - array(
103 - array(
104 - 'value' => 'current_post',
105 - 'label' => __( 'Current post', 'jet-form-builder' ),
106 - ),
107 - array(
108 - 'value' => 'query_var',
109 - 'label' => __( 'URL Query Variable', 'jet-form-builder' ),
110 - ),
111 - )
112 - ),
113 - 'condition' => array(
114 - 'field' => 'from',
115 - 'value' => 'post',
116 - ),
117 - ),
118 - array(
119 - 'name' => 'user_from',
120 - 'label' => __( 'Get user ID from:', 'jet-form-builder' ),
121 - 'type' => 'select',
122 - 'options' => Tools::with_placeholder(
123 - array(
124 - array(
125 - 'value' => 'current_user',
126 - 'label' => __( 'Current user', 'jet-form-builder' ),
127 - ),
128 - array(
129 - 'value' => 'queried_user',
130 - 'label' => __( 'Queried user', 'jet-form-builder' ),
131 - ),
132 - array(
133 - 'value' => 'query_var',
134 - 'label' => __( 'URL Query Variable', 'jet-form-builder' ),
135 - ),
136 - )
137 - ),
138 - 'condition' => array(
139 - 'field' => 'from',
140 - 'value' => 'user',
141 - ),
142 - ),
143 - array(
144 - 'name' => 'term_from',
145 - 'label' => __( 'Get term from:', 'jet-form-builder' ),
146 - 'type' => 'select',
147 - 'options' => Tools::with_placeholder(
148 - array(
149 - array(
150 - 'value' => 'current_term',
151 - 'label' => __( 'Current term', 'jet-form-builder' ),
152 - ),
153 - array(
154 - 'value' => 'query_var',
155 - 'label' => __( 'URL Query Variable', 'jet-form-builder' ),
156 - ),
157 - )
158 - ),
159 - 'condition' => array(
160 - 'field' => 'from',
161 - 'value' => 'term',
162 - ),
163 - ),
164 - array(
165 - 'name' => 'term_taxonomy',
166 - 'label' => __( 'Term taxonomy', 'jet-form-builder' ),
167 - 'type' => 'select',
168 - 'options' => Tools::with_placeholder( $this->get_taxonomies_list() ),
169 - 'parent_condition' => array(
170 - 'field' => 'from',
171 - 'value' => 'term',
172 - ),
173 - 'condition' => array(
174 - 'field' => 'term_from',
175 - 'value' => 'query_var',
176 - ),
177 - ),
178 - array(
179 - 'name' => 'query_var',
180 - 'label' => __( 'Query variable name:', 'jet-form-builder' ),
181 - 'type' => 'text',
182 - 'custom_condition' => 'query_var',
183 - 'position' => 'dynamic',
184 - ),
185 - ),
186 - 'map_fields' => array(
187 - array(
188 - 'name' => 'key',
189 - 'label' => __( 'Query variable key', 'jet-form-builder' ),
190 - 'type' => 'text',
191 - 'position' => 'general',
192 - 'parent_condition' => array(
193 - 'field' => 'from',
194 - 'value' => 'query_var',
195 - ),
196 - ),
197 - array(
198 - 'name' => 'prop',
199 - 'label' => __( 'Post property', 'jet-form-builder' ),
200 - 'type' => 'select',
201 - 'options' => Tools::with_placeholder(
202 - array(
203 - array(
204 - 'value' => 'ID',
205 - 'label' => __( 'Post ID', 'jet-form-builder' ),
206 - ),
207 - array(
208 - 'value' => 'post_title',
209 - 'label' => __( 'Post Title', 'jet-form-builder' ),
210 - ),
211 - array(
212 - 'value' => 'post_content',
213 - 'label' => __( 'Post Content', 'jet-form-builder' ),
214 - ),
215 - array(
216 - 'value' => 'post_status',
217 - 'label' => __( 'Post Status', 'jet-form-builder' ),
218 - ),
219 - array(
220 - 'value' => 'post_author',
221 - 'label' => __( 'Post Author', 'jet-form-builder' ),
222 - ),
223 - array(
224 - 'value' => 'post_excerpt',
225 - 'label' => __( 'Post Excerpt', 'jet-form-builder' ),
226 - ),
227 - array(
228 - 'value' => 'post_date',
229 - 'label' => __( 'Post Date', 'jet-form-builder' ),
230 - ),
231 - array(
232 - 'value' => 'post_date_gmt',
233 - 'label' => __( 'Post Date GMT', 'jet-form-builder' ),
234 - ),
235 - array(
236 - 'value' => 'post_thumb',
237 - 'label' => __( 'Post Thumbnail', 'jet-form-builder' ),
238 - ),
239 - array(
240 - 'value' => 'post_meta',
241 - 'label' => __( 'Post Meta', 'jet-form-builder' ),
242 - ),
243 - array(
244 - 'value' => 'post_terms',
245 - 'label' => __( 'Post Terms', 'jet-form-builder' ),
246 - ),
247 - )
248 - ),
249 - 'parent_condition' => array(
250 - 'field' => 'from',
251 - 'value' => 'post',
252 - ),
253 - ),
254 - array(
255 - 'name' => 'key',
256 - 'label' => __( 'Taxonomy', 'jet-form-builder' ),
257 - 'type' => 'select',
258 - 'options' => Tools::with_placeholder( $this->get_taxonomies_list() ),
259 - 'parent_condition' => array(
260 - 'field' => 'from',
261 - 'value' => 'post',
262 - ),
263 - 'condition' => array(
264 - 'field' => 'prop',
265 - 'value' => 'post_terms',
266 - ),
267 - ),
268 - array(
269 - 'name' => 'key',
270 - 'label' => __( 'Meta field key', 'jet-form-builder' ),
271 - 'type' => 'text',
272 - 'parent_condition' => array(
273 - 'field' => 'from',
274 - 'value' => 'post',
275 - ),
276 - 'condition' => array(
277 - 'field' => 'prop',
278 - 'value' => 'post_meta',
279 - ),
280 - ),
281 - array(
282 - 'name' => 'prop',
283 - 'label' => __( 'User field', 'jet-form-builder' ),
284 - 'type' => 'select',
285 - 'options' => Tools::with_placeholder(
286 - array(
287 - array(
288 - 'value' => 'ID',
289 - 'label' => __( 'User ID', 'jet-form-builder' ),
290 - ),
291 - array(
292 - 'value' => 'user_login',
293 - 'label' => __( 'User Login', 'jet-form-builder' ),
294 - ),
295 - array(
296 - 'value' => 'user_email',
297 - 'label' => __( 'Email', 'jet-form-builder' ),
298 - ),
299 - array(
300 - 'value' => 'password',
301 - 'label' => __( 'Password', 'jet-form-builder' ),
302 - ),
303 - array(
304 - 'value' => 'first_name',
305 - 'label' => __( 'First Name', 'jet-form-builder' ),
306 - ),
307 - array(
308 - 'value' => 'last_name',
309 - 'label' => __( 'Last Name', 'jet-form-builder' ),
310 - ),
311 - array(
312 - 'value' => 'display_name',
313 - 'label' => __( 'Display Name', 'jet-form-builder' ),
314 - ),
315 - array(
316 - 'value' => 'user_url',
317 - 'label' => __( 'User URL', 'jet-form-builder' ),
318 - ),
319 - array(
320 - 'value' => 'user_meta',
321 - 'label' => __( 'User Meta', 'jet-form-builder' ),
322 - ),
323 - )
324 - ),
325 - 'parent_condition' => array(
326 - 'field' => 'from',
327 - 'value' => 'user',
328 - ),
329 - ),
330 - array(
331 - 'name' => 'key',
332 - 'label' => __( 'Meta field key', 'jet-form-builder' ),
333 - 'type' => 'text',
334 - 'parent_condition' => array(
335 - 'field' => 'from',
336 - 'value' => 'user',
337 - ),
338 - 'condition' => array(
339 - 'field' => 'prop',
340 - 'value' => 'user_meta',
341 - ),
342 - ),
343 - array(
344 - 'name' => 'prop',
345 - 'label' => __( 'Term property', 'jet-form-builder' ),
346 - 'type' => 'select',
347 - 'options' => Tools::with_placeholder(
348 - array(
349 - array(
350 - 'value' => 'term_id',
351 - 'label' => __( 'Term ID', 'jet-form-builder' ),
352 - ),
353 - array(
354 - 'value' => 'name',
355 - 'label' => __( 'Name', 'jet-form-builder' ),
356 - ),
357 - array(
358 - 'value' => 'slug',
359 - 'label' => __( 'Slug', 'jet-form-builder' ),
360 - ),
361 - array(
362 - 'value' => 'parent',
363 - 'label' => __( 'Parent', 'jet-form-builder' ),
364 - ),
365 - array(
366 - 'value' => 'term_meta',
367 - 'label' => __( 'Term Meta', 'jet-form-builder' ),
368 - ),
369 - )
370 - ),
371 - 'parent_condition' => array(
372 - 'field' => 'from',
373 - 'value' => 'term',
374 - ),
375 - ),
376 - array(
377 - 'name' => 'key',
378 - 'label' => __( 'Meta field key', 'jet-form-builder' ),
379 - 'type' => 'text',
380 - 'parent_condition' => array(
381 - 'field' => 'from',
382 - 'value' => 'term',
383 - ),
384 - 'condition' => array(
385 - 'field' => 'prop',
386 - 'value' => 'term_meta',
387 - ),
388 - ),
389 - ),
390 - )
391 - );
392 - }
393 -
394 - /**
395 - * Enqueue editor assets
396 - *
397 - * @return void
398 - * @throws Repository_Exception
399 - */
400 - public function enqueue_assets() {
401 - $script_asset = require_once jet_form_builder()->plugin_dir( 'assets/build/editor/package.asset.php' );
402 -
403 - if ( true === $script_asset ) {
404 - return;
405 - }
406 -
407 - do_action( 'jet-form-builder/editor-package/before', $this, self::EDITOR_PACKAGE_HANDLE );
408 -
409 - array_push(
410 - $script_asset['dependencies'],
411 - 'jet-fb-components',
412 - 'jet-fb-data',
413 - 'jet-fb-actions-v2',
414 - 'jet-fb-blocks-v2-to-actions-v2'
415 - );
416 - wp_enqueue_style( 'jet-fb-components' );
417 -
418 - wp_enqueue_script(
419 - self::EDITOR_PACKAGE_HANDLE,
420 - Plugin::instance()->plugin_url( 'assets/build/editor/package.js' ),
421 - $script_asset['dependencies'],
422 - $script_asset['version'],
423 - true
424 - );
425 -
426 - wp_localize_script(
427 - self::EDITOR_PACKAGE_HANDLE,
428 - 'jetFormEvents',
429 - jet_fb_events()->to_array()
430 - );
431 -
432 - wp_localize_script(
433 - self::EDITOR_PACKAGE_HANDLE,
434 - 'jetFormBlockConditions',
435 - Block_Condition_Manager::instance()->to_array()
436 - );
437 -
438 - wp_set_script_translations(
439 - self::EDITOR_PACKAGE_HANDLE,
440 - 'jet-form-builder',
441 - Plugin::instance()->plugin_dir( 'languages' )
442 - );
443 -
444 - $script_asset = require_once jet_form_builder()->plugin_dir( 'assets/build/editor/form.builder.asset.php' );
445 -
446 - do_action( 'jet-form-builder/editor-assets/before', $this, self::EDITOR_HANDLE );
447 -
448 - wp_enqueue_script(
449 - self::EDITOR_HANDLE,
450 - Plugin::instance()->plugin_url( 'assets/build/editor/form.builder.js' ),
451 - $script_asset['dependencies'],
452 - $script_asset['version'],
453 - true
454 - );
455 -
456 - wp_enqueue_style(
457 - self::EDITOR_HANDLE,
458 - Plugin::instance()->plugin_url( 'assets/build/editor/form.builder.css' ),
459 - array(
460 - 'media',
461 - 'l10n',
462 - 'buttons',
463 - 'wp-edit-blocks',
464 - 'wp-editor',
465 - ),
466 - $script_asset['version']
467 - );
468 -
469 - $conditions_settings = ( new Action_Condition_Manager() )->get_settings();
470 - $exclude_events = array(
471 - 'redirect_to_page' => array( 'WC.ORDER.COMPLETE', 'WC.CHECKOUT.COMPLETE' ),
472 - );
473 -
474 - /** @var Module $post_type */
475 - /** @noinspection PhpUnhandledExceptionInspection */
476 - $post_type = jet_form_builder()->module( 'post-type' );
477 -
478 - $utm = new Utm_Url( 'plugin' );
479 - $utm->set_medium( 'editor' );
480 - $utm->set_content( $utm->get_license_and_theme() );
481 -
482 - $addons = JET_FORM_BUILDER_SITE . '/addons/';
483 - $pricing = JET_FORM_BUILDER_SITE . '/pricing/';
484 -
485 - wp_localize_script(
486 - self::EDITOR_PACKAGE_HANDLE,
487 - 'JetFormEditorData',
488 - apply_filters(
489 - 'jet-form-builder/editor/config',
490 - array(
491 - 'presetConfig' => $this->get_preset_config(),
492 - 'messagesDefault' => $post_type->get_messages(),
493 - 'helpForRepeaters' => $this->get_help_for_repeaters(),
494 - 'global_settings' => Tab_Handler_Manager::instance()->all(),
495 - 'global_settings_url' => Pages_Manager::instance()->get_stable_url( 'jfb-settings' ),
496 - 'jetEngineVersion' => Tools::get_jet_engine_version(),
497 - 'actionConditionSettings' => $conditions_settings,
498 - 'actionConditionExcludeEvents' => $exclude_events,
499 - 'argumentsSource' => Form_Arguments::get_options(),
500 - 'utmLinks' => array(
501 - 'allProActions' => $utm->set_campaign( 'jetform-settings/pro-actions' )->add_query( $addons ),
502 - 'limitResponses' => $utm->set_campaign( 'jetform-settings/limit-form-responses' )->add_query( $pricing ),
503 - 'scheduleForm' => $utm->set_campaign( 'jetform-settings/schedule-forms' )->add_query( $pricing ),
504 - 'userLoginPattern' => $utm->set_campaign( 'welcome-block/user-login' )->add_query( $addons . 'user-login/' ),
505 - 'resetPassPattern' => $utm->set_campaign( 'welcome-block/reset-password' )->add_query( $addons . 'user-login/' ),
506 - ),
507 - 'isActivePro' => jet_form_builder()->addons_manager->is_active(),
508 - 'assetsUrl' => jet_form_builder()->plugin_url( 'assets/' ),
509 - )
510 - )
511 - );
512 -
513 - do_action( 'jet-form-builder/editor-assets/after', $this, self::EDITOR_HANDLE );
514 - }
515 -
516 - private function get_help_for_repeaters() {
517 - return array(
518 - 'conditional_block' => array(
519 - 'label' => __( 'With many conditions for the block, they are checked with the AND operator', 'jet-form-builder' ),
520 - ),
521 - 'conditional_block_or' => array(
522 - 'label' => __( 'With many conditions for the block, they are checked with the OR operator', 'jet-form-builder' ),
523 - ),
524 - 'conditional_action' => array(
525 - 'label' => __( 'With many conditions for the action, they are checked with the AND operator', 'jet-form-builder' ),
526 - ),
527 - 'conditional_action_or' => array(
528 - 'label' => __( 'With many conditions for the action, they are checked with the OR operator', 'jet-form-builder' ),
529 - ),
530 - );
531 - }
532 -
533 - public function enqueue_form_assets() {
534 -
535 - $handle = 'jet-form-builder/form';
536 -
537 - do_action( 'jet-form-builder/other-editor-assets/before', $this, $handle );
538 -
539 - // todo: refactor with new way of assets loading
540 - wp_register_script(
541 - $handle,
542 - Plugin::instance()->plugin_url( 'assets/build/editor/default.builder.js' ),
543 - array(
544 - 'wp-core-data',
545 - 'wp-data',
546 - 'wp-block-library',
547 - 'wp-format-library',
548 - 'wp-api-fetch',
549 - ),
550 - JET_FORM_BUILDER_VERSION,
551 - true
552 - );
553 -
554 - wp_register_style(
555 - 'jet-form-builder-others',
556 - Plugin::instance()->plugin_url( 'assets/build/frontend/main.css' ),
557 - array(),
558 - Plugin::instance()->get_version()
559 - );
560 -
561 - do_action( 'jet-form-builder/other-editor-assets/after', $this, $handle );
562 - }
563 -
564 -}
1 +<?php
2 +
3 +namespace Jet_Form_Builder\Admin;
4 +
5 +use Jet_Form_Builder\Actions\Conditions\Condition_Manager as Action_Condition_Manager;
6 +use Jet_Form_Builder\Admin\Pages\Pages_Manager;
7 +use Jet_Form_Builder\Admin\Tabs_Handlers\Tab_Handler_Manager;
8 +use Jet_Form_Builder\Blocks\Validation;
9 +use Jet_Form_Builder\Classes\Arguments\Form_Arguments;
10 +use Jet_Form_Builder\Classes\Http\Utm_Url;
11 +use Jet_Form_Builder\Classes\Tools;
12 +use Jet_Form_Builder\Gateways\Gateway_Manager;
13 +use Jet_Form_Builder\Plugin;
14 +use Jet_Form_Builder\Blocks\Conditional_Block\Condition_Manager as Block_Condition_Manager;
15 +use Jet_Form_Builder\Post_Meta\Messages_Meta;
16 +
17 +/**
18 + * Form editor class
19 + * Thanks Tom J Nowell for initial editor idea and inspiration!
20 + */
21 +
22 +// If this file is called directly, abort.
23 +if ( ! defined( 'WPINC' ) ) {
24 + die;
25 +}
26 +
27 +/**
28 + * Define Editor class
29 + */
30 +class Editor {
31 +
32 + const EDITOR_HANDLE = 'jet-form-builder-editor';
33 + const EDITOR_PACKAGE_HANDLE = 'jet-form-builder-editor-package';
34 +
35 + public function __construct() {
36 + add_action( 'enqueue_block_editor_assets', array( $this, 'admin_assets' ) );
37 + }
38 +
39 + /**
40 + * Register admin assets
41 + *
42 + * @return void [type] [description]
43 + */
44 + public function admin_assets() {
45 + if ( jet_form_builder()->post_type->is_form_editor ) {
46 + $this->enqueue_assets();
47 + } else {
48 + $this->enqueue_form_assets();
49 + }
50 + }
51 +
52 + /**
53 + * Returns taxonomies list for the config
54 + *
55 + * @return [type] [description]
56 + */
57 + public function get_taxonomies_list() {
58 +
59 + $taxonomies = get_taxonomies( array(), 'objects' );
60 +
61 + $result = array();
62 +
63 + foreach ( $taxonomies as $tax ) {
64 + $result[] = array(
65 + 'value' => $tax->name,
66 + 'label' => sprintf( '%1$s (%2$s)', $tax->label, $tax->name ),
67 + );
68 + }
69 +
70 + return $result;
71 +
72 + }
73 +
74 + public function get_preset_config() {
75 + return apply_filters(
76 + 'jet-form-builder/editor/preset-config',
77 + array(
78 + 'global_fields' => array(
79 + array(
80 + 'name' => 'from',
81 + 'label' => __( 'Source:', 'jet-form-builder' ),
82 + 'type' => 'select',
83 + 'options' => Tools::with_placeholder(
84 + array(
85 + array(
86 + 'value' => 'post',
87 + 'label' => __( 'Post', 'jet-form-builder' ),
88 + ),
89 + array(
90 + 'value' => 'user',
91 + 'label' => __( 'User', 'jet-form-builder' ),
92 + ),
93 + array(
94 + 'value' => 'query_var',
95 + 'label' => __( 'URL Query Variable', 'jet-form-builder' ),
96 + ),
97 + )
98 + ),
99 + ),
100 + array(
101 + 'name' => 'post_from',
102 + 'label' => __( 'Get post ID from:', 'jet-form-builder' ),
103 + 'type' => 'select',
104 + 'options' => Tools::with_placeholder(
105 + array(
106 + array(
107 + 'value' => 'current_post',
108 + 'label' => __( 'Current post', 'jet-form-builder' ),
109 + ),
110 + array(
111 + 'value' => 'query_var',
112 + 'label' => __( 'URL Query Variable', 'jet-form-builder' ),
113 + ),
114 + )
115 + ),
116 + 'condition' => array(
117 + 'field' => 'from',
118 + 'value' => 'post',
119 + ),
120 + ),
121 + array(
122 + 'name' => 'user_from',
123 + 'label' => __( 'Get user ID from:', 'jet-form-builder' ),
124 + 'type' => 'select',
125 + 'options' => Tools::with_placeholder(
126 + array(
127 + array(
128 + 'value' => 'current_user',
129 + 'label' => __( 'Current user', 'jet-form-builder' ),
130 + ),
131 + array(
132 + 'value' => 'queried_user',
133 + 'label' => __( 'Queried user', 'jet-form-builder' ),
134 + ),
135 + array(
136 + 'value' => 'query_var',
137 + 'label' => __( 'URL Query Variable', 'jet-form-builder' ),
138 + ),
139 + )
140 + ),
141 + 'condition' => array(
142 + 'field' => 'from',
143 + 'value' => 'user',
144 + ),
145 + ),
146 + array(
147 + 'name' => 'query_var',
148 + 'label' => __( 'Query variable name:', 'jet-form-builder' ),
149 + 'type' => 'text',
150 + 'custom_condition' => 'query_var',
151 + 'position' => 'dynamic',
152 + ),
153 + ),
154 + 'map_fields' => array(
155 + array(
156 + 'name' => 'key',
157 + 'label' => __( 'Query variable key', 'jet-form-builder' ),
158 + 'type' => 'text',
159 + 'position' => 'general',
160 + 'parent_condition' => array(
161 + 'field' => 'from',
162 + 'value' => 'query_var',
163 + ),
164 + ),
165 + array(
166 + 'name' => 'prop',
167 + 'label' => __( 'Post property', 'jet-form-builder' ),
168 + 'type' => 'select',
169 + 'options' => Tools::with_placeholder(
170 + array(
171 + array(
172 + 'value' => 'ID',
173 + 'label' => __( 'Post ID', 'jet-form-builder' ),
174 + ),
175 + array(
176 + 'value' => 'post_title',
177 + 'label' => __( 'Post Title', 'jet-form-builder' ),
178 + ),
179 + array(
180 + 'value' => 'post_content',
181 + 'label' => __( 'Post Content', 'jet-form-builder' ),
182 + ),
183 + array(
184 + 'value' => 'post_status',
185 + 'label' => __( 'Post Status', 'jet-form-builder' ),
186 + ),
187 + array(
188 + 'value' => 'post_author',
189 + 'label' => __( 'Post Author', 'jet-form-builder' ),
190 + ),
191 + array(
192 + 'value' => 'post_excerpt',
193 + 'label' => __( 'Post Excerpt', 'jet-form-builder' ),
194 + ),
195 + array(
196 + 'value' => 'post_date',
197 + 'label' => __( 'Post Date', 'jet-form-builder' ),
198 + ),
199 + array(
200 + 'value' => 'post_date_gmt',
201 + 'label' => __( 'Post Date GMT', 'jet-form-builder' ),
202 + ),
203 + array(
204 + 'value' => 'post_thumb',
205 + 'label' => __( 'Post Thumbnail', 'jet-form-builder' ),
206 + ),
207 + array(
208 + 'value' => 'post_meta',
209 + 'label' => __( 'Post Meta', 'jet-form-builder' ),
210 + ),
211 + array(
212 + 'value' => 'post_terms',
213 + 'label' => __( 'Post Terms', 'jet-form-builder' ),
214 + ),
215 + )
216 + ),
217 + 'parent_condition' => array(
218 + 'field' => 'from',
219 + 'value' => 'post',
220 + ),
221 + ),
222 + array(
223 + 'name' => 'key',
224 + 'label' => __( 'Taxonomy', 'jet-form-builder' ),
225 + 'type' => 'select',
226 + 'options' => Tools::with_placeholder( $this->get_taxonomies_list() ),
227 + 'parent_condition' => array(
228 + 'field' => 'from',
229 + 'value' => 'post',
230 + ),
231 + 'condition' => array(
232 + 'field' => 'prop',
233 + 'value' => 'post_terms',
234 + ),
235 + ),
236 + array(
237 + 'name' => 'key',
238 + 'label' => __( 'Meta field key', 'jet-form-builder' ),
239 + 'type' => 'text',
240 + 'parent_condition' => array(
241 + 'field' => 'from',
242 + 'value' => 'post',
243 + ),
244 + 'condition' => array(
245 + 'field' => 'prop',
246 + 'value' => 'post_meta',
247 + ),
248 + ),
249 + array(
250 + 'name' => 'prop',
251 + 'label' => __( 'User field', 'jet-form-builder' ),
252 + 'type' => 'select',
253 + 'options' => Tools::with_placeholder(
254 + array(
255 + array(
256 + 'value' => 'ID',
257 + 'label' => __( 'User ID', 'jet-form-builder' ),
258 + ),
259 + array(
260 + 'value' => 'user_login',
261 + 'label' => __( 'User Login', 'jet-form-builder' ),
262 + ),
263 + array(
264 + 'value' => 'user_email',
265 + 'label' => __( 'Email', 'jet-form-builder' ),
266 + ),
267 + array(
268 + 'value' => 'password',
269 + 'label' => __( 'Password', 'jet-form-builder' ),
270 + ),
271 + array(
272 + 'value' => 'first_name',
273 + 'label' => __( 'First Name', 'jet-form-builder' ),
274 + ),
275 + array(
276 + 'value' => 'last_name',
277 + 'label' => __( 'Last Name', 'jet-form-builder' ),
278 + ),
279 + array(
280 + 'value' => 'user_url',
281 + 'label' => __( 'User URL', 'jet-form-builder' ),
282 + ),
283 + array(
284 + 'value' => 'user_meta',
285 + 'label' => __( 'User Meta', 'jet-form-builder' ),
286 + ),
287 + )
288 + ),
289 + 'parent_condition' => array(
290 + 'field' => 'from',
291 + 'value' => 'user',
292 + ),
293 + ),
294 + array(
295 + 'name' => 'key',
296 + 'label' => __( 'Meta field key', 'jet-form-builder' ),
297 + 'type' => 'text',
298 + 'parent_condition' => array(
299 + 'field' => 'from',
300 + 'value' => 'user',
301 + ),
302 + 'condition' => array(
303 + 'field' => 'prop',
304 + 'value' => 'user_meta',
305 + ),
306 + ),
307 + ),
308 + )
309 + );
310 + }
311 +
312 + /**
313 + * Enqueue editor assets
314 + *
315 + * @return void
316 + */
317 + public function enqueue_assets() {
318 + do_action( 'jet-form-builder/editor-package/before', $this, self::EDITOR_PACKAGE_HANDLE );
319 +
320 + wp_enqueue_script(
321 + self::EDITOR_PACKAGE_HANDLE,
322 + Plugin::instance()->plugin_url( 'assets/js/editor/package{min}.js' ),
323 + array(
324 + 'wp-editor',
325 + 'wp-core-data',
326 + 'wp-data',
327 + 'wp-block-library',
328 + 'wp-format-library',
329 + 'wp-api-fetch',
330 + ),
331 + JET_FORM_BUILDER_VERSION,
332 + true
333 + );
334 +
335 + wp_localize_script(
336 + self::EDITOR_PACKAGE_HANDLE,
337 + 'jetFormEvents',
338 + jet_fb_events()->to_array()
339 + );
340 +
341 + wp_localize_script(
342 + self::EDITOR_PACKAGE_HANDLE,
343 + 'jetFormValidation',
344 + Validation::instance()->to_array()
345 + );
346 +
347 + wp_localize_script(
348 + self::EDITOR_PACKAGE_HANDLE,
349 + 'jetFormBlockConditions',
350 + Block_Condition_Manager::instance()->to_array()
351 + );
352 +
353 + wp_set_script_translations(
354 + self::EDITOR_PACKAGE_HANDLE,
355 + 'jet-form-builder',
356 + Plugin::instance()->plugin_dir( 'languages' )
357 + );
358 +
359 + do_action( 'jet-form-builder/editor-assets/before', $this, self::EDITOR_HANDLE );
360 +
361 + wp_enqueue_script(
362 + self::EDITOR_HANDLE,
363 + Plugin::instance()->plugin_url( 'assets/js/editor/form.builder{min}.js' ),
364 + array(),
365 + JET_FORM_BUILDER_VERSION,
366 + true
367 + );
368 +
369 + wp_enqueue_style(
370 + self::EDITOR_HANDLE,
371 + JET_FORM_BUILDER_URL . 'assets/css/editor.css',
372 + array(
373 + 'media',
374 + 'l10n',
375 + 'buttons',
376 + 'wp-edit-blocks',
377 + 'wp-editor',
378 + ),
379 + JET_FORM_BUILDER_VERSION,
380 + 'all'
381 + );
382 +
383 + $conditions_settings = ( new Action_Condition_Manager() )->get_settings();
384 +
385 + /** @var Messages_Meta $messages_meta */
386 + $messages_meta = jet_form_builder()->post_type->get_meta( Messages_Meta::class );
387 +
388 + $utm = new Utm_Url( 'wp-admin/editor-jet-form' );
389 + $addons = JET_FORM_BUILDER_SITE . '/addons/';
390 + $pricing = JET_FORM_BUILDER_SITE . '/pricing/';
391 +
392 + wp_localize_script(
393 + self::EDITOR_PACKAGE_HANDLE,
394 + 'JetFormEditorData',
395 + apply_filters(
396 + 'jet-form-builder/editor/config',
397 + array(
398 + 'presetConfig' => $this->get_preset_config(),
399 + 'messagesDefault' => $messages_meta->messages(),
400 + 'gateways' => Gateway_Manager::instance()->editor_data(),
401 + 'helpForRepeaters' => $this->get_help_for_repeaters(),
402 + 'global_settings' => Tab_Handler_Manager::instance()->all(),
403 + 'global_settings_url' => Pages_Manager::instance()->get_stable_url( 'jfb-settings' ),
404 + 'jetEngineVersion' => Tools::get_jet_engine_version(),
405 + 'actionConditionSettings' => $conditions_settings,
406 + 'argumentsSource' => Form_Arguments::get_options(),
407 + 'utmLinks' => array(
408 + 'allProActions' => $utm->set_campaign( 'pro-actions' )->add_query( $addons ),
409 + 'limitResponses' => $utm->set_campaign( 'responses-pricing' )->add_query( $pricing ),
410 + 'scheduleForm' => $utm->set_campaign( 'schedule-pricing' )->add_query( $pricing ),
411 + ),
412 + 'isActivePro' => jet_form_builder()->addons_manager->is_active(),
413 + )
414 + )
415 + );
416 +
417 + do_action( 'jet-form-builder/editor-assets/after', $this, self::EDITOR_HANDLE );
418 + }
419 +
420 + private function get_help_for_repeaters() {
421 + return array(
422 + 'conditional_block' => array(
423 + 'label' => __( 'With many conditions for the block, they are checked with the AND operator', 'jet-form-builder' ),
424 + ),
425 + 'conditional_block_or' => array(
426 + 'label' => __( 'With many conditions for the block, they are checked with the OR operator', 'jet-form-builder' ),
427 + ),
428 + 'conditional_action' => array(
429 + 'label' => __( 'With many conditions for the action, they are checked with the AND operator', 'jet-form-builder' ),
430 + ),
431 + 'conditional_action_or' => array(
432 + 'label' => __( 'With many conditions for the action, they are checked with the OR operator', 'jet-form-builder' ),
433 + ),
434 + );
435 + }
436 +
437 + public function enqueue_form_assets() {
438 +
439 + $handle = 'jet-form-builder/form';
440 +
441 + do_action( 'jet-form-builder/other-editor-assets/before', $this, $handle );
442 +
443 + wp_register_script(
444 + $handle,
445 + Plugin::instance()->plugin_url( 'assets/js/editor/default.builder{min}.js' ),
446 + array(
447 + 'wp-core-data',
448 + 'wp-data',
449 + 'wp-block-library',
450 + 'wp-format-library',
451 + 'wp-api-fetch',
452 + ),
453 + JET_FORM_BUILDER_VERSION,
454 + true
455 + );
456 +
457 + wp_register_style(
458 + 'jet-form-builder-others',
459 + Plugin::instance()->plugin_url( 'assets/css/frontend.css' ),
460 + array(),
461 + Plugin::instance()->get_version()
462 + );
463 +
464 + do_action( 'jet-form-builder/other-editor-assets/after', $this, $handle );
465 +
466 + }
467 +
468 +}