Version Description
- Fix: Quiz submitting after answering first question
- Fix: Compatibility issue with BigCommerce plugin
- Fix: Name field breaks pagination
Download this release
Release Info
Developer | alerzhus |
Plugin | Forminator Payment, Quiz and Contact Form Plugin |
Version | 1.12.1 |
Comparing to | |
See all releases |
Code changes from version 1.11.4 to 1.12.1
- addons/pro/activecampaign/activecampaign.php +3 -3
- addons/pro/activecampaign/{forminator-addon-activecampaign-exception.php → class-forminator-addon-activecampaign-exception.php} +0 -0
- addons/pro/activecampaign/{forminator-addon-activecampaign-form-hooks.php → class-forminator-addon-activecampaign-form-hooks.php} +2 -11
- addons/pro/activecampaign/{forminator-addon-activecampaign-form-settings-exception.php → class-forminator-addon-activecampaign-form-settings-exception.php} +0 -0
- addons/pro/activecampaign/{forminator-addon-activecampaign-form-settings.php → class-forminator-addon-activecampaign-form-settings.php} +33 -38
- addons/pro/activecampaign/{forminator-addon-activecampaign.php → class-forminator-addon-activecampaign.php} +6 -12
- addons/pro/activecampaign/lib/{class-wp-activecampaign-api-exception.php → class-forminator-addon-activecampaign-wp-api-exception.php} +0 -0
- addons/pro/activecampaign/lib/{class-wp-activecampaign-api-not-found-exception.php → class-forminator-addon-activecampaign-wp-api-not-found-exception.php} +0 -0
- addons/pro/activecampaign/lib/{class-wp-activecampaign-api.php → class-forminator-addon-activecampaign-wp-api.php} +13 -11
- addons/pro/activecampaign/views/form-settings/select-list.php +1 -1
- addons/pro/activecampaign/views/form-settings/setup-options.php +8 -7
- addons/pro/activecampaign/views/settings/setup-api-success.php +4 -1
- addons/pro/activecampaign/views/settings/setup-api.php +11 -6
- addons/pro/aweber/aweber.php +3 -3
- addons/pro/aweber/{forminator-addon-aweber-exception.php → class-forminator-addon-aweber-exception.php} +0 -0
- addons/pro/aweber/{forminator-addon-aweber-form-hooks.php → class-forminator-addon-aweber-form-hooks.php} +12 -25
- addons/pro/aweber/{forminator-addon-aweber-form-settings-exception.php → class-forminator-addon-aweber-form-settings-exception.php} +0 -0
- addons/pro/aweber/{forminator-addon-aweber-form-settings.php → class-forminator-addon-aweber-form-settings.php} +29 -34
- addons/pro/aweber/{forminator-addon-aweber.php → class-forminator-addon-aweber.php} +2 -4
- addons/pro/aweber/lib/{class-aweber-oauth.php → class-forminator-addon-aweber-oauth.php} +1 -2
- addons/pro/aweber/lib/{class-wp-aweber-api-exception.php → class-forminator-addon-aweber-wp-api-exception.php} +0 -0
- addons/pro/aweber/lib/{class-wp-aweber-api-not-found-exception.php → class-forminator-addon-aweber-wp-api-not-found-exception.php} +0 -0
- addons/pro/aweber/lib/{class-wp-aweber-api.php → class-forminator-addon-aweber-wp-api.php} +15 -15
- addons/pro/aweber/views/form-settings/setup-options.php +5 -5
- addons/pro/aweber/views/sections/authorize.php +12 -11
- addons/pro/aweber/views/settings/authorize.php +12 -2
- addons/pro/aweber/views/settings/success-authorize.php +6 -1
- addons/pro/aweber/views/settings/wait-authorize.php +12 -2
- addons/pro/campaignmonitor/campaignmonitor.php +3 -3
- addons/pro/campaignmonitor/{forminator-addon-campaignmonitor-exception.php → class-forminator-addon-campaignmonitor-exception.php} +0 -0
- addons/pro/campaignmonitor/{forminator-addon-campaignmonitor-form-hooks.php → class-forminator-addon-campaignmonitor-form-hooks.php} +6 -15
- addons/pro/campaignmonitor/{forminator-addon-campaignmonitor-form-settings-exception.php → class-forminator-addon-campaignmonitor-form-settings-exception.php} +0 -0
- addons/pro/campaignmonitor/{forminator-addon-campaignmonitor-form-settings.php → class-forminator-addon-campaignmonitor-form-settings.php} +28 -30
- addons/pro/campaignmonitor/{forminator-addon-campaignmonitor.php → class-forminator-addon-campaignmonitor.php} +8 -12
- addons/pro/campaignmonitor/lib/{class-wp-campaignmonitor-api-exception.php → class-forminator-addon-campaignmonitor-wp-api-exception.php} +0 -0
- addons/pro/campaignmonitor/lib/{class-wp-campaignmonitor-api-not-found-exception.php → class-forminator-addon-campaignmonitor-wp-api-not-found-exception.php} +0 -0
- addons/pro/campaignmonitor/lib/{class-wp-campaignmonitor-api.php → class-forminator-addon-campaignmonitor-wp-api.php} +15 -14
- addons/pro/campaignmonitor/views/form-settings/setup-options.php +1 -1
- addons/pro/campaignmonitor/views/settings/setup-api-success.php +6 -1
- addons/pro/campaignmonitor/views/settings/setup-api.php +49 -9
- addons/pro/googlesheet/{forminator-addon-googlesheet-exception.php → class-forminator-addon-googlesheet-exception.php} +0 -0
- addons/pro/googlesheet/{forminator-addon-googlesheet-form-hooks.php → class-forminator-addon-googlesheet-form-hooks.php} +1 -5
- addons/pro/googlesheet/{forminator-addon-googlesheet-form-settings-exception.php → class-forminator-addon-googlesheet-form-settings-exception.php} +0 -0
- addons/pro/googlesheet/{forminator-addon-googlesheet-form-settings.php → class-forminator-addon-googlesheet-form-settings.php} +13 -16
- addons/pro/googlesheet/{forminator-addon-googlesheet-poll-hooks.php → class-forminator-addon-googlesheet-poll-hooks.php} +1 -4
- addons/pro/googlesheet/{forminator-addon-googlesheet-poll-settings-exception.php → class-forminator-addon-googlesheet-poll-settings-exception.php} +0 -0
- addons/pro/googlesheet/{forminator-addon-googlesheet-poll-settings.php → class-forminator-addon-googlesheet-poll-settings.php} +13 -16
- addons/pro/googlesheet/{forminator-addon-googlesheet-quiz-hooks.php → class-forminator-addon-googlesheet-quiz-hooks.php} +4 -11
- addons/pro/googlesheet/{forminator-addon-googlesheet-quiz-settings-exception.php → class-forminator-addon-googlesheet-quiz-settings-exception.php} +0 -0
- addons/pro/googlesheet/{forminator-addon-googlesheet-quiz-settings.php → class-forminator-addon-googlesheet-quiz-settings.php} +5 -10
- addons/pro/googlesheet/{forminator-addon-googlesheet.php → class-forminator-addon-googlesheet.php} +6 -12
- addons/pro/googlesheet/googlesheet.php +8 -8
- addons/pro/googlesheet/lib/{class-wp-googlesheet-client-logger.php → class-forminator-addon-wp-googlesheet-client-logger.php} +0 -0
- addons/pro/googlesheet/views/form-settings/pick-name.php +1 -1
- addons/pro/googlesheet/views/form-settings/setup-sheet.php +13 -8
- addons/pro/googlesheet/views/poll-settings/pick-name.php +1 -1
- addons/pro/googlesheet/views/poll-settings/setup-sheet.php +13 -8
- addons/pro/googlesheet/views/quiz-settings/pick-name.php +1 -1
- addons/pro/googlesheet/views/quiz-settings/setup-sheet.php +13 -8
- addons/pro/googlesheet/views/sections/authorize.php +6 -5
- addons/pro/googlesheet/views/settings/authorize.php +1 -1
- addons/pro/googlesheet/views/settings/setup-client.php +74 -11
- addons/pro/googlesheet/views/settings/success-authorize.php +1 -1
- addons/pro/googlesheet/views/settings/wait-authorize.php +2 -2
- addons/pro/gutenberg/gutenberg.php +2 -2
- addons/pro/gutenberg/library/blocks/{class-block-forms.php → class-forminator-gfblock-forms.php} +9 -9
- addons/pro/gutenberg/library/blocks/{class-block-polls.php → class-forminator-gfblock-polls.php} +10 -10
- addons/pro/gutenberg/library/blocks/{class-block-quizzes.php → class-forminator-gfblock-quizzes.php} +11 -11
- addons/pro/gutenberg/library/{abstract-class-block.php → class-forminator-gfblock-abstract.php} +22 -15
- addons/pro/gutenberg/webpack.common.js +1 -1
- addons/pro/gutenberg/webpack.dev.js +7 -4
- addons/pro/gutenberg/webpack.prod.js +13 -8
- addons/pro/hubspot/{forminator-addon-hubspot-exception.php → class-forminator-addon-hubspot-exception.php} +0 -0
- addons/pro/hubspot/{forminator-addon-hubspot-form-hooks.php → class-forminator-addon-hubspot-form-hooks.php} +3 -8
- addons/pro/hubspot/{forminator-addon-hubspot-form-settings-exception.php → class-forminator-addon-hubspot-form-settings-exception.php} +0 -0
- addons/pro/hubspot/{forminator-addon-hubspot-form-settings.php → class-forminator-addon-hubspot-form-settings.php} +8 -7
- addons/pro/hubspot/{forminator-addon-hubspot.php → class-forminator-addon-hubspot.php} +36 -25
- addons/pro/hubspot/hubspot.php +3 -3
- addons/pro/hubspot/lib/{class-wp-hubspot-api-exception.php → class-forminator-addon-hubspot-wp-api-exception.php} +0 -0
- addons/pro/hubspot/lib/{class-wp-hubspot-api-not-found-exception.php → class-forminator-addon-hubspot-wp-api-not-found-exception.php} +0 -0
- addons/pro/hubspot/lib/{class-wp-hubspot-api.php → class-forminator-addon-hubspot-wp-api.php} +13 -11
- addons/pro/hubspot/views/form-settings/create-contact.php +56 -53
- addons/pro/hubspot/views/form-settings/create-ticket.php +1 -1
- addons/pro/hubspot/views/sections/authorize.php +3 -3
- addons/pro/hubspot/views/settings/authorize.php +14 -4
- addons/pro/hubspot/views/settings/error-authorize.php +6 -1
- addons/pro/hubspot/views/settings/success-authorize.php +7 -2
- addons/pro/hubspot/views/settings/wait-authorize.php +15 -5
- addons/pro/mailchimp/{forminator-addon-mailchimp-exception.php → class-forminator-addon-mailchimp-exception.php} +0 -0
- addons/pro/mailchimp/{forminator-addon-mailchimp-form-hooks.php → class-forminator-addon-mailchimp-form-hooks.php} +31 -72
- addons/pro/mailchimp/{forminator-addon-mailchimp-form-settings-exception.php → class-forminator-addon-mailchimp-form-settings-exception.php} +0 -0
- addons/pro/mailchimp/{forminator-addon-mailchimp-form-settings.php → class-forminator-addon-mailchimp-form-settings.php} +64 -57
- addons/pro/mailchimp/{forminator-addon-mailchimp.php → class-forminator-addon-mailchimp.php} +30 -22
- addons/pro/mailchimp/lib/{class-wp-mailchimp-api-exception.php → class-forminator-addon-mailchimp-wp-api-exception.php} +0 -0
- addons/pro/mailchimp/lib/{class-wp-mailchimp-api-not-found-exception.php → class-forminator-addon-mailchimp-wp-api-not-found-exception.php} +0 -0
- addons/pro/mailchimp/lib/{class-wp-mailchimp-api.php → class-forminator-addon-mailchimp-wp-api.php} +21 -18
- addons/pro/mailchimp/mailchimp.php +3 -3
- addons/pro/slack/{forminator-addon-slack-exception.php → class-forminator-addon-slack-exception.php} +0 -0
- addons/pro/slack/{forminator-addon-slack-form-hooks.php → class-forminator-addon-slack-form-hooks.php} +5 -9
- addons/pro/slack/{forminator-addon-slack-form-settings-exception.php → class-forminator-addon-slack-form-settings-exception.php} +0 -0
- addons/pro/slack/{forminator-addon-slack-form-settings.php → class-forminator-addon-slack-form-settings.php} +25 -24
- addons/pro/slack/{forminator-addon-slack-poll-hooks.php → class-forminator-addon-slack-poll-hooks.php} +1 -4
- addons/pro/slack/{forminator-addon-slack-poll-settings-exception.php → class-forminator-addon-slack-poll-settings-exception.php} +0 -0
- addons/pro/slack/{forminator-addon-slack-poll-settings.php → class-forminator-addon-slack-poll-settings.php} +25 -24
- addons/pro/slack/{forminator-addon-slack-quiz-hooks.php → class-forminator-addon-slack-quiz-hooks.php} +4 -12
- addons/pro/slack/{forminator-addon-slack-quiz-settings-exception.php → class-forminator-addon-slack-quiz-settings-exception.php} +0 -0
- addons/pro/slack/{forminator-addon-slack-quiz-settings.php → class-forminator-addon-slack-quiz-settings.php} +9 -12
- addons/pro/slack/{forminator-addon-slack.php → class-forminator-addon-slack.php} +7 -12
- addons/pro/slack/lib/{class-wp-slack-api-exception.php → class-forminator-addon-slack-wp-api-exception.php} +0 -0
- addons/pro/slack/lib/{class-wp-slack-api-not-found-exception.php → class-forminator-addon-slack-wp-api-not-found-exception.php} +0 -0
- addons/pro/slack/lib/{class-wp-slack-api.php → class-forminator-addon-slack-wp-api.php} +12 -10
- addons/pro/slack/slack.php +7 -7
- addons/pro/slack/views/form-settings/setup-message.php +9 -5
- addons/pro/slack/views/poll-settings/setup-message.php +12 -8
- addons/pro/slack/views/quiz-settings/setup-message.php +8 -6
- addons/pro/slack/views/sections/authorize.php +6 -5
- addons/pro/slack/views/settings/authorize.php +6 -1
- addons/pro/slack/views/settings/error-authorize.php +4 -1
- addons/pro/slack/views/settings/setup-client.php +62 -32
- addons/pro/slack/views/settings/success-authorize.php +4 -1
- addons/pro/slack/views/settings/wait-authorize.php +2 -2
- addons/pro/trello/{forminator-addon-trello-exception.php → class-forminator-addon-trello-exception.php} +0 -0
- addons/pro/trello/{forminator-addon-trello-form-hooks.php → class-forminator-addon-trello-form-hooks.php} +4 -9
- addons/pro/trello/{forminator-addon-trello-form-settings-exception.php → class-forminator-addon-trello-form-settings-exception.php} +0 -0
- addons/pro/trello/{forminator-addon-trello-form-settings.php → class-forminator-addon-trello-form-settings.php} +26 -24
- addons/pro/trello/{forminator-addon-trello-poll-hooks.php → class-forminator-addon-trello-poll-hooks.php} +3 -9
- addons/pro/trello/{forminator-addon-trello-poll-settings-exception.php → class-forminator-addon-trello-poll-settings-exception.php} +0 -0
- addons/pro/trello/{forminator-addon-trello-poll-settings.php → class-forminator-addon-trello-poll-settings.php} +26 -25
- addons/pro/trello/{forminator-addon-trello-quiz-hooks.php → class-forminator-addon-trello-quiz-hooks.php} +16 -22
- addons/pro/trello/{forminator-addon-trello-quiz-settings-exception.php → class-forminator-addon-trello-quiz-settings-exception.php} +0 -0
- addons/pro/trello/{forminator-addon-trello-quiz-settings.php → class-forminator-addon-trello-quiz-settings.php} +10 -13
- addons/pro/trello/{forminator-addon-trello.php → class-forminator-addon-trello.php} +3 -5
- addons/pro/trello/lib/{class-wp-trello-api-exception.php → class-forminator-addon-trello-wp-api-exception.php} +0 -0
- addons/pro/trello/lib/{class-wp-trello-api-not-found-exception.php → class-forminator-addon-trello-wp-api-not-found-exception.php} +0 -0
- addons/pro/trello/lib/{class-wp-trello-api.php → class-forminator-addon-trello-wp-api.php} +9 -8
- addons/pro/trello/trello.php +7 -7
- addons/pro/trello/views/form-settings/setup-card.php +17 -17
- addons/pro/trello/views/form-settings/setup-list.php +3 -2
- addons/pro/trello/views/poll-settings/setup-card.php +20 -20
- addons/pro/trello/views/poll-settings/setup-list.php +3 -2
- addons/pro/trello/views/quiz-settings/setup-card.php +20 -20
- addons/pro/trello/views/quiz-settings/setup-list.php +3 -2
- addons/pro/trello/views/sections/authorize.php +12 -11
- addons/pro/trello/views/settings/authorize.php +7 -3
- addons/pro/trello/views/settings/success-authorize.php +4 -1
- addons/pro/trello/views/settings/wait-authorize.php +0 -1
- addons/pro/zapier/{forminator-addon-zapier-exception.php → class-forminator-addon-zapier-exception.php} +0 -0
- addons/pro/zapier/{forminator-addon-zapier-form-hooks.php → class-forminator-addon-zapier-form-hooks.php} +0 -5
- addons/pro/zapier/{forminator-addon-zapier-form-settings-exception.php → class-forminator-addon-zapier-form-settings-exception.php} +0 -0
- addons/pro/zapier/{forminator-addon-zapier-form-settings.php → class-forminator-addon-zapier-form-settings.php} +9 -8
- addons/pro/zapier/{forminator-addon-zapier-poll-hooks.php → class-forminator-addon-zapier-poll-hooks.php} +0 -4
- addons/pro/zapier/{forminator-addon-zapier-poll-settings-exception.php → class-forminator-addon-zapier-poll-settings-exception.php} +0 -0
- addons/pro/zapier/{forminator-addon-zapier-poll-settings.php → class-forminator-addon-zapier-poll-settings.php} +7 -10
- addons/pro/zapier/{forminator-addon-zapier-quiz-hooks.php → class-forminator-addon-zapier-quiz-hooks.php} +3 -9
- addons/pro/zapier/{forminator-addon-zapier-quiz-settings-exception.php → class-forminator-addon-zapier-quiz-settings-exception.php} +0 -0
- addons/pro/zapier/{forminator-addon-zapier-quiz-settings.php → class-forminator-addon-zapier-quiz-settings.php} +5 -8
- addons/pro/zapier/{forminator-addon-zapier.php → class-forminator-addon-zapier.php} +10 -7
- addons/pro/zapier/lib/{class-wp-zapier-api-exception.php → class-forminator-addon-zapier-wp-api-exception.php} +0 -0
- addons/pro/zapier/lib/{class-wp-zapier-api-not-found-exception.php → class-forminator-addon-zapier-wp-api-not-found-exception.php} +0 -0
- addons/pro/zapier/lib/{class-wp-zapier-api.php → class-forminator-addon-zapier-wp-api.php} +6 -5
- addons/pro/zapier/views/poll-settings/setup-webhook.php +12 -9
- addons/pro/zapier/views/quiz-settings/setup-webhook.php +12 -9
- addons/pro/zapier/views/settings/setup-connect-success.php +4 -1
- addons/pro/zapier/views/settings/setup-connect.php +6 -1
- addons/pro/zapier/zapier.php +7 -7
- admin/abstracts/class-admin-import-mediator.php +2 -0
- admin/abstracts/class-admin-module.php +6 -6
- admin/abstracts/class-admin-page.php +12 -7
- admin/classes/class-admin-ajax.php +169 -172
- admin/classes/class-admin-data.php +38 -3
- admin/classes/class-admin-l10n.php +124 -119
- admin/classes/class-admin.php +51 -51
- admin/locale.php +390 -285
- admin/pages/dashboard-page.php +6 -3
- admin/pages/entries-page.php +30 -26
- admin/pages/integrations-page.php +2 -2
- admin/pages/settings-page.php +2 -3
- admin/views/boxes/content-box.php +9 -9
- admin/views/boxes/popup-box.php +7 -7
- admin/views/custom-form/entries/content.php +101 -42
- admin/views/custom-form/entries/filter.php +51 -49
- admin/views/custom-form/entries/header.php +2 -2
- admin/views/custom-form/entries/popup/schedule-export-content.php +62 -62
- admin/views/custom-form/entries/prompt.php +12 -12
- admin/views/custom-form/list/content.php +59 -53
- admin/views/custom-form/list/header.php +2 -2
- admin/views/custom-form/popup/export.php +6 -4
- admin/views/custom-form/wizard/header.php +1 -0
- admin/views/dashboard/content.php +1 -1
- admin/views/dashboard/footer-free.php +2 -2
- admin/views/dashboard/header.php +2 -2
- admin/views/dashboard/stripe-notice.php +4 -4
- admin/views/dashboard/widgets/widget-cform.php +17 -15
- admin/views/dashboard/widgets/widget-create.php +11 -11
- admin/views/dashboard/widgets/widget-poll.php +22 -20
- admin/views/dashboard/widgets/widget-quiz.php +20 -18
- admin/views/dashboard/widgets/widget-resume.php +6 -7
- admin/views/entries/content.php +11 -11
- admin/views/entries/header.php +2 -2
- admin/views/integrations/addon.php +14 -10
- admin/views/integrations/content.php +13 -13
- admin/views/integrations/form-content.php +7 -6
- admin/views/integrations/header.php +2 -2
- admin/views/integrations/page-content.php +9 -7
- admin/views/integrations/poll-content.php +9 -7
- admin/views/integrations/quiz-addon.php +28 -29
- admin/views/integrations/quiz-content.php +6 -6
- admin/views/poll/entries/content-none.php +8 -8
- admin/views/poll/entries/content.php +28 -25
- admin/views/poll/entries/header.php +2 -2
- admin/views/poll/list/content.php +59 -55
- admin/views/poll/list/header.php +2 -2
- admin/views/poll/popup/export.php +6 -4
- admin/views/poll/wizard/header.php +1 -0
- admin/views/quiz/entries/content.php +42 -34
- admin/views/quiz/entries/header.php +2 -2
- admin/views/quiz/knowledge/header.php +1 -0
- admin/views/quiz/list/content.php +59 -55
- admin/views/quiz/list/header.php +3 -3
- admin/views/quiz/nowrong/header.php +1 -0
- admin/views/quiz/popup/export.php +6 -4
- admin/views/settings/content.php +8 -8
- admin/views/settings/dashboard/polls.php +2 -2
- admin/views/settings/data/forms-privacy.php +51 -54
- admin/views/settings/data/polls-privacy.php +53 -56
- admin/views/settings/data/quizzes-privacy.php +19 -24
- admin/views/settings/header.php +2 -2
- admin/views/settings/payments/paypal.php +8 -8
- admin/views/settings/payments/section-paypal.php +58 -58
- admin/views/settings/payments/section-stripe.php +9 -8
- admin/views/settings/payments/stripe.php +1 -1
- admin/views/settings/tab-accessibility.php +10 -11
- admin/views/settings/tab-dashboard.php +1 -2
- admin/views/settings/tab-data.php +14 -12
- admin/views/settings/tab-emails.php +40 -40
- admin/views/settings/tab-pagination.php +39 -39
- admin/views/settings/tab-payments.php +1 -1
- admin/views/settings/tab-recaptcha.php +4 -5
- admin/views/settings/tab-submissions.php +2 -3
- assets/css/forminator-scgen.min.css +0 -1
addons/pro/activecampaign/activecampaign.php
CHANGED
@@ -23,8 +23,8 @@ function forminator_addon_activecampaign_assets_url() {
|
|
23 |
return trailingslashit( forminator_addon_activecampaign_url() . 'assets' );
|
24 |
}
|
25 |
|
26 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-activecampaign.php';
|
27 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-activecampaign-form-settings.php';
|
28 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-activecampaign-form-hooks.php';
|
29 |
//Direct Load
|
30 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Activecampaign' );
|
23 |
return trailingslashit( forminator_addon_activecampaign_url() . 'assets' );
|
24 |
}
|
25 |
|
26 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-activecampaign.php';
|
27 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-activecampaign-form-settings.php';
|
28 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-activecampaign-form-hooks.php';
|
29 |
//Direct Load
|
30 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Activecampaign' );
|
addons/pro/activecampaign/{forminator-addon-activecampaign-exception.php → class-forminator-addon-activecampaign-exception.php}
RENAMED
File without changes
|
addons/pro/activecampaign/{forminator-addon-activecampaign-form-hooks.php → class-forminator-addon-activecampaign-form-hooks.php}
RENAMED
@@ -101,7 +101,6 @@ class Forminator_Addon_Activecampaign_Form_Hooks extends Forminator_Addon_Form_H
|
|
101 |
'value' => $this->get_status_on_contact_sync( $key, $submitted_data, $addon_setting_value, $form_settings, $form_entry_fields ),
|
102 |
);
|
103 |
}
|
104 |
-
|
105 |
}
|
106 |
|
107 |
$entry_fields = $data;
|
@@ -165,7 +164,7 @@ class Forminator_Addon_Activecampaign_Form_Hooks extends Forminator_Addon_Form_H
|
|
165 |
|
166 |
$email_element_id = $connection_settings['fields_map']['email'];
|
167 |
if ( ! isset( $submitted_data[ $email_element_id ] ) || empty( $submitted_data[ $email_element_id ] ) ) {
|
168 |
-
throw new Forminator_Addon_Activecampaign_Exception( __( 'Email on element
|
169 |
}
|
170 |
$email = $submitted_data[ $email_element_id ];
|
171 |
$email = strtolower( trim( $email ) );
|
@@ -206,7 +205,6 @@ class Forminator_Addon_Activecampaign_Form_Hooks extends Forminator_Addon_Form_H
|
|
206 |
$args[ $common_field ] = $element_value;
|
207 |
unset( $element_value ); // unset for next loop
|
208 |
}
|
209 |
-
|
210 |
}
|
211 |
// processed
|
212 |
unset( $fields_map[ $common_field ] );
|
@@ -240,7 +238,7 @@ class Forminator_Addon_Activecampaign_Form_Hooks extends Forminator_Addon_Form_H
|
|
240 |
$tags = array();
|
241 |
foreach ( $connection_settings['tags'] as $tag ) {
|
242 |
if ( stripos( $tag, '{' ) === 0
|
243 |
-
|
244 |
) {
|
245 |
// translate to value
|
246 |
$element_id = str_ireplace( '{', '', $tag );
|
@@ -256,15 +254,12 @@ class Forminator_Addon_Activecampaign_Form_Hooks extends Forminator_Addon_Form_H
|
|
256 |
if ( is_array( $element_value ) ) {
|
257 |
$element_value = implode( ',', $element_value );
|
258 |
}
|
259 |
-
|
260 |
}
|
261 |
|
262 |
if ( isset( $element_value ) ) {
|
263 |
$tags[] = $element_value;
|
264 |
unset( $element_value ); // unset for next loop
|
265 |
}
|
266 |
-
|
267 |
-
|
268 |
} else {
|
269 |
$tags[] = $tag;
|
270 |
}
|
@@ -377,7 +372,6 @@ class Forminator_Addon_Activecampaign_Form_Hooks extends Forminator_Addon_Form_H
|
|
377 |
$form_settings_instance
|
378 |
);
|
379 |
|
380 |
-
|
381 |
$addon_meta_datas = $addon_meta_data;
|
382 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
383 |
return array();
|
@@ -433,7 +427,6 @@ class Forminator_Addon_Activecampaign_Form_Hooks extends Forminator_Addon_Form_H
|
|
433 |
'value' => '',
|
434 |
);
|
435 |
|
436 |
-
|
437 |
$sub_entries = array();
|
438 |
if ( isset( $status['connection_name'] ) ) {
|
439 |
$sub_entries[] = array(
|
@@ -481,7 +474,6 @@ class Forminator_Addon_Activecampaign_Form_Hooks extends Forminator_Addon_Form_H
|
|
481 |
}
|
482 |
}
|
483 |
|
484 |
-
|
485 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
486 |
|
487 |
// return single array
|
@@ -725,7 +717,6 @@ class Forminator_Addon_Activecampaign_Form_Hooks extends Forminator_Addon_Form_H
|
|
725 |
}
|
726 |
}
|
727 |
}
|
728 |
-
|
729 |
}
|
730 |
}
|
731 |
|
101 |
'value' => $this->get_status_on_contact_sync( $key, $submitted_data, $addon_setting_value, $form_settings, $form_entry_fields ),
|
102 |
);
|
103 |
}
|
|
|
104 |
}
|
105 |
|
106 |
$entry_fields = $data;
|
164 |
|
165 |
$email_element_id = $connection_settings['fields_map']['email'];
|
166 |
if ( ! isset( $submitted_data[ $email_element_id ] ) || empty( $submitted_data[ $email_element_id ] ) ) {
|
167 |
+
throw new Forminator_Addon_Activecampaign_Exception( __( 'Email on element not found or not filled on submitted data.', Forminator::DOMAIN ) );
|
168 |
}
|
169 |
$email = $submitted_data[ $email_element_id ];
|
170 |
$email = strtolower( trim( $email ) );
|
205 |
$args[ $common_field ] = $element_value;
|
206 |
unset( $element_value ); // unset for next loop
|
207 |
}
|
|
|
208 |
}
|
209 |
// processed
|
210 |
unset( $fields_map[ $common_field ] );
|
238 |
$tags = array();
|
239 |
foreach ( $connection_settings['tags'] as $tag ) {
|
240 |
if ( stripos( $tag, '{' ) === 0
|
241 |
+
&& stripos( $tag, '}' ) === ( strlen( $tag ) - 1 )
|
242 |
) {
|
243 |
// translate to value
|
244 |
$element_id = str_ireplace( '{', '', $tag );
|
254 |
if ( is_array( $element_value ) ) {
|
255 |
$element_value = implode( ',', $element_value );
|
256 |
}
|
|
|
257 |
}
|
258 |
|
259 |
if ( isset( $element_value ) ) {
|
260 |
$tags[] = $element_value;
|
261 |
unset( $element_value ); // unset for next loop
|
262 |
}
|
|
|
|
|
263 |
} else {
|
264 |
$tags[] = $tag;
|
265 |
}
|
372 |
$form_settings_instance
|
373 |
);
|
374 |
|
|
|
375 |
$addon_meta_datas = $addon_meta_data;
|
376 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
377 |
return array();
|
427 |
'value' => '',
|
428 |
);
|
429 |
|
|
|
430 |
$sub_entries = array();
|
431 |
if ( isset( $status['connection_name'] ) ) {
|
432 |
$sub_entries[] = array(
|
474 |
}
|
475 |
}
|
476 |
|
|
|
477 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
478 |
|
479 |
// return single array
|
717 |
}
|
718 |
}
|
719 |
}
|
|
|
720 |
}
|
721 |
}
|
722 |
|
addons/pro/activecampaign/{forminator-addon-activecampaign-form-settings-exception.php → class-forminator-addon-activecampaign-form-settings-exception.php}
RENAMED
File without changes
|
addons/pro/activecampaign/{forminator-addon-activecampaign-form-settings.php → class-forminator-addon-activecampaign-form-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-activecampaign-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Activecampaign_Form_Settings
|
@@ -62,11 +62,6 @@ class Forminator_Addon_Activecampaign_Form_Settings extends Forminator_Addon_For
|
|
62 |
'callback' => array( $this, 'map_fields' ),
|
63 |
'is_completed' => array( $this, 'map_fields_is_completed' ),
|
64 |
),
|
65 |
-
//todo: allow fe to support this
|
66 |
-
// array(
|
67 |
-
// 'callback' => array( $this, 'extra_field' ),
|
68 |
-
// 'is_completed' => array( $this, 'extra_field' ),
|
69 |
-
// ),
|
70 |
array(
|
71 |
'callback' => array( $this, 'setup_options' ),
|
72 |
'is_completed' => array( $this, 'setup_options_is_completed' ),
|
@@ -127,15 +122,16 @@ class Forminator_Addon_Activecampaign_Form_Settings extends Forminator_Addon_For
|
|
127 |
|
128 |
$buttons = array();
|
129 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
130 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
131 |
-
|
132 |
-
|
|
|
133 |
);
|
134 |
}
|
135 |
|
136 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
137 |
-
|
138 |
-
|
139 |
|
140 |
return array(
|
141 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -200,11 +196,10 @@ class Forminator_Addon_Activecampaign_Form_Settings extends Forminator_Addon_For
|
|
200 |
'lists' => array(),
|
201 |
);
|
202 |
|
203 |
-
|
204 |
$is_submit = ! empty( $submitted_data );
|
205 |
$has_errors = false;
|
206 |
|
207 |
-
$lists
|
208 |
$custom_fields = array();
|
209 |
|
210 |
try {
|
@@ -214,7 +209,7 @@ class Forminator_Addon_Activecampaign_Form_Settings extends Forminator_Addon_For
|
|
214 |
foreach ( $lists_request as $key => $data ) {
|
215 |
if ( isset( $data->id ) && isset( $data->name ) ) {
|
216 |
$lists[ $data->id ] = $data->name;
|
217 |
-
if( isset( $data->fields ) ){
|
218 |
$custom_fields[ $data->id ] = $data->fields;
|
219 |
}
|
220 |
}
|
@@ -245,7 +240,7 @@ class Forminator_Addon_Activecampaign_Form_Settings extends Forminator_Addon_For
|
|
245 |
throw new Forminator_Addon_Activecampaign_Exception( __( 'Please pick valid list' ) );
|
246 |
}
|
247 |
|
248 |
-
if( ! empty( $custom_fields ) ){
|
249 |
$this->custom_fields = $custom_fields[ $list_id ];
|
250 |
}
|
251 |
|
@@ -267,15 +262,16 @@ class Forminator_Addon_Activecampaign_Form_Settings extends Forminator_Addon_For
|
|
267 |
|
268 |
$buttons = array();
|
269 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
270 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
271 |
-
|
272 |
-
|
|
|
273 |
);
|
274 |
}
|
275 |
|
276 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
277 |
-
|
278 |
-
|
279 |
|
280 |
return array(
|
281 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -372,9 +368,8 @@ class Forminator_Addon_Activecampaign_Form_Settings extends Forminator_Addon_For
|
|
372 |
$ac_api = $this->addon->get_api();
|
373 |
$list_detail = $ac_api->get_list( $list_id );
|
374 |
|
375 |
-
|
376 |
//get global fields assigned to the form as well as explecit field
|
377 |
-
if ( ! empty( $this->custom_fields ) && is_array( $this->custom_fields ) ){
|
378 |
foreach ( $this->custom_fields as $field ) {
|
379 |
$fields[ $field->id ] = $field->title;
|
380 |
}
|
@@ -407,6 +402,7 @@ class Forminator_Addon_Activecampaign_Form_Settings extends Forminator_Addon_For
|
|
407 |
$element_id = $fields_map[ $key ];
|
408 |
if ( ! in_array( $element_id, $forminator_field_element_ids, true ) ) {
|
409 |
$input_exceptions->add_input_exception(
|
|
|
410 |
sprintf( __( 'Please assign valid field for %s', Forminator::DOMAIN ), $title ),
|
411 |
$key . '_error'
|
412 |
);
|
@@ -434,15 +430,16 @@ class Forminator_Addon_Activecampaign_Form_Settings extends Forminator_Addon_For
|
|
434 |
|
435 |
$buttons = array();
|
436 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
437 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
438 |
-
|
439 |
-
|
|
|
440 |
);
|
441 |
}
|
442 |
|
443 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
444 |
-
|
445 |
-
|
446 |
|
447 |
return array(
|
448 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -537,16 +534,15 @@ class Forminator_Addon_Activecampaign_Form_Settings extends Forminator_Addon_For
|
|
537 |
foreach ( $saved_tags as $key => $saved_tag ) {
|
538 |
// using form data
|
539 |
if ( stripos( $saved_tag, '{' ) === 0
|
540 |
-
|
541 |
) {
|
542 |
$element_id = str_ireplace( '{', '', $saved_tag );
|
543 |
$element_id = str_ireplace( '}', '', $element_id );
|
544 |
if ( in_array( $element_id, array_keys( $forminator_form_element_ids ), true ) ) {
|
545 |
$forminator_form_element_ids[ $element_id ]['field_label'] = $forminator_form_element_ids[ $element_id ]['field_label'] .
|
546 |
-
|
547 |
$forminator_form_element_ids[ $element_id ]['element_id'] = '{' . $forminator_form_element_ids[ $element_id ]['element_id'] . '}';
|
548 |
|
549 |
-
|
550 |
$tag_selected_fields[] = $forminator_form_element_ids[ $element_id ];
|
551 |
// let this go, its already selected.
|
552 |
unset( $forminator_form_element_ids[ $element_id ] );
|
@@ -554,8 +550,7 @@ class Forminator_Addon_Activecampaign_Form_Settings extends Forminator_Addon_For
|
|
554 |
// no more exist on element ids let it go
|
555 |
unset( $saved_tags[ $key ] );
|
556 |
}
|
557 |
-
|
558 |
-
} else {// free form type
|
559 |
$tag_selected_fields[] = array(
|
560 |
'element_id' => $saved_tag,
|
561 |
'field_label' => $saved_tag,
|
@@ -566,7 +561,6 @@ class Forminator_Addon_Activecampaign_Form_Settings extends Forminator_Addon_For
|
|
566 |
$template_params['tags_fields'] = $forminator_form_element_ids;
|
567 |
$template_params['tags_selected_fields'] = $tag_selected_fields;
|
568 |
|
569 |
-
|
570 |
$is_submit = ! empty( $submitted_data );
|
571 |
$has_errors = false;
|
572 |
$notification = array();
|
@@ -633,15 +627,16 @@ class Forminator_Addon_Activecampaign_Form_Settings extends Forminator_Addon_For
|
|
633 |
|
634 |
$buttons = array();
|
635 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
636 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
637 |
-
|
638 |
-
|
|
|
639 |
);
|
640 |
}
|
641 |
|
642 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
643 |
-
|
644 |
-
|
645 |
|
646 |
return array(
|
647 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-activecampaign-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Activecampaign_Form_Settings
|
62 |
'callback' => array( $this, 'map_fields' ),
|
63 |
'is_completed' => array( $this, 'map_fields_is_completed' ),
|
64 |
),
|
|
|
|
|
|
|
|
|
|
|
65 |
array(
|
66 |
'callback' => array( $this, 'setup_options' ),
|
67 |
'is_completed' => array( $this, 'setup_options_is_completed' ),
|
122 |
|
123 |
$buttons = array();
|
124 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
125 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
126 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
127 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
128 |
+
esc_html__( 'Deactivate this ActiveCampaign Integration from this Form.', Forminator::DOMAIN )
|
129 |
);
|
130 |
}
|
131 |
|
132 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
133 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
134 |
+
'</div>';
|
135 |
|
136 |
return array(
|
137 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
196 |
'lists' => array(),
|
197 |
);
|
198 |
|
|
|
199 |
$is_submit = ! empty( $submitted_data );
|
200 |
$has_errors = false;
|
201 |
|
202 |
+
$lists = array();
|
203 |
$custom_fields = array();
|
204 |
|
205 |
try {
|
209 |
foreach ( $lists_request as $key => $data ) {
|
210 |
if ( isset( $data->id ) && isset( $data->name ) ) {
|
211 |
$lists[ $data->id ] = $data->name;
|
212 |
+
if ( isset( $data->fields ) ) {
|
213 |
$custom_fields[ $data->id ] = $data->fields;
|
214 |
}
|
215 |
}
|
240 |
throw new Forminator_Addon_Activecampaign_Exception( __( 'Please pick valid list' ) );
|
241 |
}
|
242 |
|
243 |
+
if ( ! empty( $custom_fields ) ) {
|
244 |
$this->custom_fields = $custom_fields[ $list_id ];
|
245 |
}
|
246 |
|
262 |
|
263 |
$buttons = array();
|
264 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
265 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
266 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
267 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
268 |
+
esc_html__( 'Deactivate this ActiveCampaign Integration from this Form.', Forminator::DOMAIN )
|
269 |
);
|
270 |
}
|
271 |
|
272 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
273 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
274 |
+
'</div>';
|
275 |
|
276 |
return array(
|
277 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
368 |
$ac_api = $this->addon->get_api();
|
369 |
$list_detail = $ac_api->get_list( $list_id );
|
370 |
|
|
|
371 |
//get global fields assigned to the form as well as explecit field
|
372 |
+
if ( ! empty( $this->custom_fields ) && is_array( $this->custom_fields ) ) {
|
373 |
foreach ( $this->custom_fields as $field ) {
|
374 |
$fields[ $field->id ] = $field->title;
|
375 |
}
|
402 |
$element_id = $fields_map[ $key ];
|
403 |
if ( ! in_array( $element_id, $forminator_field_element_ids, true ) ) {
|
404 |
$input_exceptions->add_input_exception(
|
405 |
+
/* translators: %s: title */
|
406 |
sprintf( __( 'Please assign valid field for %s', Forminator::DOMAIN ), $title ),
|
407 |
$key . '_error'
|
408 |
);
|
430 |
|
431 |
$buttons = array();
|
432 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
433 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
434 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
435 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
436 |
+
esc_html__( 'Deactivate this ActiveCampaign Integration from this Form.', Forminator::DOMAIN )
|
437 |
);
|
438 |
}
|
439 |
|
440 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
441 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
442 |
+
'</div>';
|
443 |
|
444 |
return array(
|
445 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
534 |
foreach ( $saved_tags as $key => $saved_tag ) {
|
535 |
// using form data
|
536 |
if ( stripos( $saved_tag, '{' ) === 0
|
537 |
+
&& stripos( $saved_tag, '}' ) === ( strlen( $saved_tag ) - 1 )
|
538 |
) {
|
539 |
$element_id = str_ireplace( '{', '', $saved_tag );
|
540 |
$element_id = str_ireplace( '}', '', $element_id );
|
541 |
if ( in_array( $element_id, array_keys( $forminator_form_element_ids ), true ) ) {
|
542 |
$forminator_form_element_ids[ $element_id ]['field_label'] = $forminator_form_element_ids[ $element_id ]['field_label'] .
|
543 |
+
' | ' . $forminator_form_element_ids[ $element_id ]['element_id'];
|
544 |
$forminator_form_element_ids[ $element_id ]['element_id'] = '{' . $forminator_form_element_ids[ $element_id ]['element_id'] . '}';
|
545 |
|
|
|
546 |
$tag_selected_fields[] = $forminator_form_element_ids[ $element_id ];
|
547 |
// let this go, its already selected.
|
548 |
unset( $forminator_form_element_ids[ $element_id ] );
|
550 |
// no more exist on element ids let it go
|
551 |
unset( $saved_tags[ $key ] );
|
552 |
}
|
553 |
+
} else { // free form type
|
|
|
554 |
$tag_selected_fields[] = array(
|
555 |
'element_id' => $saved_tag,
|
556 |
'field_label' => $saved_tag,
|
561 |
$template_params['tags_fields'] = $forminator_form_element_ids;
|
562 |
$template_params['tags_selected_fields'] = $tag_selected_fields;
|
563 |
|
|
|
564 |
$is_submit = ! empty( $submitted_data );
|
565 |
$has_errors = false;
|
566 |
$notification = array();
|
627 |
|
628 |
$buttons = array();
|
629 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
630 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
631 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
632 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
633 |
+
esc_html__( 'Deactivate this ActiveCampaign Integration from this Form.', Forminator::DOMAIN )
|
634 |
);
|
635 |
}
|
636 |
|
637 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
638 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Save', Forminator::DOMAIN ), 'sui-button-primary forminator-addon-finish' ) .
|
639 |
+
'</div>';
|
640 |
|
641 |
return array(
|
642 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
addons/pro/activecampaign/{forminator-addon-activecampaign.php → class-forminator-addon-activecampaign.php}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-activecampaign-exception.php';
|
4 |
-
require_once dirname( __FILE__ ) . '/lib/class-
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Activecampaign
|
@@ -272,7 +272,6 @@ final class Forminator_Addon_Activecampaign extends Forminator_Addon_Abstract {
|
|
272 |
}
|
273 |
}
|
274 |
|
275 |
-
|
276 |
if ( $is_submit ) {
|
277 |
$api_url = isset( $submitted_data['api_url'] ) ? $submitted_data['api_url'] : '';
|
278 |
$api_key = isset( $submitted_data['api_key'] ) ? $submitted_data['api_key'] : '';
|
@@ -319,8 +318,6 @@ final class Forminator_Addon_Activecampaign extends Forminator_Addon_Abstract {
|
|
319 |
$has_errors = true;
|
320 |
}
|
321 |
}
|
322 |
-
|
323 |
-
|
324 |
}
|
325 |
|
326 |
if ( $show_success ) {
|
@@ -340,18 +337,16 @@ final class Forminator_Addon_Activecampaign extends Forminator_Addon_Abstract {
|
|
340 |
);
|
341 |
$buttons['submit'] = array(
|
342 |
'markup' => '<div class="sui-actions-right">' .
|
343 |
-
|
344 |
-
|
345 |
);
|
346 |
} else {
|
347 |
$buttons['submit'] = array(
|
348 |
'markup' => '<div class="sui-actions-right">' .
|
349 |
-
|
350 |
-
|
351 |
);
|
352 |
}
|
353 |
-
|
354 |
-
|
355 |
}
|
356 |
|
357 |
return array(
|
@@ -458,7 +453,6 @@ final class Forminator_Addon_Activecampaign extends Forminator_Addon_Abstract {
|
|
458 |
if ( isset( $setting_values['api_key'] ) ) {
|
459 |
$api_key = $setting_values['api_key'];
|
460 |
}
|
461 |
-
|
462 |
}
|
463 |
$api = new Forminator_Addon_Activecampaign_Wp_Api( $api_url, $api_key );
|
464 |
self::$api = $api;
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-activecampaign-exception.php';
|
4 |
+
require_once dirname( __FILE__ ) . '/lib/class-forminator-addon-activecampaign-wp-api.php';
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Activecampaign
|
272 |
}
|
273 |
}
|
274 |
|
|
|
275 |
if ( $is_submit ) {
|
276 |
$api_url = isset( $submitted_data['api_url'] ) ? $submitted_data['api_url'] : '';
|
277 |
$api_key = isset( $submitted_data['api_key'] ) ? $submitted_data['api_key'] : '';
|
318 |
$has_errors = true;
|
319 |
}
|
320 |
}
|
|
|
|
|
321 |
}
|
322 |
|
323 |
if ( $show_success ) {
|
337 |
);
|
338 |
$buttons['submit'] = array(
|
339 |
'markup' => '<div class="sui-actions-right">' .
|
340 |
+
self::get_button_markup( esc_html__( 'Save', Forminator::DOMAIN ), 'forminator-addon-connect' ) .
|
341 |
+
'</div>',
|
342 |
);
|
343 |
} else {
|
344 |
$buttons['submit'] = array(
|
345 |
'markup' => '<div class="sui-actions-right">' .
|
346 |
+
self::get_button_markup( esc_html__( 'CONNECT', Forminator::DOMAIN ), 'forminator-addon-connect' ) .
|
347 |
+
'</div>',
|
348 |
);
|
349 |
}
|
|
|
|
|
350 |
}
|
351 |
|
352 |
return array(
|
453 |
if ( isset( $setting_values['api_key'] ) ) {
|
454 |
$api_key = $setting_values['api_key'];
|
455 |
}
|
|
|
456 |
}
|
457 |
$api = new Forminator_Addon_Activecampaign_Wp_Api( $api_url, $api_key );
|
458 |
self::$api = $api;
|
addons/pro/activecampaign/lib/{class-wp-activecampaign-api-exception.php → class-forminator-addon-activecampaign-wp-api-exception.php}
RENAMED
File without changes
|
addons/pro/activecampaign/lib/{class-wp-activecampaign-api-not-found-exception.php → class-forminator-addon-activecampaign-wp-api-not-found-exception.php}
RENAMED
File without changes
|
addons/pro/activecampaign/lib/{class-wp-activecampaign-api.php → class-forminator-addon-activecampaign-wp-api.php}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/class-
|
4 |
-
require_once dirname( __FILE__ ) . '/class-
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Activecampaign_Wp_Api
|
@@ -108,7 +108,7 @@ class Forminator_Addon_Activecampaign_Wp_Api {
|
|
108 |
* @throws Forminator_Addon_Activecampaign_Wp_Api_Exception
|
109 |
* @throws Forminator_Addon_Activecampaign_Wp_Api_Not_Found_Exception
|
110 |
*/
|
111 |
-
private function
|
112 |
// Adding extra user agent for wp remote request
|
113 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
114 |
|
@@ -190,9 +190,10 @@ class Forminator_Addon_Activecampaign_Wp_Api {
|
|
190 |
}
|
191 |
|
192 |
if ( 404 === $status_code ) {
|
|
|
193 |
throw new Forminator_Addon_Activecampaign_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
194 |
}
|
195 |
-
|
196 |
throw new Forminator_Addon_Activecampaign_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
197 |
}
|
198 |
}
|
@@ -210,6 +211,7 @@ class Forminator_Addon_Activecampaign_Wp_Api {
|
|
210 |
if ( isset( $res->result_message ) && ! empty( $res->result_message ) ) {
|
211 |
$message = ' ' . $res->result_message;
|
212 |
}
|
|
|
213 |
throw new Forminator_Addon_Activecampaign_Wp_Api_Exception( sprintf( __( 'Failed to get ActiveCampaign data.%1$s', Forminator::DOMAIN ), $message ) );
|
214 |
}
|
215 |
}
|
@@ -248,7 +250,7 @@ class Forminator_Addon_Activecampaign_Wp_Api {
|
|
248 |
*/
|
249 |
public function post_( $args ) {
|
250 |
|
251 |
-
return $this->
|
252 |
'POST',
|
253 |
'',
|
254 |
$args
|
@@ -266,7 +268,7 @@ class Forminator_Addon_Activecampaign_Wp_Api {
|
|
266 |
*/
|
267 |
public function get_account() {
|
268 |
|
269 |
-
return $this->
|
270 |
'GET',
|
271 |
'/admin/api.php',
|
272 |
array(
|
@@ -301,7 +303,7 @@ class Forminator_Addon_Activecampaign_Wp_Api {
|
|
301 |
|
302 |
$args = array_merge( $default_args, $args );
|
303 |
|
304 |
-
$request_data = $this->
|
305 |
'GET',
|
306 |
'/admin/api.php',
|
307 |
$args
|
@@ -330,7 +332,7 @@ class Forminator_Addon_Activecampaign_Wp_Api {
|
|
330 |
|
331 |
$args = array_merge( $default_args, $args );
|
332 |
|
333 |
-
return $this->
|
334 |
'GET',
|
335 |
'/admin/api.php',
|
336 |
$args
|
@@ -355,7 +357,7 @@ class Forminator_Addon_Activecampaign_Wp_Api {
|
|
355 |
|
356 |
$args = array_merge( $default_args, $args );
|
357 |
|
358 |
-
$request_data = $this->
|
359 |
'GET',
|
360 |
'/admin/api.php',
|
361 |
$args
|
@@ -394,7 +396,7 @@ class Forminator_Addon_Activecampaign_Wp_Api {
|
|
394 |
throw new Forminator_Addon_Activecampaign_Wp_Api_Exception( __( 'Required email parameter not set', Forminator::DOMAIN ) );
|
395 |
}
|
396 |
|
397 |
-
return $this->
|
398 |
'POST',
|
399 |
'/admin/api.php' . ( '?' . http_build_query( $query_args ) ),
|
400 |
$args
|
@@ -427,7 +429,7 @@ class Forminator_Addon_Activecampaign_Wp_Api {
|
|
427 |
throw new Forminator_Addon_Activecampaign_Wp_Api_Exception( __( 'Required id parameter not set for contact_delete.', Forminator::DOMAIN ) );
|
428 |
}
|
429 |
|
430 |
-
return $this->
|
431 |
'GET',
|
432 |
'/admin/api.php',
|
433 |
$args
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-activecampaign-wp-api-exception.php';
|
4 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-activecampaign-wp-api-not-found-exception.php';
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Activecampaign_Wp_Api
|
108 |
* @throws Forminator_Addon_Activecampaign_Wp_Api_Exception
|
109 |
* @throws Forminator_Addon_Activecampaign_Wp_Api_Not_Found_Exception
|
110 |
*/
|
111 |
+
private function request( $verb = 'GET', $path, $args = array() ) {
|
112 |
// Adding extra user agent for wp remote request
|
113 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
114 |
|
190 |
}
|
191 |
|
192 |
if ( 404 === $status_code ) {
|
193 |
+
/* translators: ... */
|
194 |
throw new Forminator_Addon_Activecampaign_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
195 |
}
|
196 |
+
/* translators: ... */
|
197 |
throw new Forminator_Addon_Activecampaign_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
198 |
}
|
199 |
}
|
211 |
if ( isset( $res->result_message ) && ! empty( $res->result_message ) ) {
|
212 |
$message = ' ' . $res->result_message;
|
213 |
}
|
214 |
+
/* translators: ... */
|
215 |
throw new Forminator_Addon_Activecampaign_Wp_Api_Exception( sprintf( __( 'Failed to get ActiveCampaign data.%1$s', Forminator::DOMAIN ), $message ) );
|
216 |
}
|
217 |
}
|
250 |
*/
|
251 |
public function post_( $args ) {
|
252 |
|
253 |
+
return $this->request(
|
254 |
'POST',
|
255 |
'',
|
256 |
$args
|
268 |
*/
|
269 |
public function get_account() {
|
270 |
|
271 |
+
return $this->request(
|
272 |
'GET',
|
273 |
'/admin/api.php',
|
274 |
array(
|
303 |
|
304 |
$args = array_merge( $default_args, $args );
|
305 |
|
306 |
+
$request_data = $this->request(
|
307 |
'GET',
|
308 |
'/admin/api.php',
|
309 |
$args
|
332 |
|
333 |
$args = array_merge( $default_args, $args );
|
334 |
|
335 |
+
return $this->request(
|
336 |
'GET',
|
337 |
'/admin/api.php',
|
338 |
$args
|
357 |
|
358 |
$args = array_merge( $default_args, $args );
|
359 |
|
360 |
+
$request_data = $this->request(
|
361 |
'GET',
|
362 |
'/admin/api.php',
|
363 |
$args
|
396 |
throw new Forminator_Addon_Activecampaign_Wp_Api_Exception( __( 'Required email parameter not set', Forminator::DOMAIN ) );
|
397 |
}
|
398 |
|
399 |
+
return $this->request(
|
400 |
'POST',
|
401 |
'/admin/api.php' . ( '?' . http_build_query( $query_args ) ),
|
402 |
$args
|
429 |
throw new Forminator_Addon_Activecampaign_Wp_Api_Exception( __( 'Required id parameter not set for contact_delete.', Forminator::DOMAIN ) );
|
430 |
}
|
431 |
|
432 |
+
return $this->request(
|
433 |
'GET',
|
434 |
'/admin/api.php',
|
435 |
$args
|
addons/pro/activecampaign/views/form-settings/select-list.php
CHANGED
@@ -5,7 +5,7 @@ $vars = array(
|
|
5 |
'list_id' => '',
|
6 |
'list_id_error' => '',
|
7 |
'multi_id' => '',
|
8 |
-
'lists'
|
9 |
);
|
10 |
/** @var array $template_vars */
|
11 |
foreach ( $template_vars as $key => $val ) {
|
5 |
'list_id' => '',
|
6 |
'list_id_error' => '',
|
7 |
'multi_id' => '',
|
8 |
+
'lists' => array(),
|
9 |
);
|
10 |
/** @var array $template_vars */
|
11 |
foreach ( $template_vars as $key => $val ) {
|
addons/pro/activecampaign/views/form-settings/setup-options.php
CHANGED
@@ -91,7 +91,8 @@ foreach ( $template_vars as $key => $val ) {
|
|
91 |
<?php
|
92 |
esc_html_e(
|
93 |
'Select which ActiveCampaign form will be used when adding to ActiveCampaign to send the opt-in email. You can read more information ',
|
94 |
-
|
|
|
95 |
?>
|
96 |
<a href="https://help.activecampaign.com/hc/en-us/articles/115000839230-How-do-I-enable-double-opt-in-confirmation-" target="_blank">here</a>.
|
97 |
</span>
|
@@ -104,9 +105,9 @@ foreach ( $template_vars as $key => $val ) {
|
|
104 |
<label class="sui-toggle">
|
105 |
|
106 |
<input type="checkbox"
|
107 |
-
|
108 |
-
|
109 |
-
|
110 |
<?php checked( 1, $vars['instantresponders'] ); ?>>
|
111 |
<span class="sui-toggle-slider"></span>
|
112 |
</label>
|
@@ -131,9 +132,9 @@ foreach ( $template_vars as $key => $val ) {
|
|
131 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['lastmessage_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
132 |
<label class="sui-toggle">
|
133 |
<input type="checkbox"
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
<?php checked( 1, $vars['lastmessage'] ); ?>>
|
138 |
<span class="sui-toggle-slider"></span>
|
139 |
</label>
|
91 |
<?php
|
92 |
esc_html_e(
|
93 |
'Select which ActiveCampaign form will be used when adding to ActiveCampaign to send the opt-in email. You can read more information ',
|
94 |
+
Forminator::DOMAIN
|
95 |
+
);
|
96 |
?>
|
97 |
<a href="https://help.activecampaign.com/hc/en-us/articles/115000839230-How-do-I-enable-double-opt-in-confirmation-" target="_blank">here</a>.
|
98 |
</span>
|
105 |
<label class="sui-toggle">
|
106 |
|
107 |
<input type="checkbox"
|
108 |
+
name="instantresponders"
|
109 |
+
id="instantresponders"
|
110 |
+
value="1"
|
111 |
<?php checked( 1, $vars['instantresponders'] ); ?>>
|
112 |
<span class="sui-toggle-slider"></span>
|
113 |
</label>
|
132 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['lastmessage_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
133 |
<label class="sui-toggle">
|
134 |
<input type="checkbox"
|
135 |
+
name="lastmessage"
|
136 |
+
id="lastmessage"
|
137 |
+
value="1"
|
138 |
<?php checked( 1, $vars['lastmessage'] ); ?>>
|
139 |
<span class="sui-toggle-slider"></span>
|
140 |
</label>
|
addons/pro/activecampaign/views/settings/setup-api-success.php
CHANGED
@@ -1,6 +1,9 @@
|
|
1 |
<div class="integration-header">
|
2 |
<h3 class="sui-box-title" id="dialogTitle2">
|
3 |
-
<?php
|
|
|
|
|
|
|
4 |
</h3>
|
5 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'You can now go to your forms and assign them to this integration', Forminator::DOMAIN ); ?></span>
|
6 |
</div>
|
1 |
<div class="integration-header">
|
2 |
<h3 class="sui-box-title" id="dialogTitle2">
|
3 |
+
<?php
|
4 |
+
/* translators: %s: Addon name */
|
5 |
+
echo esc_html( sprintf( __( '%1$s Added', Forminator::DOMAIN ), 'ActiveCampaign' ) );
|
6 |
+
?>
|
7 |
</h3>
|
8 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'You can now go to your forms and assign them to this integration', Forminator::DOMAIN ); ?></span>
|
9 |
</div>
|
addons/pro/activecampaign/views/settings/setup-api.php
CHANGED
@@ -15,7 +15,12 @@ foreach ( $template_vars as $key => $val ) {
|
|
15 |
|
16 |
<div class="integration-header">
|
17 |
|
18 |
-
<h3 class="sui-box-title" id="dialogTitle2"
|
|
|
|
|
|
|
|
|
|
|
19 |
|
20 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'Setup ActiveCampaign API Access.', Forminator::DOMAIN ); ?></span>
|
21 |
|
@@ -26,15 +31,15 @@ foreach ( $template_vars as $key => $val ) {
|
|
26 |
</div>
|
27 |
|
28 |
<form>
|
29 |
-
|
30 |
<div class="sui-form-field<?php echo esc_attr( ! empty( $vars['api_url_error'] ) ? ' sui-form-field-error' : '' ); ?>">
|
31 |
|
32 |
<label class="sui-label"><?php esc_html_e( 'API URL', Forminator::DOMAIN ); ?></label>
|
33 |
|
34 |
<div class="sui-control-with-icon">
|
35 |
-
|
36 |
<input name="api_url"
|
37 |
-
placeholder="<?php echo esc_attr( sprintf( __( 'Enter %1$s API URL', Forminator::DOMAIN ), 'ActiveCampaign' ) ); ?>"
|
38 |
value="<?php echo esc_attr( $vars['api_url'] ); ?>"
|
39 |
class="sui-form-control" />
|
40 |
|
@@ -53,9 +58,9 @@ foreach ( $template_vars as $key => $val ) {
|
|
53 |
<label class="sui-label"><?php esc_html_e( 'API Key', Forminator::DOMAIN ); ?></label>
|
54 |
|
55 |
<div class="sui-control-with-icon">
|
56 |
-
|
57 |
<input name="api_key"
|
58 |
-
placeholder="<?php echo esc_attr( sprintf( __( 'Enter %1$s API Key', Forminator::DOMAIN ), 'ActiveCampaign' ) ); ?>"
|
59 |
value="<?php echo esc_attr( $vars['api_key'] ); ?>"
|
60 |
class="sui-form-control" />
|
61 |
|
15 |
|
16 |
<div class="integration-header">
|
17 |
|
18 |
+
<h3 class="sui-box-title" id="dialogTitle2">
|
19 |
+
<?php
|
20 |
+
/* translators: %s: Addon name */
|
21 |
+
echo esc_html( sprintf( __( 'Configure %1$s API', Forminator::DOMAIN ), 'ActiveCampaign' ) );
|
22 |
+
?>
|
23 |
+
</h3>
|
24 |
|
25 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'Setup ActiveCampaign API Access.', Forminator::DOMAIN ); ?></span>
|
26 |
|
31 |
</div>
|
32 |
|
33 |
<form>
|
34 |
+
|
35 |
<div class="sui-form-field<?php echo esc_attr( ! empty( $vars['api_url_error'] ) ? ' sui-form-field-error' : '' ); ?>">
|
36 |
|
37 |
<label class="sui-label"><?php esc_html_e( 'API URL', Forminator::DOMAIN ); ?></label>
|
38 |
|
39 |
<div class="sui-control-with-icon">
|
40 |
+
|
41 |
<input name="api_url"
|
42 |
+
placeholder="<?php /* translators: ... */ echo esc_attr( sprintf( __( 'Enter %1$s API URL', Forminator::DOMAIN ), 'ActiveCampaign' ) ); ?>"
|
43 |
value="<?php echo esc_attr( $vars['api_url'] ); ?>"
|
44 |
class="sui-form-control" />
|
45 |
|
58 |
<label class="sui-label"><?php esc_html_e( 'API Key', Forminator::DOMAIN ); ?></label>
|
59 |
|
60 |
<div class="sui-control-with-icon">
|
61 |
+
|
62 |
<input name="api_key"
|
63 |
+
placeholder="<?php /* translators: ... */ echo esc_attr( sprintf( __( 'Enter %1$s API Key', Forminator::DOMAIN ), 'ActiveCampaign' ) ); ?>"
|
64 |
value="<?php echo esc_attr( $vars['api_key'] ); ?>"
|
65 |
class="sui-form-control" />
|
66 |
|
addons/pro/aweber/aweber.php
CHANGED
@@ -23,8 +23,8 @@ function forminator_addon_aweber_assets_url() {
|
|
23 |
return trailingslashit( forminator_addon_aweber_url() . 'assets' );
|
24 |
}
|
25 |
|
26 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-aweber.php';
|
27 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-aweber-form-settings.php';
|
28 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-aweber-form-hooks.php';
|
29 |
//Direct Load
|
30 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Aweber' );
|
23 |
return trailingslashit( forminator_addon_aweber_url() . 'assets' );
|
24 |
}
|
25 |
|
26 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-aweber.php';
|
27 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-aweber-form-settings.php';
|
28 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-aweber-form-hooks.php';
|
29 |
//Direct Load
|
30 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Aweber' );
|
addons/pro/aweber/{forminator-addon-aweber-exception.php → class-forminator-addon-aweber-exception.php}
RENAMED
File without changes
|
addons/pro/aweber/{forminator-addon-aweber-form-hooks.php → class-forminator-addon-aweber-form-hooks.php}
RENAMED
@@ -97,7 +97,6 @@ class Forminator_Addon_Aweber_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
97 |
'value' => $this->get_status_on_add_subscriber( $key, $submitted_data, $addon_setting_value, $form_entry_fields ),
|
98 |
);
|
99 |
}
|
100 |
-
|
101 |
}
|
102 |
|
103 |
$entry_fields = $data;
|
@@ -159,11 +158,8 @@ class Forminator_Addon_Aweber_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
159 |
|
160 |
$email_element_id = $connection_settings['fields_map']['default_field_email'];
|
161 |
if ( ! isset( $submitted_data[ $email_element_id ] ) || empty( $submitted_data[ $email_element_id ] ) ) {
|
162 |
-
throw new Forminator_Addon_Aweber_Exception(
|
163 |
-
sprintf(
|
164 |
-
__( 'Email Address on element %1$s not found or not filled on submitted data.', Forminator::DOMAIN ),
|
165 |
-
$email_element_id
|
166 |
-
)
|
167 |
);
|
168 |
}
|
169 |
$email = $submitted_data[ $email_element_id ];
|
@@ -214,7 +210,6 @@ class Forminator_Addon_Aweber_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
214 |
throw new Forminator_Addon_Aweber_Exception( __( 'Unconfirmed subscriber can\'t be modified.', Forminator::DOMAIN ) );
|
215 |
}
|
216 |
}
|
217 |
-
|
218 |
}
|
219 |
}
|
220 |
|
@@ -238,7 +233,6 @@ class Forminator_Addon_Aweber_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
238 |
$args['name'] = $name;
|
239 |
}
|
240 |
|
241 |
-
|
242 |
// processed
|
243 |
unset( $fields_map['default_field_name'] );
|
244 |
|
@@ -264,7 +258,6 @@ class Forminator_Addon_Aweber_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
264 |
$custom_fields[ $fields_mapper[ $field_id ] ] = (string) $element_value; // custom value must be string
|
265 |
unset( $element_value ); // unset for next loop
|
266 |
}
|
267 |
-
|
268 |
}
|
269 |
}
|
270 |
if ( ! empty( $custom_fields ) ) {
|
@@ -311,14 +304,13 @@ class Forminator_Addon_Aweber_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
311 |
}
|
312 |
$args['ad_tracking'] = $ad_tracking;
|
313 |
}
|
314 |
-
|
315 |
}
|
316 |
|
317 |
if ( isset( $connection_settings['tags'] ) && ! empty( $connection_settings['tags'] ) ) {
|
318 |
$tags = array();
|
319 |
foreach ( $connection_settings['tags'] as $tag ) {
|
320 |
if ( stripos( $tag, '{' ) === 0
|
321 |
-
|
322 |
) {
|
323 |
// translate to value
|
324 |
$element_id = str_ireplace( '{', '', $tag );
|
@@ -340,7 +332,6 @@ class Forminator_Addon_Aweber_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
340 |
$tags[] = strtolower( (string) $element_value ); // tag must be string
|
341 |
unset( $element_value ); // unset for next loop
|
342 |
}
|
343 |
-
|
344 |
} else {
|
345 |
$tags[] = strtolower( $tag );
|
346 |
}
|
@@ -376,7 +367,6 @@ class Forminator_Addon_Aweber_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
376 |
sort( $tags );
|
377 |
$args['tags'] = $tags;
|
378 |
}
|
379 |
-
|
380 |
}
|
381 |
|
382 |
$ip_address = Forminator_Geo::get_user_ip();
|
@@ -409,7 +399,6 @@ class Forminator_Addon_Aweber_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
409 |
|
410 |
$args['ip_address'] = $ip_address;
|
411 |
|
412 |
-
|
413 |
if ( ! $subscriber_is_exist ) {
|
414 |
/**
|
415 |
* Filter arguments to passed on to Add Subscriber AWeber API
|
@@ -464,7 +453,6 @@ class Forminator_Addon_Aweber_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
464 |
'remove' => $remove_tags,
|
465 |
);
|
466 |
|
467 |
-
|
468 |
$args['tags'] = $new_tags;
|
469 |
|
470 |
/**
|
@@ -607,7 +595,6 @@ class Forminator_Addon_Aweber_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
607 |
'value' => '',
|
608 |
);
|
609 |
|
610 |
-
|
611 |
$sub_entries = array();
|
612 |
if ( isset( $status['connection_name'] ) ) {
|
613 |
$sub_entries[] = array(
|
@@ -812,13 +799,13 @@ class Forminator_Addon_Aweber_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
812 |
return $default;
|
813 |
}
|
814 |
|
815 |
-
//
|
816 |
-
//
|
817 |
-
//
|
818 |
-
//
|
819 |
-
//
|
820 |
-
//
|
821 |
-
//
|
822 |
-
//
|
823 |
-
//
|
824 |
}
|
97 |
'value' => $this->get_status_on_add_subscriber( $key, $submitted_data, $addon_setting_value, $form_entry_fields ),
|
98 |
);
|
99 |
}
|
|
|
100 |
}
|
101 |
|
102 |
$entry_fields = $data;
|
158 |
|
159 |
$email_element_id = $connection_settings['fields_map']['default_field_email'];
|
160 |
if ( ! isset( $submitted_data[ $email_element_id ] ) || empty( $submitted_data[ $email_element_id ] ) ) {
|
161 |
+
throw new Forminator_Addon_Aweber_Exception(/* translators: ... */
|
162 |
+
sprintf( __( 'Email Address on element %1$s not found or not filled on submitted data.', Forminator::DOMAIN ), $email_element_id )
|
|
|
|
|
|
|
163 |
);
|
164 |
}
|
165 |
$email = $submitted_data[ $email_element_id ];
|
210 |
throw new Forminator_Addon_Aweber_Exception( __( 'Unconfirmed subscriber can\'t be modified.', Forminator::DOMAIN ) );
|
211 |
}
|
212 |
}
|
|
|
213 |
}
|
214 |
}
|
215 |
|
233 |
$args['name'] = $name;
|
234 |
}
|
235 |
|
|
|
236 |
// processed
|
237 |
unset( $fields_map['default_field_name'] );
|
238 |
|
258 |
$custom_fields[ $fields_mapper[ $field_id ] ] = (string) $element_value; // custom value must be string
|
259 |
unset( $element_value ); // unset for next loop
|
260 |
}
|
|
|
261 |
}
|
262 |
}
|
263 |
if ( ! empty( $custom_fields ) ) {
|
304 |
}
|
305 |
$args['ad_tracking'] = $ad_tracking;
|
306 |
}
|
|
|
307 |
}
|
308 |
|
309 |
if ( isset( $connection_settings['tags'] ) && ! empty( $connection_settings['tags'] ) ) {
|
310 |
$tags = array();
|
311 |
foreach ( $connection_settings['tags'] as $tag ) {
|
312 |
if ( stripos( $tag, '{' ) === 0
|
313 |
+
&& stripos( $tag, '}' ) === ( strlen( $tag ) - 1 )
|
314 |
) {
|
315 |
// translate to value
|
316 |
$element_id = str_ireplace( '{', '', $tag );
|
332 |
$tags[] = strtolower( (string) $element_value ); // tag must be string
|
333 |
unset( $element_value ); // unset for next loop
|
334 |
}
|
|
|
335 |
} else {
|
336 |
$tags[] = strtolower( $tag );
|
337 |
}
|
367 |
sort( $tags );
|
368 |
$args['tags'] = $tags;
|
369 |
}
|
|
|
370 |
}
|
371 |
|
372 |
$ip_address = Forminator_Geo::get_user_ip();
|
399 |
|
400 |
$args['ip_address'] = $ip_address;
|
401 |
|
|
|
402 |
if ( ! $subscriber_is_exist ) {
|
403 |
/**
|
404 |
* Filter arguments to passed on to Add Subscriber AWeber API
|
453 |
'remove' => $remove_tags,
|
454 |
);
|
455 |
|
|
|
456 |
$args['tags'] = $new_tags;
|
457 |
|
458 |
/**
|
595 |
'value' => '',
|
596 |
);
|
597 |
|
|
|
598 |
$sub_entries = array();
|
599 |
if ( isset( $status['connection_name'] ) ) {
|
600 |
$sub_entries[] = array(
|
799 |
return $default;
|
800 |
}
|
801 |
|
802 |
+
// /**
|
803 |
+
// * DELETE NOT SUPPORTED HERE, BECAUSE AWEBER API NOT RETURNING SUBSCRIBER ID ON CREATE SUBSCRIBER
|
804 |
+
// *
|
805 |
+
// * @param Forminator_Form_Entry_Model $entry_model
|
806 |
+
// * @param $addon_meta_data
|
807 |
+
// */
|
808 |
+
// public function on_before_delete_entry( Forminator_Form_Entry_Model $entry_model, $addon_meta_data ) {
|
809 |
+
// parent::on_before_delete_entry( $entry_model, $addon_meta_data );
|
810 |
+
// }
|
811 |
}
|
addons/pro/aweber/{forminator-addon-aweber-form-settings-exception.php → class-forminator-addon-aweber-form-settings-exception.php}
RENAMED
File without changes
|
addons/pro/aweber/{forminator-addon-aweber-form-settings.php → class-forminator-addon-aweber-form-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-aweber-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Aweber_Form_Settings
|
@@ -56,11 +56,6 @@ class Forminator_Addon_Aweber_Form_Settings extends Forminator_Addon_Form_Settin
|
|
56 |
'callback' => array( $this, 'map_fields' ),
|
57 |
'is_completed' => array( $this, 'map_fields_is_completed' ),
|
58 |
),
|
59 |
-
//todo: allow fe to support this
|
60 |
-
// array(
|
61 |
-
// 'callback' => array( $this, 'extra_field' ),
|
62 |
-
// 'is_completed' => array( $this, 'extra_field' ),
|
63 |
-
// ),
|
64 |
array(
|
65 |
'callback' => array( $this, 'setup_options' ),
|
66 |
'is_completed' => array( $this, 'setup_options_is_completed' ),
|
@@ -122,15 +117,16 @@ class Forminator_Addon_Aweber_Form_Settings extends Forminator_Addon_Form_Settin
|
|
122 |
|
123 |
$buttons = array();
|
124 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
125 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
126 |
-
|
127 |
-
|
|
|
128 |
);
|
129 |
}
|
130 |
|
131 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
132 |
-
|
133 |
-
|
134 |
|
135 |
return array(
|
136 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -195,7 +191,6 @@ class Forminator_Addon_Aweber_Form_Settings extends Forminator_Addon_Form_Settin
|
|
195 |
'error_message' => '',
|
196 |
);
|
197 |
|
198 |
-
|
199 |
$is_submit = ! empty( $submitted_data );
|
200 |
$has_errors = false;
|
201 |
|
@@ -254,15 +249,16 @@ class Forminator_Addon_Aweber_Form_Settings extends Forminator_Addon_Form_Settin
|
|
254 |
|
255 |
$buttons = array();
|
256 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
257 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
258 |
-
|
259 |
-
|
|
|
260 |
);
|
261 |
}
|
262 |
|
263 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
264 |
-
|
265 |
-
|
266 |
|
267 |
return array(
|
268 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -384,13 +380,12 @@ class Forminator_Addon_Aweber_Form_Settings extends Forminator_Addon_Form_Settin
|
|
384 |
$input_exceptions->add_input_exception( 'Please assign field for Email Address', 'default_field_email_error' );
|
385 |
}
|
386 |
|
387 |
-
|
388 |
$fields_map_to_save = array();
|
389 |
foreach ( $fields as $key => $title ) {
|
390 |
if ( isset( $fields_map[ $key ] ) && ! empty( $fields_map[ $key ] ) ) {
|
391 |
$element_id = $fields_map[ $key ];
|
392 |
if ( ! in_array( $element_id, $forminator_field_element_ids, true ) ) {
|
393 |
-
$input_exceptions->add_input_exception(
|
394 |
sprintf( __( 'Please assign valid field for %s', Forminator::DOMAIN ), $title ),
|
395 |
$key . '_error'
|
396 |
);
|
@@ -424,15 +419,16 @@ class Forminator_Addon_Aweber_Form_Settings extends Forminator_Addon_Form_Settin
|
|
424 |
|
425 |
$buttons = array();
|
426 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
427 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
428 |
-
|
429 |
-
|
|
|
430 |
);
|
431 |
}
|
432 |
|
433 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
434 |
-
|
435 |
-
|
436 |
|
437 |
return array(
|
438 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -528,16 +524,15 @@ class Forminator_Addon_Aweber_Form_Settings extends Forminator_Addon_Form_Settin
|
|
528 |
foreach ( $saved_tags as $key => $saved_tag ) {
|
529 |
// using form data
|
530 |
if ( stripos( $saved_tag, '{' ) === 0
|
531 |
-
|
532 |
) {
|
533 |
$element_id = str_ireplace( '{', '', $saved_tag );
|
534 |
$element_id = str_ireplace( '}', '', $element_id );
|
535 |
if ( in_array( $element_id, array_keys( $forminator_form_element_ids ), true ) ) {
|
536 |
$forminator_form_element_ids[ $element_id ]['field_label'] = $forminator_form_element_ids[ $element_id ]['field_label'] .
|
537 |
-
|
538 |
$forminator_form_element_ids[ $element_id ]['element_id'] = '{' . $forminator_form_element_ids[ $element_id ]['element_id'] . '}';
|
539 |
|
540 |
-
|
541 |
$tag_selected_fields[] = $forminator_form_element_ids[ $element_id ];
|
542 |
// let this go, its already selected.
|
543 |
unset( $forminator_form_element_ids[ $element_id ] );
|
@@ -545,8 +540,7 @@ class Forminator_Addon_Aweber_Form_Settings extends Forminator_Addon_Form_Settin
|
|
545 |
// no more exist on element ids let it go
|
546 |
unset( $saved_tags[ $key ] );
|
547 |
}
|
548 |
-
|
549 |
-
} else {// free form type
|
550 |
$tag_selected_fields[] = array(
|
551 |
'element_id' => $saved_tag,
|
552 |
'field_label' => $saved_tag,
|
@@ -592,15 +586,16 @@ class Forminator_Addon_Aweber_Form_Settings extends Forminator_Addon_Form_Settin
|
|
592 |
|
593 |
$buttons = array();
|
594 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
595 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
596 |
-
|
597 |
-
|
|
|
598 |
);
|
599 |
}
|
600 |
|
601 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
602 |
-
|
603 |
-
|
604 |
|
605 |
return array(
|
606 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-aweber-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Aweber_Form_Settings
|
56 |
'callback' => array( $this, 'map_fields' ),
|
57 |
'is_completed' => array( $this, 'map_fields_is_completed' ),
|
58 |
),
|
|
|
|
|
|
|
|
|
|
|
59 |
array(
|
60 |
'callback' => array( $this, 'setup_options' ),
|
61 |
'is_completed' => array( $this, 'setup_options_is_completed' ),
|
117 |
|
118 |
$buttons = array();
|
119 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
120 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
121 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
122 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
123 |
+
esc_html__( 'Deactivate this AWeber Integration from this Form.', Forminator::DOMAIN )
|
124 |
);
|
125 |
}
|
126 |
|
127 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
128 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
129 |
+
'</div>';
|
130 |
|
131 |
return array(
|
132 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
191 |
'error_message' => '',
|
192 |
);
|
193 |
|
|
|
194 |
$is_submit = ! empty( $submitted_data );
|
195 |
$has_errors = false;
|
196 |
|
249 |
|
250 |
$buttons = array();
|
251 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
252 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
253 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
254 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
255 |
+
esc_html__( 'Deactivate this AWeber Integration from this Form.', Forminator::DOMAIN )
|
256 |
);
|
257 |
}
|
258 |
|
259 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
260 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
261 |
+
'</div>';
|
262 |
|
263 |
return array(
|
264 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
380 |
$input_exceptions->add_input_exception( 'Please assign field for Email Address', 'default_field_email_error' );
|
381 |
}
|
382 |
|
|
|
383 |
$fields_map_to_save = array();
|
384 |
foreach ( $fields as $key => $title ) {
|
385 |
if ( isset( $fields_map[ $key ] ) && ! empty( $fields_map[ $key ] ) ) {
|
386 |
$element_id = $fields_map[ $key ];
|
387 |
if ( ! in_array( $element_id, $forminator_field_element_ids, true ) ) {
|
388 |
+
$input_exceptions->add_input_exception(/* translators: ... */
|
389 |
sprintf( __( 'Please assign valid field for %s', Forminator::DOMAIN ), $title ),
|
390 |
$key . '_error'
|
391 |
);
|
419 |
|
420 |
$buttons = array();
|
421 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
422 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
423 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
424 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
425 |
+
esc_html__( 'Deactivate this AWeber Integration from this Form.', Forminator::DOMAIN )
|
426 |
);
|
427 |
}
|
428 |
|
429 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
430 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
431 |
+
'</div>';
|
432 |
|
433 |
return array(
|
434 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
524 |
foreach ( $saved_tags as $key => $saved_tag ) {
|
525 |
// using form data
|
526 |
if ( stripos( $saved_tag, '{' ) === 0
|
527 |
+
&& stripos( $saved_tag, '}' ) === ( strlen( $saved_tag ) - 1 )
|
528 |
) {
|
529 |
$element_id = str_ireplace( '{', '', $saved_tag );
|
530 |
$element_id = str_ireplace( '}', '', $element_id );
|
531 |
if ( in_array( $element_id, array_keys( $forminator_form_element_ids ), true ) ) {
|
532 |
$forminator_form_element_ids[ $element_id ]['field_label'] = $forminator_form_element_ids[ $element_id ]['field_label'] .
|
533 |
+
' | ' . $forminator_form_element_ids[ $element_id ]['element_id'];
|
534 |
$forminator_form_element_ids[ $element_id ]['element_id'] = '{' . $forminator_form_element_ids[ $element_id ]['element_id'] . '}';
|
535 |
|
|
|
536 |
$tag_selected_fields[] = $forminator_form_element_ids[ $element_id ];
|
537 |
// let this go, its already selected.
|
538 |
unset( $forminator_form_element_ids[ $element_id ] );
|
540 |
// no more exist on element ids let it go
|
541 |
unset( $saved_tags[ $key ] );
|
542 |
}
|
543 |
+
} else { // free form type
|
|
|
544 |
$tag_selected_fields[] = array(
|
545 |
'element_id' => $saved_tag,
|
546 |
'field_label' => $saved_tag,
|
586 |
|
587 |
$buttons = array();
|
588 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
589 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
590 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
591 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
592 |
+
esc_html__( 'Deactivate this Campaign Monitor Integration from this Form.', Forminator::DOMAIN )
|
593 |
);
|
594 |
}
|
595 |
|
596 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
597 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Save', Forminator::DOMAIN ), 'sui-button-primary forminator-addon-finish' ) .
|
598 |
+
'</div>';
|
599 |
|
600 |
return array(
|
601 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
addons/pro/aweber/{forminator-addon-aweber.php → class-forminator-addon-aweber.php}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-aweber-exception.php';
|
4 |
-
require_once dirname( __FILE__ ) . '/lib/class-
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Aweber
|
@@ -101,7 +101,6 @@ final class Forminator_Addon_Aweber extends Forminator_Addon_Abstract {
|
|
101 |
if ( isset( $setting_values['account_id'] ) && ! empty( $setting_values['account_id'] ) ) {
|
102 |
$is_connected = true;
|
103 |
}
|
104 |
-
|
105 |
} catch ( Forminator_Addon_Aweber_Exception $e ) {
|
106 |
$is_connected = false;
|
107 |
}
|
@@ -382,7 +381,6 @@ final class Forminator_Addon_Aweber extends Forminator_Addon_Abstract {
|
|
382 |
} catch ( Forminator_Addon_Aweber_Exception $e ) {
|
383 |
$template_params['error_message'] = $e->getMessage();
|
384 |
}
|
385 |
-
|
386 |
}
|
387 |
|
388 |
return self::get_template( $template, $template_params );
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-aweber-exception.php';
|
4 |
+
require_once dirname( __FILE__ ) . '/lib/class-forminator-addon-aweber-wp-api.php';
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Aweber
|
101 |
if ( isset( $setting_values['account_id'] ) && ! empty( $setting_values['account_id'] ) ) {
|
102 |
$is_connected = true;
|
103 |
}
|
|
|
104 |
} catch ( Forminator_Addon_Aweber_Exception $e ) {
|
105 |
$is_connected = false;
|
106 |
}
|
381 |
} catch ( Forminator_Addon_Aweber_Exception $e ) {
|
382 |
$template_params['error_message'] = $e->getMessage();
|
383 |
}
|
|
|
384 |
}
|
385 |
|
386 |
return self::get_template( $template, $template_params );
|
addons/pro/aweber/lib/{class-aweber-oauth.php → class-forminator-addon-aweber-oauth.php}
RENAMED
@@ -30,7 +30,7 @@ class Forminator_Addon_Aweber_Oauth {
|
|
30 |
$url = array_shift( $parts );
|
31 |
$items = explode( '&', $query );
|
32 |
foreach ( $items as $item ) {
|
33 |
-
list( $key, $value )
|
34 |
$data[ rawurldecode( $key ) ] = rawurldecode( $value );
|
35 |
}
|
36 |
}
|
@@ -164,7 +164,6 @@ class Forminator_Addon_Aweber_Oauth {
|
|
164 |
*/
|
165 |
$oauth_nonce = apply_filters( 'forminator_addon_aweber_oauth_nonce', $oauth_nonce, $timestamp );
|
166 |
|
167 |
-
|
168 |
return $oauth_nonce;
|
169 |
}
|
170 |
}
|
30 |
$url = array_shift( $parts );
|
31 |
$items = explode( '&', $query );
|
32 |
foreach ( $items as $item ) {
|
33 |
+
list( $key, $value ) = explode( '=', $item );
|
34 |
$data[ rawurldecode( $key ) ] = rawurldecode( $value );
|
35 |
}
|
36 |
}
|
164 |
*/
|
165 |
$oauth_nonce = apply_filters( 'forminator_addon_aweber_oauth_nonce', $oauth_nonce, $timestamp );
|
166 |
|
|
|
167 |
return $oauth_nonce;
|
168 |
}
|
169 |
}
|
addons/pro/aweber/lib/{class-wp-aweber-api-exception.php → class-forminator-addon-aweber-wp-api-exception.php}
RENAMED
File without changes
|
addons/pro/aweber/lib/{class-wp-aweber-api-not-found-exception.php → class-forminator-addon-aweber-wp-api-not-found-exception.php}
RENAMED
File without changes
|
addons/pro/aweber/lib/{class-wp-aweber-api.php → class-forminator-addon-aweber-wp-api.php}
RENAMED
@@ -1,8 +1,8 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/class-aweber-oauth.php';
|
4 |
-
require_once dirname( __FILE__ ) . '/class-
|
5 |
-
require_once dirname( __FILE__ ) . '/class-
|
6 |
|
7 |
/**
|
8 |
* Class Forminator_Addon_Aweber_Wp_Api
|
@@ -139,7 +139,7 @@ class Forminator_Addon_Aweber_Wp_Api {
|
|
139 |
* @throws Forminator_Addon_Aweber_Wp_Api_Exception
|
140 |
* @throws Forminator_Addon_Aweber_Wp_Api_Not_Found_Exception
|
141 |
*/
|
142 |
-
private function
|
143 |
// Adding extra user agent for wp remote request
|
144 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
145 |
|
@@ -191,7 +191,7 @@ class Forminator_Addon_Aweber_Wp_Api {
|
|
191 |
|
192 |
if ( 'PATCH' === $verb ) {
|
193 |
$oauth_url_params = $this->get_prepared_request( $verb, $url, array() );
|
194 |
-
$url
|
195 |
$_args['body'] = wp_json_encode( $args );
|
196 |
} else {
|
197 |
# WARNING: If not being sent as json, non-primitive items in data must be json serialized in GET and POST.
|
@@ -204,7 +204,7 @@ class Forminator_Addon_Aweber_Wp_Api {
|
|
204 |
$_args['body'] = $this->get_prepared_request( $verb, $url, $args );
|
205 |
} else {
|
206 |
$oauth_url_params = $this->get_prepared_request( $verb, $url, $args );
|
207 |
-
$url
|
208 |
}
|
209 |
}
|
210 |
|
@@ -247,9 +247,10 @@ class Forminator_Addon_Aweber_Wp_Api {
|
|
247 |
}
|
248 |
|
249 |
if ( 404 === $status_code ) {
|
|
|
250 |
throw new Forminator_Addon_Aweber_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
251 |
}
|
252 |
-
|
253 |
throw new Forminator_Addon_Aweber_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
254 |
}
|
255 |
}
|
@@ -383,7 +384,6 @@ class Forminator_Addon_Aweber_Wp_Api {
|
|
383 |
*/
|
384 |
$prepared_request_data = apply_filters( 'forminator_addon_aweber_oauth_prepared_request', $prepared_request_data, $method, $url, $data );
|
385 |
|
386 |
-
|
387 |
return $prepared_request_data;
|
388 |
}
|
389 |
|
@@ -407,7 +407,7 @@ class Forminator_Addon_Aweber_Wp_Api {
|
|
407 |
|
408 |
$args = array_merge( $default_args, $args );
|
409 |
|
410 |
-
$access_tokens = $this->
|
411 |
|
412 |
if ( ! is_object( $access_tokens ) ) {
|
413 |
throw new Forminator_Addon_Aweber_Wp_Api_Exception( __( 'Invalid access token', Forminator::DOMAIN ) );
|
@@ -435,7 +435,7 @@ class Forminator_Addon_Aweber_Wp_Api {
|
|
435 |
$default_args = array();
|
436 |
$args = array_merge( $default_args, $args );
|
437 |
|
438 |
-
return $this->
|
439 |
}
|
440 |
|
441 |
/**
|
@@ -454,7 +454,7 @@ class Forminator_Addon_Aweber_Wp_Api {
|
|
454 |
$default_args = array();
|
455 |
$args = array_merge( $default_args, $args );
|
456 |
|
457 |
-
return $this->
|
458 |
}
|
459 |
|
460 |
/**
|
@@ -474,7 +474,7 @@ class Forminator_Addon_Aweber_Wp_Api {
|
|
474 |
$default_args = array();
|
475 |
$args = array_merge( $default_args, $args );
|
476 |
|
477 |
-
return $this->
|
478 |
'GET',
|
479 |
$this->get_api_url(
|
480 |
'accounts/' .
|
@@ -510,7 +510,7 @@ class Forminator_Addon_Aweber_Wp_Api {
|
|
510 |
throw new Forminator_Addon_Aweber_Wp_Api_Exception( __( 'Email is required on add AWeber subscriber.', Forminator::DOMAIN ) );
|
511 |
}
|
512 |
|
513 |
-
return $this->
|
514 |
'POST',
|
515 |
$this->get_api_url(
|
516 |
'accounts/' .
|
@@ -546,7 +546,7 @@ class Forminator_Addon_Aweber_Wp_Api {
|
|
546 |
throw new Forminator_Addon_Aweber_Wp_Api_Exception( __( 'Email is required on update AWeber subscriber.', Forminator::DOMAIN ) );
|
547 |
}
|
548 |
|
549 |
-
return $this->
|
550 |
'PATCH',
|
551 |
$this->get_api_url(
|
552 |
'accounts/' .
|
@@ -582,7 +582,7 @@ class Forminator_Addon_Aweber_Wp_Api {
|
|
582 |
);
|
583 |
$args = array_merge( $default_args, $args );
|
584 |
|
585 |
-
return $this->
|
586 |
'GET',
|
587 |
$this->get_api_url(
|
588 |
'accounts/' .
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-aweber-oauth.php';
|
4 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-aweber-wp-api-exception.php';
|
5 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-aweber-wp-api-not-found-exception.php';
|
6 |
|
7 |
/**
|
8 |
* Class Forminator_Addon_Aweber_Wp_Api
|
139 |
* @throws Forminator_Addon_Aweber_Wp_Api_Exception
|
140 |
* @throws Forminator_Addon_Aweber_Wp_Api_Not_Found_Exception
|
141 |
*/
|
142 |
+
private function request( $verb = 'GET', $url, $args = array(), $headers = array() ) {
|
143 |
// Adding extra user agent for wp remote request
|
144 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
145 |
|
191 |
|
192 |
if ( 'PATCH' === $verb ) {
|
193 |
$oauth_url_params = $this->get_prepared_request( $verb, $url, array() );
|
194 |
+
$url .= ( '?' . http_build_query( $oauth_url_params ) );
|
195 |
$_args['body'] = wp_json_encode( $args );
|
196 |
} else {
|
197 |
# WARNING: If not being sent as json, non-primitive items in data must be json serialized in GET and POST.
|
204 |
$_args['body'] = $this->get_prepared_request( $verb, $url, $args );
|
205 |
} else {
|
206 |
$oauth_url_params = $this->get_prepared_request( $verb, $url, $args );
|
207 |
+
$url .= ( '?' . http_build_query( $oauth_url_params ) );
|
208 |
}
|
209 |
}
|
210 |
|
247 |
}
|
248 |
|
249 |
if ( 404 === $status_code ) {
|
250 |
+
/* translators: ... */
|
251 |
throw new Forminator_Addon_Aweber_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
252 |
}
|
253 |
+
/* translators: ... */
|
254 |
throw new Forminator_Addon_Aweber_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
255 |
}
|
256 |
}
|
384 |
*/
|
385 |
$prepared_request_data = apply_filters( 'forminator_addon_aweber_oauth_prepared_request', $prepared_request_data, $method, $url, $data );
|
386 |
|
|
|
387 |
return $prepared_request_data;
|
388 |
}
|
389 |
|
407 |
|
408 |
$args = array_merge( $default_args, $args );
|
409 |
|
410 |
+
$access_tokens = $this->request( 'POST', self::$_access_token_url, $args );
|
411 |
|
412 |
if ( ! is_object( $access_tokens ) ) {
|
413 |
throw new Forminator_Addon_Aweber_Wp_Api_Exception( __( 'Invalid access token', Forminator::DOMAIN ) );
|
435 |
$default_args = array();
|
436 |
$args = array_merge( $default_args, $args );
|
437 |
|
438 |
+
return $this->request( 'GET', $this->get_api_url( 'accounts' ), $args );
|
439 |
}
|
440 |
|
441 |
/**
|
454 |
$default_args = array();
|
455 |
$args = array_merge( $default_args, $args );
|
456 |
|
457 |
+
return $this->request( 'GET', $this->get_api_url( 'accounts/' . rawurlencode( trim( $account_id ) ) . '/lists' ), $args );
|
458 |
}
|
459 |
|
460 |
/**
|
474 |
$default_args = array();
|
475 |
$args = array_merge( $default_args, $args );
|
476 |
|
477 |
+
return $this->request(
|
478 |
'GET',
|
479 |
$this->get_api_url(
|
480 |
'accounts/' .
|
510 |
throw new Forminator_Addon_Aweber_Wp_Api_Exception( __( 'Email is required on add AWeber subscriber.', Forminator::DOMAIN ) );
|
511 |
}
|
512 |
|
513 |
+
return $this->request(
|
514 |
'POST',
|
515 |
$this->get_api_url(
|
516 |
'accounts/' .
|
546 |
throw new Forminator_Addon_Aweber_Wp_Api_Exception( __( 'Email is required on update AWeber subscriber.', Forminator::DOMAIN ) );
|
547 |
}
|
548 |
|
549 |
+
return $this->request(
|
550 |
'PATCH',
|
551 |
$this->get_api_url(
|
552 |
'accounts/' .
|
582 |
);
|
583 |
$args = array_merge( $default_args, $args );
|
584 |
|
585 |
+
return $this->request(
|
586 |
'GET',
|
587 |
$this->get_api_url(
|
588 |
'accounts/' .
|
addons/pro/aweber/views/form-settings/setup-options.php
CHANGED
@@ -70,11 +70,11 @@ foreach ( $template_vars as $key => $val ) {
|
|
70 |
<label class="sui-label" for="tags"><?php esc_html_e( 'Tags', Forminator::DOMAIN ); ?></label>
|
71 |
|
72 |
<select class="sui-select fui-multi-select" name="tags[]" id="tags"
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
data-allow-clear="false">
|
79 |
|
80 |
<?php foreach ( $vars['tags_selected_fields'] as $forminator_field ) : ?>
|
70 |
<label class="sui-label" for="tags"><?php esc_html_e( 'Tags', Forminator::DOMAIN ); ?></label>
|
71 |
|
72 |
<select class="sui-select fui-multi-select" name="tags[]" id="tags"
|
73 |
+
multiple="multiple"
|
74 |
+
data-reorder="1"
|
75 |
+
data-tags="true"
|
76 |
+
data-token-separators="[',']"
|
77 |
+
data-placeholder=""
|
78 |
data-allow-clear="false">
|
79 |
|
80 |
<?php foreach ( $vars['tags_selected_fields'] as $forminator_field ) : ?>
|
addons/pro/aweber/views/sections/authorize.php
CHANGED
@@ -13,17 +13,18 @@ foreach ( $template_vars as $key => $val ) {
|
|
13 |
<div id="forminator-integrations" class="wpmudev-settings--box">
|
14 |
<div class="sui-box">
|
15 |
<div class="sui-box-header">
|
16 |
-
<h2 class="sui-box-title"><?php esc_html_e(
|
17 |
</div>
|
18 |
<div class="sui-box-body">
|
19 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
20 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
21 |
-
<?php elseif ( $vars['is_close'] ): ?>
|
22 |
<span class="sui-notice sui-notice-success">
|
23 |
<p>
|
24 |
<?php
|
25 |
-
esc_html_e(
|
26 |
-
|
|
|
27 |
);
|
28 |
?>
|
29 |
</p>
|
@@ -43,12 +44,12 @@ foreach ( $template_vars as $key => $val ) {
|
|
43 |
|
44 |
var hashParams = {};
|
45 |
var e,
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
|
53 |
while (e = r.exec(q))
|
54 |
hashParams[d(e[1])] = d(e[2]);
|
@@ -58,7 +59,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
58 |
|
59 |
(function ($) {
|
60 |
$(document).ready(function (e) {
|
61 |
-
<?php if ($vars['is_close']): ?>
|
62 |
|
63 |
setTimeout(function () {
|
64 |
window.close();
|
13 |
<div id="forminator-integrations" class="wpmudev-settings--box">
|
14 |
<div class="sui-box">
|
15 |
<div class="sui-box-header">
|
16 |
+
<h2 class="sui-box-title"><?php esc_html_e( 'Authorizing AWeber', Forminator::DOMAIN ); ?></h2>
|
17 |
</div>
|
18 |
<div class="sui-box-body">
|
19 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
20 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
21 |
+
<?php elseif ( $vars['is_close'] ) : ?>
|
22 |
<span class="sui-notice sui-notice-success">
|
23 |
<p>
|
24 |
<?php
|
25 |
+
esc_html_e(
|
26 |
+
'Successfully authorized AWeber, you can go back to integration settings.',
|
27 |
+
Forminator::DOMAIN
|
28 |
);
|
29 |
?>
|
30 |
</p>
|
44 |
|
45 |
var hashParams = {};
|
46 |
var e,
|
47 |
+
a = /\+/g, // Regex for replacing addition symbol with a space
|
48 |
+
r = /([^&;=]+)=?([^&;]*)/g,
|
49 |
+
d = function (s) {
|
50 |
+
return decodeURIComponent(s.replace(a, " "));
|
51 |
+
},
|
52 |
+
q = window.location.hash.substring(1);
|
53 |
|
54 |
while (e = r.exec(q))
|
55 |
hashParams[d(e[1])] = d(e[2]);
|
59 |
|
60 |
(function ($) {
|
61 |
$(document).ready(function (e) {
|
62 |
+
<?php if ( $vars['is_close'] ) : ?>
|
63 |
|
64 |
setTimeout(function () {
|
65 |
window.close();
|
addons/pro/aweber/views/settings/authorize.php
CHANGED
@@ -13,11 +13,21 @@ foreach ( $template_vars as $key => $val ) {
|
|
13 |
|
14 |
<div class="integration-header">
|
15 |
|
16 |
-
<h3 class="sui-box-title" id="dialogTitle2"
|
|
|
|
|
|
|
|
|
|
|
17 |
|
18 |
<?php if ( ! empty( $vars['account_id'] ) ) : ?>
|
19 |
<div class="sui-notice sui-notice-success">
|
20 |
-
<p
|
|
|
|
|
|
|
|
|
|
|
21 |
</div>
|
22 |
<?php else : ?>
|
23 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'Authorize Forminator to connect with your AWeber account in order to send data from your forms.', Forminator::DOMAIN ); ?></span>
|
13 |
|
14 |
<div class="integration-header">
|
15 |
|
16 |
+
<h3 class="sui-box-title" id="dialogTitle2">
|
17 |
+
<?php
|
18 |
+
/* translators: ... */
|
19 |
+
echo esc_html( sprintf( __( 'Connect %1$s', Forminator::DOMAIN ), 'AWeber' ) );
|
20 |
+
?>
|
21 |
+
</h3>
|
22 |
|
23 |
<?php if ( ! empty( $vars['account_id'] ) ) : ?>
|
24 |
<div class="sui-notice sui-notice-success">
|
25 |
+
<p>
|
26 |
+
<?php
|
27 |
+
/* translators: ... */
|
28 |
+
echo esc_html( sprintf( __( 'Your %1$s account is already authorized.', Forminator::DOMAIN ), 'AWeber' ) );
|
29 |
+
?>
|
30 |
+
</p>
|
31 |
</div>
|
32 |
<?php else : ?>
|
33 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'Authorize Forminator to connect with your AWeber account in order to send data from your forms.', Forminator::DOMAIN ); ?></span>
|
addons/pro/aweber/views/settings/success-authorize.php
CHANGED
@@ -1,6 +1,11 @@
|
|
1 |
<div class="integration-header">
|
2 |
|
3 |
-
<h3 class="sui-box-title" id="dialogTitle2"
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'You can now go to your forms and assign them to this integration', Forminator::DOMAIN ); ?></span>
|
6 |
|
1 |
<div class="integration-header">
|
2 |
|
3 |
+
<h3 class="sui-box-title" id="dialogTitle2">
|
4 |
+
<?php
|
5 |
+
/* translators: ... */
|
6 |
+
echo esc_html( sprintf( __( '%1$s Added', Forminator::DOMAIN ), 'AWeber' ) );
|
7 |
+
?>
|
8 |
+
</h3>
|
9 |
|
10 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'You can now go to your forms and assign them to this integration', Forminator::DOMAIN ); ?></span>
|
11 |
|
addons/pro/aweber/views/settings/wait-authorize.php
CHANGED
@@ -12,7 +12,12 @@ foreach ( $template_vars as $key => $val ) {
|
|
12 |
|
13 |
<div class="integration-header">
|
14 |
|
15 |
-
<h3 class="sui-box-title" id="dialogTitle2"
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
</div>
|
18 |
|
@@ -20,7 +25,12 @@ foreach ( $template_vars as $key => $val ) {
|
|
20 |
|
21 |
<div class="sui-notice sui-notice-loading">
|
22 |
|
23 |
-
<p
|
|
|
|
|
|
|
|
|
|
|
24 |
|
25 |
</div>
|
26 |
|
12 |
|
13 |
<div class="integration-header">
|
14 |
|
15 |
+
<h3 class="sui-box-title" id="dialogTitle2">
|
16 |
+
<?php
|
17 |
+
/* translators: ... */
|
18 |
+
echo esc_html( sprintf( __( 'Connect %1$s', Forminator::DOMAIN ), 'AWeber' ) );
|
19 |
+
?>
|
20 |
+
</h3>
|
21 |
|
22 |
</div>
|
23 |
|
25 |
|
26 |
<div class="sui-notice sui-notice-loading">
|
27 |
|
28 |
+
<p>
|
29 |
+
<?php
|
30 |
+
/* translators: ... */
|
31 |
+
echo esc_html( sprintf( __( 'We are waiting %1$s authorization...', Forminator::DOMAIN ), 'AWeber' ) );
|
32 |
+
?>
|
33 |
+
</p>
|
34 |
|
35 |
</div>
|
36 |
|
addons/pro/campaignmonitor/campaignmonitor.php
CHANGED
@@ -23,8 +23,8 @@ function forminator_addon_campaignmonitor_assets_url() {
|
|
23 |
return trailingslashit( forminator_addon_campaignmonitor_url() . 'assets' );
|
24 |
}
|
25 |
|
26 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-campaignmonitor.php';
|
27 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-campaignmonitor-form-settings.php';
|
28 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-campaignmonitor-form-hooks.php';
|
29 |
//Direct Load
|
30 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Campaignmonitor' );
|
23 |
return trailingslashit( forminator_addon_campaignmonitor_url() . 'assets' );
|
24 |
}
|
25 |
|
26 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-campaignmonitor.php';
|
27 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-campaignmonitor-form-settings.php';
|
28 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-campaignmonitor-form-hooks.php';
|
29 |
//Direct Load
|
30 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Campaignmonitor' );
|
addons/pro/campaignmonitor/{forminator-addon-campaignmonitor-exception.php → class-forminator-addon-campaignmonitor-exception.php}
RENAMED
File without changes
|
addons/pro/campaignmonitor/{forminator-addon-campaignmonitor-form-hooks.php → class-forminator-addon-campaignmonitor-form-hooks.php}
RENAMED
@@ -101,7 +101,6 @@ class Forminator_Addon_Campaignmonitor_Form_Hooks extends Forminator_Addon_Form_
|
|
101 |
'value' => $this->get_status_on_add_subscriber( $key, $submitted_data, $addon_setting_value, $form_settings, $form_entry_fields ),
|
102 |
);
|
103 |
}
|
104 |
-
|
105 |
}
|
106 |
|
107 |
$entry_fields = $data;
|
@@ -163,11 +162,8 @@ class Forminator_Addon_Campaignmonitor_Form_Hooks extends Forminator_Addon_Form_
|
|
163 |
|
164 |
$email_element_id = $connection_settings['fields_map']['default_field_email'];
|
165 |
if ( ! isset( $submitted_data[ $email_element_id ] ) || empty( $submitted_data[ $email_element_id ] ) ) {
|
166 |
-
throw new Forminator_Addon_Campaignmonitor_Exception(
|
167 |
-
sprintf(
|
168 |
-
__( 'Email Address on element %1$s not found or not filled on submitted data.', Forminator::DOMAIN ),
|
169 |
-
$email_element_id
|
170 |
-
)
|
171 |
);
|
172 |
}
|
173 |
$email = $submitted_data[ $email_element_id ];
|
@@ -186,11 +182,8 @@ class Forminator_Addon_Campaignmonitor_Form_Hooks extends Forminator_Addon_Form_
|
|
186 |
$element_value = Forminator_Form_Entry_Model::meta_value_to_string( 'stripe', $meta_value );
|
187 |
$name = $element_value;
|
188 |
} elseif ( ! isset( $submitted_data[ $name_element_id ] ) || empty( $submitted_data[ $name_element_id ] ) ) {
|
189 |
-
throw new Forminator_Addon_Campaignmonitor_Exception(
|
190 |
-
sprintf(
|
191 |
-
__( 'Name on element %1$s not found or not filled on submitted data.', Forminator::DOMAIN ),
|
192 |
-
$name_element_id
|
193 |
-
)
|
194 |
);
|
195 |
}
|
196 |
|
@@ -388,7 +381,6 @@ class Forminator_Addon_Campaignmonitor_Form_Hooks extends Forminator_Addon_Form_
|
|
388 |
'value' => '',
|
389 |
);
|
390 |
|
391 |
-
|
392 |
$sub_entries = array();
|
393 |
if ( isset( $status['connection_name'] ) ) {
|
394 |
$sub_entries[] = array(
|
@@ -660,8 +652,8 @@ class Forminator_Addon_Campaignmonitor_Form_Hooks extends Forminator_Addon_Form_
|
|
660 |
$addon_meta_datum_value = $addon_meta_datum['value'];
|
661 |
if ( isset( $addon_meta_datum_value['is_sent'] ) && $addon_meta_datum_value['is_sent'] ) {
|
662 |
if ( isset( $addon_meta_datum_value['list_id'] ) && ! empty( $addon_meta_datum_value['list_id'] )
|
663 |
-
|
664 |
-
|
665 |
$subscribers_to_delete[] = array(
|
666 |
'list_id' => $addon_meta_datum_value['list_id'],
|
667 |
'email' => $addon_meta_datum_value['subscriber_email'],
|
@@ -669,7 +661,6 @@ class Forminator_Addon_Campaignmonitor_Form_Hooks extends Forminator_Addon_Form_
|
|
669 |
}
|
670 |
}
|
671 |
}
|
672 |
-
|
673 |
}
|
674 |
}
|
675 |
|
101 |
'value' => $this->get_status_on_add_subscriber( $key, $submitted_data, $addon_setting_value, $form_settings, $form_entry_fields ),
|
102 |
);
|
103 |
}
|
|
|
104 |
}
|
105 |
|
106 |
$entry_fields = $data;
|
162 |
|
163 |
$email_element_id = $connection_settings['fields_map']['default_field_email'];
|
164 |
if ( ! isset( $submitted_data[ $email_element_id ] ) || empty( $submitted_data[ $email_element_id ] ) ) {
|
165 |
+
throw new Forminator_Addon_Campaignmonitor_Exception(/* translators: ... */
|
166 |
+
sprintf( __( 'Email Address on element %1$s not found or not filled on submitted data.', Forminator::DOMAIN ), $email_element_id )
|
|
|
|
|
|
|
167 |
);
|
168 |
}
|
169 |
$email = $submitted_data[ $email_element_id ];
|
182 |
$element_value = Forminator_Form_Entry_Model::meta_value_to_string( 'stripe', $meta_value );
|
183 |
$name = $element_value;
|
184 |
} elseif ( ! isset( $submitted_data[ $name_element_id ] ) || empty( $submitted_data[ $name_element_id ] ) ) {
|
185 |
+
throw new Forminator_Addon_Campaignmonitor_Exception(/* translators: ... */
|
186 |
+
sprintf( __( 'Name on element %1$s not found or not filled on submitted data.', Forminator::DOMAIN ), $name_element_id )
|
|
|
|
|
|
|
187 |
);
|
188 |
}
|
189 |
|
381 |
'value' => '',
|
382 |
);
|
383 |
|
|
|
384 |
$sub_entries = array();
|
385 |
if ( isset( $status['connection_name'] ) ) {
|
386 |
$sub_entries[] = array(
|
652 |
$addon_meta_datum_value = $addon_meta_datum['value'];
|
653 |
if ( isset( $addon_meta_datum_value['is_sent'] ) && $addon_meta_datum_value['is_sent'] ) {
|
654 |
if ( isset( $addon_meta_datum_value['list_id'] ) && ! empty( $addon_meta_datum_value['list_id'] )
|
655 |
+
&& isset( $addon_meta_datum_value['subscriber_email'] )
|
656 |
+
&& ! empty( $addon_meta_datum_value['subscriber_email'] ) ) {
|
657 |
$subscribers_to_delete[] = array(
|
658 |
'list_id' => $addon_meta_datum_value['list_id'],
|
659 |
'email' => $addon_meta_datum_value['subscriber_email'],
|
661 |
}
|
662 |
}
|
663 |
}
|
|
|
664 |
}
|
665 |
}
|
666 |
|
addons/pro/campaignmonitor/{forminator-addon-campaignmonitor-form-settings-exception.php → class-forminator-addon-campaignmonitor-form-settings-exception.php}
RENAMED
File without changes
|
addons/pro/campaignmonitor/{forminator-addon-campaignmonitor-form-settings.php → class-forminator-addon-campaignmonitor-form-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-campaignmonitor-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Campaignmonitor_Form_Settings
|
@@ -56,11 +56,6 @@ class Forminator_Addon_Campaignmonitor_Form_Settings extends Forminator_Addon_Fo
|
|
56 |
'callback' => array( $this, 'map_fields' ),
|
57 |
'is_completed' => array( $this, 'map_fields_is_completed' ),
|
58 |
),
|
59 |
-
//todo: allow fe to support this
|
60 |
-
// array(
|
61 |
-
// 'callback' => array( $this, 'extra_field' ),
|
62 |
-
// 'is_completed' => array( $this, 'extra_field' ),
|
63 |
-
// ),
|
64 |
array(
|
65 |
'callback' => array( $this, 'setup_options' ),
|
66 |
'is_completed' => array( $this, 'setup_options_is_completed' ),
|
@@ -122,15 +117,16 @@ class Forminator_Addon_Campaignmonitor_Form_Settings extends Forminator_Addon_Fo
|
|
122 |
|
123 |
$buttons = array();
|
124 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
125 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
126 |
-
|
127 |
-
|
|
|
128 |
);
|
129 |
}
|
130 |
|
131 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
132 |
-
|
133 |
-
|
134 |
|
135 |
return array(
|
136 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -195,7 +191,6 @@ class Forminator_Addon_Campaignmonitor_Form_Settings extends Forminator_Addon_Fo
|
|
195 |
'error_message' => '',
|
196 |
);
|
197 |
|
198 |
-
|
199 |
$is_submit = ! empty( $submitted_data );
|
200 |
$has_errors = false;
|
201 |
|
@@ -256,15 +251,16 @@ class Forminator_Addon_Campaignmonitor_Form_Settings extends Forminator_Addon_Fo
|
|
256 |
|
257 |
$buttons = array();
|
258 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
259 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
260 |
-
|
261 |
-
|
|
|
262 |
);
|
263 |
}
|
264 |
|
265 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
266 |
-
|
267 |
-
|
268 |
|
269 |
return array(
|
270 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -402,7 +398,7 @@ class Forminator_Addon_Campaignmonitor_Form_Settings extends Forminator_Addon_Fo
|
|
402 |
if ( isset( $fields_map[ $key ] ) && ! empty( $fields_map[ $key ] ) ) {
|
403 |
$element_id = $fields_map[ $key ];
|
404 |
if ( ! in_array( $element_id, $forminator_field_element_ids, true ) ) {
|
405 |
-
$input_exceptions->add_input_exception(
|
406 |
sprintf( __( 'Please assign valid field for %s', Forminator::DOMAIN ), $title ),
|
407 |
$key . '_error'
|
408 |
);
|
@@ -430,15 +426,16 @@ class Forminator_Addon_Campaignmonitor_Form_Settings extends Forminator_Addon_Fo
|
|
430 |
|
431 |
$buttons = array();
|
432 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
433 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
434 |
-
|
435 |
-
|
|
|
436 |
);
|
437 |
}
|
438 |
|
439 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
440 |
-
|
441 |
-
|
442 |
|
443 |
return array(
|
444 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -553,9 +550,9 @@ class Forminator_Addon_Campaignmonitor_Form_Settings extends Forminator_Addon_Fo
|
|
553 |
$this->save_multi_id_form_setting_values(
|
554 |
$multi_id,
|
555 |
array(
|
556 |
-
'resubscribe'
|
557 |
'restart_subscription_based_autoresponders' => (bool) $restart_subscription_based_autoresponders,
|
558 |
-
'consent_to_track'
|
559 |
)
|
560 |
);
|
561 |
|
@@ -576,15 +573,16 @@ class Forminator_Addon_Campaignmonitor_Form_Settings extends Forminator_Addon_Fo
|
|
576 |
|
577 |
$buttons = array();
|
578 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
579 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
580 |
-
|
581 |
-
|
|
|
582 |
);
|
583 |
}
|
584 |
|
585 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
586 |
-
|
587 |
-
|
588 |
|
589 |
return array(
|
590 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-campaignmonitor-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Campaignmonitor_Form_Settings
|
56 |
'callback' => array( $this, 'map_fields' ),
|
57 |
'is_completed' => array( $this, 'map_fields_is_completed' ),
|
58 |
),
|
|
|
|
|
|
|
|
|
|
|
59 |
array(
|
60 |
'callback' => array( $this, 'setup_options' ),
|
61 |
'is_completed' => array( $this, 'setup_options_is_completed' ),
|
117 |
|
118 |
$buttons = array();
|
119 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
120 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
121 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
122 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
123 |
+
esc_html__( 'Deactivate this Campaign Monitor Integration from this Form.', Forminator::DOMAIN )
|
124 |
);
|
125 |
}
|
126 |
|
127 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
128 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
129 |
+
'</div>';
|
130 |
|
131 |
return array(
|
132 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
191 |
'error_message' => '',
|
192 |
);
|
193 |
|
|
|
194 |
$is_submit = ! empty( $submitted_data );
|
195 |
$has_errors = false;
|
196 |
|
251 |
|
252 |
$buttons = array();
|
253 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
254 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
255 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
256 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
257 |
+
esc_html__( 'Deactivate this Campaign Monitor Integration from this Form.', Forminator::DOMAIN )
|
258 |
);
|
259 |
}
|
260 |
|
261 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
262 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
263 |
+
'</div>';
|
264 |
|
265 |
return array(
|
266 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
398 |
if ( isset( $fields_map[ $key ] ) && ! empty( $fields_map[ $key ] ) ) {
|
399 |
$element_id = $fields_map[ $key ];
|
400 |
if ( ! in_array( $element_id, $forminator_field_element_ids, true ) ) {
|
401 |
+
$input_exceptions->add_input_exception(/* translators: ... */
|
402 |
sprintf( __( 'Please assign valid field for %s', Forminator::DOMAIN ), $title ),
|
403 |
$key . '_error'
|
404 |
);
|
426 |
|
427 |
$buttons = array();
|
428 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
429 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
430 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
431 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
432 |
+
esc_html__( 'Deactivate this Campaign Monitor Integration from this Form.', Forminator::DOMAIN )
|
433 |
);
|
434 |
}
|
435 |
|
436 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
437 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
438 |
+
'</div>';
|
439 |
|
440 |
return array(
|
441 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
550 |
$this->save_multi_id_form_setting_values(
|
551 |
$multi_id,
|
552 |
array(
|
553 |
+
'resubscribe' => (bool) $resubscribe,
|
554 |
'restart_subscription_based_autoresponders' => (bool) $restart_subscription_based_autoresponders,
|
555 |
+
'consent_to_track' => $consent_to_track,
|
556 |
)
|
557 |
);
|
558 |
|
573 |
|
574 |
$buttons = array();
|
575 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
576 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
577 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
578 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
579 |
+
esc_html__( 'Deactivate this Campaign Monitor Integration from this Form.', Forminator::DOMAIN )
|
580 |
);
|
581 |
}
|
582 |
|
583 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
584 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Save', Forminator::DOMAIN ), 'sui-button-primary forminator-addon-finish' ) .
|
585 |
+
'</div>';
|
586 |
|
587 |
return array(
|
588 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
addons/pro/campaignmonitor/{forminator-addon-campaignmonitor.php → class-forminator-addon-campaignmonitor.php}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-campaignmonitor-exception.php';
|
4 |
-
require_once dirname( __FILE__ ) . '/lib/class-
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Campaignmonitor
|
@@ -309,8 +309,8 @@ final class Forminator_Addon_Campaignmonitor extends Forminator_Addon_Abstract {
|
|
309 |
}
|
310 |
|
311 |
if ( ! isset( $client_details->BasicDetails ) //phpcs:ignore WordPress.NamingConventions.ValidVariableName.NotSnakeCaseMemberVar
|
312 |
-
|
313 |
-
|
314 |
throw new Forminator_Addon_Campaignmonitor_Exception( __( 'Could not find client details, please try again', Forminator::DOMAIN ) );
|
315 |
}
|
316 |
|
@@ -339,7 +339,6 @@ final class Forminator_Addon_Campaignmonitor extends Forminator_Addon_Abstract {
|
|
339 |
$has_errors = true;
|
340 |
}
|
341 |
}
|
342 |
-
|
343 |
}
|
344 |
|
345 |
if ( $show_success ) {
|
@@ -359,18 +358,16 @@ final class Forminator_Addon_Campaignmonitor extends Forminator_Addon_Abstract {
|
|
359 |
);
|
360 |
$buttons['submit'] = array(
|
361 |
'markup' => '<div class="sui-actions-right">' .
|
362 |
-
|
363 |
-
|
364 |
);
|
365 |
} else {
|
366 |
$buttons['submit'] = array(
|
367 |
'markup' => '<div class="sui-actions-right">' .
|
368 |
-
|
369 |
-
|
370 |
);
|
371 |
}
|
372 |
-
|
373 |
-
|
374 |
}
|
375 |
|
376 |
return array(
|
@@ -412,7 +409,6 @@ final class Forminator_Addon_Campaignmonitor extends Forminator_Addon_Abstract {
|
|
412 |
if ( isset( $setting_values['api_key'] ) ) {
|
413 |
$api_key = $setting_values['api_key'];
|
414 |
}
|
415 |
-
|
416 |
}
|
417 |
$api = Forminator_Addon_Campaignmonitor_Wp_Api::get_instance( $api_key );
|
418 |
self::$api = $api;
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-campaignmonitor-exception.php';
|
4 |
+
require_once dirname( __FILE__ ) . '/lib/class-forminator-addon-campaignmonitor-wp-api.php';
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Campaignmonitor
|
309 |
}
|
310 |
|
311 |
if ( ! isset( $client_details->BasicDetails ) //phpcs:ignore WordPress.NamingConventions.ValidVariableName.NotSnakeCaseMemberVar
|
312 |
+
|| ! isset( $client_details->BasicDetails->ClientID ) //phpcs:ignore WordPress.NamingConventions.ValidVariableName.NotSnakeCaseMemberVar
|
313 |
+
|| ! isset( $client_details->BasicDetails->CompanyName ) ) { //phpcs:ignore WordPress.NamingConventions.ValidVariableName.NotSnakeCaseMemberVar
|
314 |
throw new Forminator_Addon_Campaignmonitor_Exception( __( 'Could not find client details, please try again', Forminator::DOMAIN ) );
|
315 |
}
|
316 |
|
339 |
$has_errors = true;
|
340 |
}
|
341 |
}
|
|
|
342 |
}
|
343 |
|
344 |
if ( $show_success ) {
|
358 |
);
|
359 |
$buttons['submit'] = array(
|
360 |
'markup' => '<div class="sui-actions-right">' .
|
361 |
+
self::get_button_markup( esc_html__( 'Save', Forminator::DOMAIN ), 'forminator-addon-connect' ) .
|
362 |
+
'</div>',
|
363 |
);
|
364 |
} else {
|
365 |
$buttons['submit'] = array(
|
366 |
'markup' => '<div class="sui-actions-right">' .
|
367 |
+
self::get_button_markup( esc_html__( 'CONNECT', Forminator::DOMAIN ), 'forminator-addon-connect' ) .
|
368 |
+
'</div>',
|
369 |
);
|
370 |
}
|
|
|
|
|
371 |
}
|
372 |
|
373 |
return array(
|
409 |
if ( isset( $setting_values['api_key'] ) ) {
|
410 |
$api_key = $setting_values['api_key'];
|
411 |
}
|
|
|
412 |
}
|
413 |
$api = Forminator_Addon_Campaignmonitor_Wp_Api::get_instance( $api_key );
|
414 |
self::$api = $api;
|
addons/pro/campaignmonitor/lib/{class-wp-campaignmonitor-api-exception.php → class-forminator-addon-campaignmonitor-wp-api-exception.php}
RENAMED
File without changes
|
addons/pro/campaignmonitor/lib/{class-wp-campaignmonitor-api-not-found-exception.php → class-forminator-addon-campaignmonitor-wp-api-not-found-exception.php}
RENAMED
File without changes
|
addons/pro/campaignmonitor/lib/{class-wp-campaignmonitor-api.php → class-forminator-addon-campaignmonitor-wp-api.php}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/class-
|
4 |
-
require_once dirname( __FILE__ ) . '/class-
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Campaignmonitor_Wp_Api
|
@@ -127,7 +127,7 @@ class Forminator_Addon_Campaignmonitor_Wp_Api {
|
|
127 |
* @throws Forminator_Addon_Campaignmonitor_Wp_Api_Exception
|
128 |
* @throws Forminator_Addon_Campaignmonitor_Wp_Api_Not_Found_Exception
|
129 |
*/
|
130 |
-
private function
|
131 |
// Adding extra user agent for wp remote request
|
132 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
133 |
|
@@ -216,9 +216,10 @@ class Forminator_Addon_Campaignmonitor_Wp_Api {
|
|
216 |
}
|
217 |
|
218 |
if ( 404 === $status_code ) {
|
|
|
219 |
throw new Forminator_Addon_Campaignmonitor_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
220 |
}
|
221 |
-
|
222 |
throw new Forminator_Addon_Campaignmonitor_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
223 |
}
|
224 |
}
|
@@ -263,7 +264,7 @@ class Forminator_Addon_Campaignmonitor_Wp_Api {
|
|
263 |
*/
|
264 |
public function post_( $args ) {
|
265 |
|
266 |
-
return $this->
|
267 |
'POST',
|
268 |
'',
|
269 |
$args
|
@@ -286,7 +287,7 @@ class Forminator_Addon_Campaignmonitor_Wp_Api {
|
|
286 |
|
287 |
$args = array_merge( $default_args, $args );
|
288 |
|
289 |
-
return $this->
|
290 |
'GET',
|
291 |
'primarycontact.json',
|
292 |
$args
|
@@ -309,7 +310,7 @@ class Forminator_Addon_Campaignmonitor_Wp_Api {
|
|
309 |
|
310 |
$args = array_merge( $default_args, $args );
|
311 |
|
312 |
-
return $this->
|
313 |
'GET',
|
314 |
'systemdate.json',
|
315 |
$args
|
@@ -333,7 +334,7 @@ class Forminator_Addon_Campaignmonitor_Wp_Api {
|
|
333 |
|
334 |
$args = array_merge( $default_args, $args );
|
335 |
|
336 |
-
return $this->
|
337 |
'GET',
|
338 |
'lists/' . rawurlencode( trim( $list_id ) ) . '.json',
|
339 |
$args
|
@@ -357,7 +358,7 @@ class Forminator_Addon_Campaignmonitor_Wp_Api {
|
|
357 |
|
358 |
$args = array_merge( $default_args, $args );
|
359 |
|
360 |
-
return $this->
|
361 |
'GET',
|
362 |
'clients/' . rawurlencode( trim( $client_id ) ) . '/lists.json',
|
363 |
$args
|
@@ -380,7 +381,7 @@ class Forminator_Addon_Campaignmonitor_Wp_Api {
|
|
380 |
|
381 |
$args = array_merge( $default_args, $args );
|
382 |
|
383 |
-
return $this->
|
384 |
'GET',
|
385 |
'clients.json',
|
386 |
$args
|
@@ -404,7 +405,7 @@ class Forminator_Addon_Campaignmonitor_Wp_Api {
|
|
404 |
|
405 |
$args = array_merge( $default_args, $args );
|
406 |
|
407 |
-
return $this->
|
408 |
'GET',
|
409 |
'clients/' . rawurlencode( trim( $client_id ) ) . '.json',
|
410 |
$args
|
@@ -428,7 +429,7 @@ class Forminator_Addon_Campaignmonitor_Wp_Api {
|
|
428 |
|
429 |
$args = array_merge( $default_args, $args );
|
430 |
|
431 |
-
return $this->
|
432 |
'GET',
|
433 |
'lists/' . rawurlencode( trim( $list_id ) ) . '/customfields.json',
|
434 |
$args
|
@@ -455,7 +456,7 @@ class Forminator_Addon_Campaignmonitor_Wp_Api {
|
|
455 |
|
456 |
$args = array_merge( $default_args, $args );
|
457 |
|
458 |
-
return $this->
|
459 |
'POST',
|
460 |
'subscribers/' . rawurlencode( trim( $list_id ) ) . '.json',
|
461 |
$args
|
@@ -482,7 +483,7 @@ class Forminator_Addon_Campaignmonitor_Wp_Api {
|
|
482 |
|
483 |
$args = array_merge( $default_args, $args );
|
484 |
|
485 |
-
return $this->
|
486 |
'DELETE',
|
487 |
'subscribers/' . rawurlencode( trim( $list_id ) ) . '.json',
|
488 |
$args
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-campaignmonitor-wp-api-exception.php';
|
4 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-campaignmonitor-wp-api-not-found-exception.php';
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Campaignmonitor_Wp_Api
|
127 |
* @throws Forminator_Addon_Campaignmonitor_Wp_Api_Exception
|
128 |
* @throws Forminator_Addon_Campaignmonitor_Wp_Api_Not_Found_Exception
|
129 |
*/
|
130 |
+
private function request( $verb = 'GET', $path, $args = array() ) {
|
131 |
// Adding extra user agent for wp remote request
|
132 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
133 |
|
216 |
}
|
217 |
|
218 |
if ( 404 === $status_code ) {
|
219 |
+
/* translators: ... */
|
220 |
throw new Forminator_Addon_Campaignmonitor_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
221 |
}
|
222 |
+
/* translators: ... */
|
223 |
throw new Forminator_Addon_Campaignmonitor_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
224 |
}
|
225 |
}
|
264 |
*/
|
265 |
public function post_( $args ) {
|
266 |
|
267 |
+
return $this->request(
|
268 |
'POST',
|
269 |
'',
|
270 |
$args
|
287 |
|
288 |
$args = array_merge( $default_args, $args );
|
289 |
|
290 |
+
return $this->request(
|
291 |
'GET',
|
292 |
'primarycontact.json',
|
293 |
$args
|
310 |
|
311 |
$args = array_merge( $default_args, $args );
|
312 |
|
313 |
+
return $this->request(
|
314 |
'GET',
|
315 |
'systemdate.json',
|
316 |
$args
|
334 |
|
335 |
$args = array_merge( $default_args, $args );
|
336 |
|
337 |
+
return $this->request(
|
338 |
'GET',
|
339 |
'lists/' . rawurlencode( trim( $list_id ) ) . '.json',
|
340 |
$args
|
358 |
|
359 |
$args = array_merge( $default_args, $args );
|
360 |
|
361 |
+
return $this->request(
|
362 |
'GET',
|
363 |
'clients/' . rawurlencode( trim( $client_id ) ) . '/lists.json',
|
364 |
$args
|
381 |
|
382 |
$args = array_merge( $default_args, $args );
|
383 |
|
384 |
+
return $this->request(
|
385 |
'GET',
|
386 |
'clients.json',
|
387 |
$args
|
405 |
|
406 |
$args = array_merge( $default_args, $args );
|
407 |
|
408 |
+
return $this->request(
|
409 |
'GET',
|
410 |
'clients/' . rawurlencode( trim( $client_id ) ) . '.json',
|
411 |
$args
|
429 |
|
430 |
$args = array_merge( $default_args, $args );
|
431 |
|
432 |
+
return $this->request(
|
433 |
'GET',
|
434 |
'lists/' . rawurlencode( trim( $list_id ) ) . '/customfields.json',
|
435 |
$args
|
456 |
|
457 |
$args = array_merge( $default_args, $args );
|
458 |
|
459 |
+
return $this->request(
|
460 |
'POST',
|
461 |
'subscribers/' . rawurlencode( trim( $list_id ) ) . '.json',
|
462 |
$args
|
483 |
|
484 |
$args = array_merge( $default_args, $args );
|
485 |
|
486 |
+
return $this->request(
|
487 |
'DELETE',
|
488 |
'subscribers/' . rawurlencode( trim( $list_id ) ) . '.json',
|
489 |
$args
|
addons/pro/campaignmonitor/views/form-settings/setup-options.php
CHANGED
@@ -83,7 +83,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
83 |
<div class="sui-form-field<?php echo esc_attr( ! empty( $vars['consent_to_track_error'] ) ? ' sui-form-field-error' : '' ); ?>">
|
84 |
|
85 |
<label class="sui-label" for="consent_to_track"><?php esc_html_e( 'Consent to Track', Forminator::DOMAIN ); ?></label>
|
86 |
-
|
87 |
<select name="consent_to_track" id="consent_to_track" class="sui-select sui-form-control">
|
88 |
<option value="Unchanged" <?php selected( 'Unchanged', $vars['consent_to_track'] ); ?>>Unchanged</option>
|
89 |
<option value="Yes" <?php selected( 'Yes', $vars['consent_to_track'] ); ?>>Yes</option>
|
83 |
<div class="sui-form-field<?php echo esc_attr( ! empty( $vars['consent_to_track_error'] ) ? ' sui-form-field-error' : '' ); ?>">
|
84 |
|
85 |
<label class="sui-label" for="consent_to_track"><?php esc_html_e( 'Consent to Track', Forminator::DOMAIN ); ?></label>
|
86 |
+
|
87 |
<select name="consent_to_track" id="consent_to_track" class="sui-select sui-form-control">
|
88 |
<option value="Unchanged" <?php selected( 'Unchanged', $vars['consent_to_track'] ); ?>>Unchanged</option>
|
89 |
<option value="Yes" <?php selected( 'Yes', $vars['consent_to_track'] ); ?>>Yes</option>
|
addons/pro/campaignmonitor/views/settings/setup-api-success.php
CHANGED
@@ -1,6 +1,11 @@
|
|
1 |
<div class="integration-header">
|
2 |
|
3 |
-
<h3 id="dialogTitle2" class="sui-box-title"
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'You can now go to your forms and assign them to this integration', Forminator::DOMAIN ); ?></span>
|
6 |
|
1 |
<div class="integration-header">
|
2 |
|
3 |
+
<h3 id="dialogTitle2" class="sui-box-title">
|
4 |
+
<?php
|
5 |
+
/* translators: ... */
|
6 |
+
echo esc_html( sprintf( __( '%1$s Added', Forminator::DOMAIN ), 'Campaign Monitor' ) );
|
7 |
+
?>
|
8 |
+
</h3>
|
9 |
|
10 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'You can now go to your forms and assign them to this integration', Forminator::DOMAIN ); ?></span>
|
11 |
|
addons/pro/campaignmonitor/views/settings/setup-api.php
CHANGED
@@ -16,7 +16,12 @@ foreach ( $template_vars as $key => $val ) {
|
|
16 |
|
17 |
<div class="integration-header">
|
18 |
|
19 |
-
<h3 id="dialogTitle2" class="sui-box-title"
|
|
|
|
|
|
|
|
|
|
|
20 |
|
21 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'Setup Campaign Monitor API Access.', Forminator::DOMAIN ); ?></span>
|
22 |
|
@@ -43,7 +48,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
43 |
<div class="sui-control-with-icon">
|
44 |
|
45 |
<input name="api_key"
|
46 |
-
placeholder="<?php echo esc_attr( sprintf( __( 'Enter %1$s API Key', Forminator::DOMAIN ), 'Campaign Monitor' ) ); ?>"
|
47 |
value="<?php echo esc_attr( $vars['api_key'] ); ?>"
|
48 |
class="sui-form-control" />
|
49 |
|
@@ -58,9 +63,33 @@ foreach ( $template_vars as $key => $val ) {
|
|
58 |
<div class="sui-description">
|
59 |
<?php esc_html_e( 'To obtain Campaign Monitor API Credentials, follow these steps :', Forminator::DOMAIN ); ?>
|
60 |
<ol class="instructions" id="apikey-instructions">
|
61 |
-
<li
|
62 |
-
|
63 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
64 |
</ol>
|
65 |
</div>
|
66 |
|
@@ -71,9 +100,9 @@ foreach ( $template_vars as $key => $val ) {
|
|
71 |
<label class="sui-label"><?php esc_html_e( 'Client ID', Forminator::DOMAIN ); ?></label>
|
72 |
|
73 |
<div class="sui-control-with-icon">
|
74 |
-
|
75 |
<input name="client_id"
|
76 |
-
placeholder="<?php echo esc_attr( sprintf( __( 'Enter %1$s Client ID', Forminator::DOMAIN ), 'Campaign Monitor' ) ); ?>"
|
77 |
value="<?php echo esc_attr( $vars['client_id'] ); ?>"
|
78 |
class="sui-form-control" />
|
79 |
|
@@ -85,8 +114,19 @@ foreach ( $template_vars as $key => $val ) {
|
|
85 |
<span class="sui-error-message"><?php echo esc_html( $vars['client_id_error'] ); ?></span>
|
86 |
<?php endif; ?>
|
87 |
|
88 |
-
<span class="sui-description"
|
89 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
</div>
|
91 |
|
92 |
</form>
|
16 |
|
17 |
<div class="integration-header">
|
18 |
|
19 |
+
<h3 id="dialogTitle2" class="sui-box-title">
|
20 |
+
<?php
|
21 |
+
/* translators: ... */
|
22 |
+
echo esc_html( sprintf( __( 'Configure %1$s API', Forminator::DOMAIN ), 'Campaign Monitor' ) );
|
23 |
+
?>
|
24 |
+
</h3>
|
25 |
|
26 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'Setup Campaign Monitor API Access.', Forminator::DOMAIN ); ?></span>
|
27 |
|
48 |
<div class="sui-control-with-icon">
|
49 |
|
50 |
<input name="api_key"
|
51 |
+
placeholder="<?php /* translators: ... */ echo esc_attr( sprintf( __( 'Enter %1$s API Key', Forminator::DOMAIN ), 'Campaign Monitor' ) ); ?>"
|
52 |
value="<?php echo esc_attr( $vars['api_key'] ); ?>"
|
53 |
class="sui-form-control" />
|
54 |
|
63 |
<div class="sui-description">
|
64 |
<?php esc_html_e( 'To obtain Campaign Monitor API Credentials, follow these steps :', Forminator::DOMAIN ); ?>
|
65 |
<ol class="instructions" id="apikey-instructions">
|
66 |
+
<li>
|
67 |
+
<?php
|
68 |
+
echo sprintf(/* translators: ... */
|
69 |
+
esc_html__( 'Login to your Campaign Monitor account %1$shere%2$s.', Forminator::DOMAIN ),
|
70 |
+
'<a href="https://login.createsend.com/l" target="_blank">',
|
71 |
+
'</a>'
|
72 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
73 |
+
?>
|
74 |
+
</li>
|
75 |
+
<li>
|
76 |
+
<?php
|
77 |
+
echo sprintf(/* translators: ... */
|
78 |
+
esc_html__( 'Go to Account Settings, then navigate to %1$sAPI Keys%2$s section.', Forminator::DOMAIN ),
|
79 |
+
'<strong>',
|
80 |
+
'</strong>'
|
81 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
82 |
+
?>
|
83 |
+
</li>
|
84 |
+
<li>
|
85 |
+
<?php
|
86 |
+
echo sprintf(/* translators: ... */
|
87 |
+
esc_html__( 'Click on %1$sShow API Key%2$s, select and copy on the shown up value.', Forminator::DOMAIN ),
|
88 |
+
'<strong>',
|
89 |
+
'</strong>'
|
90 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
91 |
+
?>
|
92 |
+
</li>
|
93 |
</ol>
|
94 |
</div>
|
95 |
|
100 |
<label class="sui-label"><?php esc_html_e( 'Client ID', Forminator::DOMAIN ); ?></label>
|
101 |
|
102 |
<div class="sui-control-with-icon">
|
103 |
+
|
104 |
<input name="client_id"
|
105 |
+
placeholder="<?php /* translators: ... */ echo esc_attr( sprintf( __( 'Enter %1$s Client ID', Forminator::DOMAIN ), 'Campaign Monitor' ) ); ?>"
|
106 |
value="<?php echo esc_attr( $vars['client_id'] ); ?>"
|
107 |
class="sui-form-control" />
|
108 |
|
114 |
<span class="sui-error-message"><?php echo esc_html( $vars['client_id_error'] ); ?></span>
|
115 |
<?php endif; ?>
|
116 |
|
117 |
+
<span class="sui-description">
|
118 |
+
<?php
|
119 |
+
echo sprintf(/* translators: ... */
|
120 |
+
esc_html__( 'Client ID is optional, unless you are on %1$sAgency-Mode%2$s, then you can find your desired Client ID on the %3$sAccount Settings%4$s > %5$sAPI Keys%6$s', Forminator::DOMAIN ),
|
121 |
+
'<strong>',
|
122 |
+
'</strong>',
|
123 |
+
'<strong>',
|
124 |
+
'</strong>',
|
125 |
+
'<strong>',
|
126 |
+
'</strong>'
|
127 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
128 |
+
?>
|
129 |
+
</span>
|
130 |
</div>
|
131 |
|
132 |
</form>
|
addons/pro/googlesheet/{forminator-addon-googlesheet-exception.php → class-forminator-addon-googlesheet-exception.php}
RENAMED
File without changes
|
addons/pro/googlesheet/{forminator-addon-googlesheet-form-hooks.php → class-forminator-addon-googlesheet-form-hooks.php}
RENAMED
@@ -119,7 +119,6 @@ class Forminator_Addon_Googlesheet_Form_Hooks extends Forminator_Addon_Form_Hook
|
|
119 |
'value' => $this->get_status_on_create_row( $key, $submitted_data, $addon_setting_value, $form_entry_fields ),
|
120 |
);
|
121 |
}
|
122 |
-
|
123 |
}
|
124 |
|
125 |
$entry_fields = $data;
|
@@ -227,7 +226,6 @@ class Forminator_Addon_Googlesheet_Form_Hooks extends Forminator_Addon_Form_Hook
|
|
227 |
'value' => $form_entry_field['value'],
|
228 |
);
|
229 |
}
|
230 |
-
|
231 |
}
|
232 |
$form_entry_fields = $keyed_form_entry_fields;
|
233 |
|
@@ -365,7 +363,7 @@ class Forminator_Addon_Googlesheet_Form_Hooks extends Forminator_Addon_Form_Hook
|
|
365 |
$sheet_title = $sheets[0]->properties->title;
|
366 |
$sheet_column_count = $sheets[0]->properties->gridProperties->columnCount;
|
367 |
|
368 |
-
$headers_range = $sheet_title . '!
|
369 |
$header_rows = $spreadsheet_service->spreadsheets_values->get(
|
370 |
$spreadsheet->getSpreadsheetId(),
|
371 |
$headers_range
|
@@ -520,7 +518,6 @@ class Forminator_Addon_Googlesheet_Form_Hooks extends Forminator_Addon_Form_Hook
|
|
520 |
$form_settings_instance
|
521 |
);
|
522 |
|
523 |
-
|
524 |
$addon_meta_datas = $addon_meta_data;
|
525 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
526 |
return array();
|
@@ -572,7 +569,6 @@ class Forminator_Addon_Googlesheet_Form_Hooks extends Forminator_Addon_Form_Hook
|
|
572 |
'value' => '',
|
573 |
);
|
574 |
|
575 |
-
|
576 |
$sub_entries = array();
|
577 |
if ( isset( $status['connection_name'] ) ) {
|
578 |
$sub_entries[] = array(
|
119 |
'value' => $this->get_status_on_create_row( $key, $submitted_data, $addon_setting_value, $form_entry_fields ),
|
120 |
);
|
121 |
}
|
|
|
122 |
}
|
123 |
|
124 |
$entry_fields = $data;
|
226 |
'value' => $form_entry_field['value'],
|
227 |
);
|
228 |
}
|
|
|
229 |
}
|
230 |
$form_entry_fields = $keyed_form_entry_fields;
|
231 |
|
363 |
$sheet_title = $sheets[0]->properties->title;
|
364 |
$sheet_column_count = $sheets[0]->properties->gridProperties->columnCount;
|
365 |
|
366 |
+
$headers_range = $sheet_title . '!1:1';
|
367 |
$header_rows = $spreadsheet_service->spreadsheets_values->get(
|
368 |
$spreadsheet->getSpreadsheetId(),
|
369 |
$headers_range
|
518 |
$form_settings_instance
|
519 |
);
|
520 |
|
|
|
521 |
$addon_meta_datas = $addon_meta_data;
|
522 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
523 |
return array();
|
569 |
'value' => '',
|
570 |
);
|
571 |
|
|
|
572 |
$sub_entries = array();
|
573 |
if ( isset( $status['connection_name'] ) ) {
|
574 |
$sub_entries[] = array(
|
addons/pro/googlesheet/{forminator-addon-googlesheet-form-settings-exception.php → class-forminator-addon-googlesheet-form-settings-exception.php}
RENAMED
File without changes
|
addons/pro/googlesheet/{forminator-addon-googlesheet-form-settings.php → class-forminator-addon-googlesheet-form-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Googlesheet_Form_Settings
|
@@ -109,15 +109,16 @@ class Forminator_Addon_Googlesheet_Form_Settings extends Forminator_Addon_Form_S
|
|
109 |
|
110 |
$buttons = array();
|
111 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
112 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
113 |
-
|
114 |
-
|
|
|
115 |
);
|
116 |
}
|
117 |
|
118 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
119 |
-
|
120 |
-
|
121 |
|
122 |
return array(
|
123 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -184,7 +185,6 @@ class Forminator_Addon_Googlesheet_Form_Settings extends Forminator_Addon_Form_S
|
|
184 |
'multi_id' => $multi_id,
|
185 |
);
|
186 |
|
187 |
-
|
188 |
$is_submit = ! empty( $submitted_data );
|
189 |
$has_errors = false;
|
190 |
$notification = array();
|
@@ -205,7 +205,6 @@ class Forminator_Addon_Googlesheet_Form_Settings extends Forminator_Addon_Form_S
|
|
205 |
$google_client = $this->addon->get_google_client();
|
206 |
$google_client->setAccessToken( $this->addon->get_client_access_token() );
|
207 |
|
208 |
-
|
209 |
if ( ! empty( $folder_id ) ) {
|
210 |
$drive = new Forminator_Google_Service_Drive( $google_client );
|
211 |
try {
|
@@ -216,7 +215,6 @@ class Forminator_Addon_Googlesheet_Form_Settings extends Forminator_Addon_Form_S
|
|
216 |
if ( Forminator_Addon_Googlesheet::MIME_TYPE_GOOGLE_DRIVE_FOLDER !== $folder->mimeType ) {
|
217 |
$input_exceptions->add_input_exception( __( 'This is not a folder, please use a valid Folder ID.', Forminator::DOMAIN ), 'folder_id_error' );
|
218 |
}
|
219 |
-
|
220 |
} catch ( Forminator_Google_Exception $google_exception ) {
|
221 |
// catch 404
|
222 |
if ( false !== stripos( $google_exception->getMessage(), 'File not found' ) ) {
|
@@ -235,7 +233,6 @@ class Forminator_Addon_Googlesheet_Form_Settings extends Forminator_Addon_Form_S
|
|
235 |
$file->setMimeType( Forminator_Addon_Googlesheet::MIME_TYPE_GOOGLE_SPREADSHEET );
|
236 |
$file->setName( $file_name );
|
237 |
|
238 |
-
|
239 |
if ( ! empty( $folder_id ) ) {
|
240 |
$file->setParents( array( $folder_id ) );
|
241 |
}
|
@@ -258,7 +255,6 @@ class Forminator_Addon_Googlesheet_Form_Settings extends Forminator_Addon_Form_S
|
|
258 |
);
|
259 |
$is_close = true;
|
260 |
|
261 |
-
|
262 |
} catch ( Forminator_Addon_Googlesheet_Form_Settings_Exception $e ) {
|
263 |
$input_errors = $e->get_input_exceptions();
|
264 |
$template_params = array_merge( $template_params, $input_errors );
|
@@ -274,15 +270,16 @@ class Forminator_Addon_Googlesheet_Form_Settings extends Forminator_Addon_Form_S
|
|
274 |
|
275 |
$buttons = array();
|
276 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
277 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
278 |
-
|
279 |
-
|
|
|
280 |
);
|
281 |
}
|
282 |
|
283 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
284 |
-
|
285 |
-
|
286 |
|
287 |
return array(
|
288 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-googlesheet-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Googlesheet_Form_Settings
|
109 |
|
110 |
$buttons = array();
|
111 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
112 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
113 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
114 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
115 |
+
esc_html__( 'Deactivate Google Sheets Integration from this Form.', Forminator::DOMAIN )
|
116 |
);
|
117 |
}
|
118 |
|
119 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
120 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
121 |
+
'</div>';
|
122 |
|
123 |
return array(
|
124 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
185 |
'multi_id' => $multi_id,
|
186 |
);
|
187 |
|
|
|
188 |
$is_submit = ! empty( $submitted_data );
|
189 |
$has_errors = false;
|
190 |
$notification = array();
|
205 |
$google_client = $this->addon->get_google_client();
|
206 |
$google_client->setAccessToken( $this->addon->get_client_access_token() );
|
207 |
|
|
|
208 |
if ( ! empty( $folder_id ) ) {
|
209 |
$drive = new Forminator_Google_Service_Drive( $google_client );
|
210 |
try {
|
215 |
if ( Forminator_Addon_Googlesheet::MIME_TYPE_GOOGLE_DRIVE_FOLDER !== $folder->mimeType ) {
|
216 |
$input_exceptions->add_input_exception( __( 'This is not a folder, please use a valid Folder ID.', Forminator::DOMAIN ), 'folder_id_error' );
|
217 |
}
|
|
|
218 |
} catch ( Forminator_Google_Exception $google_exception ) {
|
219 |
// catch 404
|
220 |
if ( false !== stripos( $google_exception->getMessage(), 'File not found' ) ) {
|
233 |
$file->setMimeType( Forminator_Addon_Googlesheet::MIME_TYPE_GOOGLE_SPREADSHEET );
|
234 |
$file->setName( $file_name );
|
235 |
|
|
|
236 |
if ( ! empty( $folder_id ) ) {
|
237 |
$file->setParents( array( $folder_id ) );
|
238 |
}
|
255 |
);
|
256 |
$is_close = true;
|
257 |
|
|
|
258 |
} catch ( Forminator_Addon_Googlesheet_Form_Settings_Exception $e ) {
|
259 |
$input_errors = $e->get_input_exceptions();
|
260 |
$template_params = array_merge( $template_params, $input_errors );
|
270 |
|
271 |
$buttons = array();
|
272 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
273 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
274 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
275 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
276 |
+
esc_html__( 'Deactivate Google Sheets Integration from this Form.', Forminator::DOMAIN )
|
277 |
);
|
278 |
}
|
279 |
|
280 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
281 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Create', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
282 |
+
'</div>';
|
283 |
|
284 |
return array(
|
285 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
addons/pro/googlesheet/{forminator-addon-googlesheet-poll-hooks.php → class-forminator-addon-googlesheet-poll-hooks.php}
RENAMED
@@ -124,7 +124,6 @@ class Forminator_Addon_Googlesheet_Poll_Hooks extends Forminator_Addon_Poll_Hook
|
|
124 |
'value' => $this->get_status_on_create_row( $key, $submitted_data, $addon_setting_value, $current_entry_fields ),
|
125 |
);
|
126 |
}
|
127 |
-
|
128 |
}
|
129 |
|
130 |
$entry_fields = $data;
|
@@ -224,7 +223,6 @@ class Forminator_Addon_Googlesheet_Poll_Hooks extends Forminator_Addon_Poll_Hook
|
|
224 |
*/
|
225 |
do_action( 'forminator_addon_poll_googlesheet_after_prepare_sheet_headers', $header_fields, $connection_settings, $poll_id, $submitted_data, $poll_entry_fields, $poll_settings_instance );
|
226 |
|
227 |
-
|
228 |
$values = array();
|
229 |
|
230 |
$answer = '';
|
@@ -261,7 +259,6 @@ class Forminator_Addon_Googlesheet_Poll_Hooks extends Forminator_Addon_Poll_Hook
|
|
261 |
$cell_data->setUserEnteredValue( $value );
|
262 |
$values[] = $cell_data;
|
263 |
}
|
264 |
-
|
265 |
}
|
266 |
|
267 |
// Build the RowData
|
@@ -367,7 +364,7 @@ class Forminator_Addon_Googlesheet_Poll_Hooks extends Forminator_Addon_Poll_Hook
|
|
367 |
$sheet_title = $sheets[0]->properties->title;
|
368 |
$sheet_column_count = $sheets[0]->properties->gridProperties->columnCount;
|
369 |
|
370 |
-
$headers_range = $sheet_title . '!
|
371 |
$header_rows = $spreadsheet_service->spreadsheets_values->get(
|
372 |
$spreadsheet->getSpreadsheetId(),
|
373 |
$headers_range
|
124 |
'value' => $this->get_status_on_create_row( $key, $submitted_data, $addon_setting_value, $current_entry_fields ),
|
125 |
);
|
126 |
}
|
|
|
127 |
}
|
128 |
|
129 |
$entry_fields = $data;
|
223 |
*/
|
224 |
do_action( 'forminator_addon_poll_googlesheet_after_prepare_sheet_headers', $header_fields, $connection_settings, $poll_id, $submitted_data, $poll_entry_fields, $poll_settings_instance );
|
225 |
|
|
|
226 |
$values = array();
|
227 |
|
228 |
$answer = '';
|
259 |
$cell_data->setUserEnteredValue( $value );
|
260 |
$values[] = $cell_data;
|
261 |
}
|
|
|
262 |
}
|
263 |
|
264 |
// Build the RowData
|
364 |
$sheet_title = $sheets[0]->properties->title;
|
365 |
$sheet_column_count = $sheets[0]->properties->gridProperties->columnCount;
|
366 |
|
367 |
+
$headers_range = $sheet_title . '!1:1';
|
368 |
$header_rows = $spreadsheet_service->spreadsheets_values->get(
|
369 |
$spreadsheet->getSpreadsheetId(),
|
370 |
$headers_range
|
addons/pro/googlesheet/{forminator-addon-googlesheet-poll-settings-exception.php → class-forminator-addon-googlesheet-poll-settings-exception.php}
RENAMED
File without changes
|
addons/pro/googlesheet/{forminator-addon-googlesheet-poll-settings.php → class-forminator-addon-googlesheet-poll-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-poll-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Googlesheet_Poll_Settings
|
@@ -109,15 +109,16 @@ class Forminator_Addon_Googlesheet_Poll_Settings extends Forminator_Addon_Poll_S
|
|
109 |
|
110 |
$buttons = array();
|
111 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
112 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
113 |
-
|
114 |
-
|
|
|
115 |
);
|
116 |
}
|
117 |
|
118 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
119 |
-
|
120 |
-
|
121 |
|
122 |
return array(
|
123 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -156,7 +157,6 @@ class Forminator_Addon_Googlesheet_Poll_Settings extends Forminator_Addon_Poll_S
|
|
156 |
'multi_id' => $multi_id,
|
157 |
);
|
158 |
|
159 |
-
|
160 |
$is_submit = ! empty( $submitted_data );
|
161 |
$has_errors = false;
|
162 |
$notification = array();
|
@@ -177,7 +177,6 @@ class Forminator_Addon_Googlesheet_Poll_Settings extends Forminator_Addon_Poll_S
|
|
177 |
$google_client = $this->addon->get_google_client();
|
178 |
$google_client->setAccessToken( $this->addon->get_client_access_token() );
|
179 |
|
180 |
-
|
181 |
if ( ! empty( $folder_id ) ) {
|
182 |
$drive = new Forminator_Google_Service_Drive( $google_client );
|
183 |
try {
|
@@ -188,7 +187,6 @@ class Forminator_Addon_Googlesheet_Poll_Settings extends Forminator_Addon_Poll_S
|
|
188 |
if ( Forminator_Addon_Googlesheet::MIME_TYPE_GOOGLE_DRIVE_FOLDER !== $folder->mimeType ) {
|
189 |
$input_exceptions->add_input_exception( __( 'This is not a folder, please use a valid Folder ID.', Forminator::DOMAIN ), 'folder_id_error' );
|
190 |
}
|
191 |
-
|
192 |
} catch ( Forminator_Google_Exception $google_exception ) {
|
193 |
// catch 404
|
194 |
if ( false !== stripos( $google_exception->getMessage(), 'File not found' ) ) {
|
@@ -207,7 +205,6 @@ class Forminator_Addon_Googlesheet_Poll_Settings extends Forminator_Addon_Poll_S
|
|
207 |
$file->setMimeType( Forminator_Addon_Googlesheet::MIME_TYPE_GOOGLE_SPREADSHEET );
|
208 |
$file->setName( $file_name );
|
209 |
|
210 |
-
|
211 |
if ( ! empty( $folder_id ) ) {
|
212 |
$file->setParents( array( $folder_id ) );
|
213 |
}
|
@@ -230,7 +227,6 @@ class Forminator_Addon_Googlesheet_Poll_Settings extends Forminator_Addon_Poll_S
|
|
230 |
);
|
231 |
$is_close = true;
|
232 |
|
233 |
-
|
234 |
} catch ( Forminator_Addon_Googlesheet_Poll_Settings_Exception $e ) {
|
235 |
$input_errors = $e->get_input_exceptions();
|
236 |
$template_params = array_merge( $template_params, $input_errors );
|
@@ -246,15 +242,16 @@ class Forminator_Addon_Googlesheet_Poll_Settings extends Forminator_Addon_Poll_S
|
|
246 |
|
247 |
$buttons = array();
|
248 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
249 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
250 |
-
|
251 |
-
|
|
|
252 |
);
|
253 |
}
|
254 |
|
255 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
256 |
-
|
257 |
-
|
258 |
|
259 |
return array(
|
260 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-googlesheet-poll-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Googlesheet_Poll_Settings
|
109 |
|
110 |
$buttons = array();
|
111 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
112 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
113 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
114 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
115 |
+
esc_html__( 'Deactivate this Google Sheets Integration from this Poll.', Forminator::DOMAIN )
|
116 |
);
|
117 |
}
|
118 |
|
119 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
120 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
121 |
+
'</div>';
|
122 |
|
123 |
return array(
|
124 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
157 |
'multi_id' => $multi_id,
|
158 |
);
|
159 |
|
|
|
160 |
$is_submit = ! empty( $submitted_data );
|
161 |
$has_errors = false;
|
162 |
$notification = array();
|
177 |
$google_client = $this->addon->get_google_client();
|
178 |
$google_client->setAccessToken( $this->addon->get_client_access_token() );
|
179 |
|
|
|
180 |
if ( ! empty( $folder_id ) ) {
|
181 |
$drive = new Forminator_Google_Service_Drive( $google_client );
|
182 |
try {
|
187 |
if ( Forminator_Addon_Googlesheet::MIME_TYPE_GOOGLE_DRIVE_FOLDER !== $folder->mimeType ) {
|
188 |
$input_exceptions->add_input_exception( __( 'This is not a folder, please use a valid Folder ID.', Forminator::DOMAIN ), 'folder_id_error' );
|
189 |
}
|
|
|
190 |
} catch ( Forminator_Google_Exception $google_exception ) {
|
191 |
// catch 404
|
192 |
if ( false !== stripos( $google_exception->getMessage(), 'File not found' ) ) {
|
205 |
$file->setMimeType( Forminator_Addon_Googlesheet::MIME_TYPE_GOOGLE_SPREADSHEET );
|
206 |
$file->setName( $file_name );
|
207 |
|
|
|
208 |
if ( ! empty( $folder_id ) ) {
|
209 |
$file->setParents( array( $folder_id ) );
|
210 |
}
|
227 |
);
|
228 |
$is_close = true;
|
229 |
|
|
|
230 |
} catch ( Forminator_Addon_Googlesheet_Poll_Settings_Exception $e ) {
|
231 |
$input_errors = $e->get_input_exceptions();
|
232 |
$template_params = array_merge( $template_params, $input_errors );
|
242 |
|
243 |
$buttons = array();
|
244 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
245 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
246 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
247 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
248 |
+
esc_html__( 'Deactivate this Google Sheets Integration from this Poll.', Forminator::DOMAIN )
|
249 |
);
|
250 |
}
|
251 |
|
252 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
253 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Create', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
254 |
+
'</div>';
|
255 |
|
256 |
return array(
|
257 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
addons/pro/googlesheet/{forminator-addon-googlesheet-quiz-hooks.php → class-forminator-addon-googlesheet-quiz-hooks.php}
RENAMED
@@ -126,7 +126,6 @@ class Forminator_Addon_Googlesheet_Quiz_Hooks extends Forminator_Addon_Quiz_Hook
|
|
126 |
'value' => $this->get_status_on_create_row( $key, $submitted_data, $addon_setting_value, $current_entry_fields ),
|
127 |
);
|
128 |
}
|
129 |
-
|
130 |
}
|
131 |
|
132 |
$entry_fields = $data;
|
@@ -248,9 +247,9 @@ class Forminator_Addon_Googlesheet_Quiz_Hooks extends Forminator_Addon_Quiz_Hook
|
|
248 |
}
|
249 |
} elseif ( 'nowrong' === $this->quiz->quiz_type ) {
|
250 |
if ( isset( $quiz_entry['value'][0] )
|
251 |
-
|
252 |
-
|
253 |
-
|
254 |
|
255 |
$quiz_entry = $quiz_entry['value'][0]['value'];
|
256 |
|
@@ -270,12 +269,10 @@ class Forminator_Addon_Googlesheet_Quiz_Hooks extends Forminator_Addon_Quiz_Hook
|
|
270 |
}
|
271 |
}
|
272 |
}
|
273 |
-
|
274 |
}
|
275 |
}
|
276 |
}
|
277 |
|
278 |
-
|
279 |
$requests = array();
|
280 |
$date = date_i18n( 'Y-m-d H:i:s' );
|
281 |
foreach ( $answers as $i => $answer ) {
|
@@ -359,12 +356,10 @@ class Forminator_Addon_Googlesheet_Quiz_Hooks extends Forminator_Addon_Quiz_Hook
|
|
359 |
$spreadsheet_service = new Forminator_Google_Service_Sheets( $google_client );
|
360 |
$spreadsheet_service->spreadsheets->batchUpdate( $connection_settings['file_id'], $batch_update_request );
|
361 |
|
362 |
-
|
363 |
if ( $google_client->getAccessToken() !== $this->addon->get_client_access_token() ) {
|
364 |
$this->addon->update_client_access_token( $google_client->getAccessToken() );
|
365 |
}
|
366 |
|
367 |
-
|
368 |
forminator_addon_maybe_log( __METHOD__, 'Success Send Data' );
|
369 |
|
370 |
return array(
|
@@ -435,7 +430,7 @@ class Forminator_Addon_Googlesheet_Quiz_Hooks extends Forminator_Addon_Quiz_Hook
|
|
435 |
$sheet_title = $sheets[0]->properties->title;
|
436 |
$sheet_column_count = $sheets[0]->properties->gridProperties->columnCount;
|
437 |
|
438 |
-
$headers_range = $sheet_title . '!
|
439 |
$header_rows = $spreadsheet_service->spreadsheets_values->get(
|
440 |
$spreadsheet->getSpreadsheetId(),
|
441 |
$headers_range
|
@@ -684,7 +679,6 @@ class Forminator_Addon_Googlesheet_Quiz_Hooks extends Forminator_Addon_Quiz_Hook
|
|
684 |
$quiz_settings_instance
|
685 |
);
|
686 |
|
687 |
-
|
688 |
$addon_meta_datas = $addon_meta_data;
|
689 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
690 |
return array();
|
@@ -736,7 +730,6 @@ class Forminator_Addon_Googlesheet_Quiz_Hooks extends Forminator_Addon_Quiz_Hook
|
|
736 |
'value' => '',
|
737 |
);
|
738 |
|
739 |
-
|
740 |
$sub_entries = array();
|
741 |
if ( isset( $status['connection_name'] ) ) {
|
742 |
$sub_entries[] = array(
|
126 |
'value' => $this->get_status_on_create_row( $key, $submitted_data, $addon_setting_value, $current_entry_fields ),
|
127 |
);
|
128 |
}
|
|
|
129 |
}
|
130 |
|
131 |
$entry_fields = $data;
|
247 |
}
|
248 |
} elseif ( 'nowrong' === $this->quiz->quiz_type ) {
|
249 |
if ( isset( $quiz_entry['value'][0] )
|
250 |
+
&& is_array( $quiz_entry['value'][0] )
|
251 |
+
&& isset( $quiz_entry['value'][0]['value'] )
|
252 |
+
&& is_array( $quiz_entry['value'][0]['value'] ) ) {
|
253 |
|
254 |
$quiz_entry = $quiz_entry['value'][0]['value'];
|
255 |
|
269 |
}
|
270 |
}
|
271 |
}
|
|
|
272 |
}
|
273 |
}
|
274 |
}
|
275 |
|
|
|
276 |
$requests = array();
|
277 |
$date = date_i18n( 'Y-m-d H:i:s' );
|
278 |
foreach ( $answers as $i => $answer ) {
|
356 |
$spreadsheet_service = new Forminator_Google_Service_Sheets( $google_client );
|
357 |
$spreadsheet_service->spreadsheets->batchUpdate( $connection_settings['file_id'], $batch_update_request );
|
358 |
|
|
|
359 |
if ( $google_client->getAccessToken() !== $this->addon->get_client_access_token() ) {
|
360 |
$this->addon->update_client_access_token( $google_client->getAccessToken() );
|
361 |
}
|
362 |
|
|
|
363 |
forminator_addon_maybe_log( __METHOD__, 'Success Send Data' );
|
364 |
|
365 |
return array(
|
430 |
$sheet_title = $sheets[0]->properties->title;
|
431 |
$sheet_column_count = $sheets[0]->properties->gridProperties->columnCount;
|
432 |
|
433 |
+
$headers_range = $sheet_title . '!1:1';
|
434 |
$header_rows = $spreadsheet_service->spreadsheets_values->get(
|
435 |
$spreadsheet->getSpreadsheetId(),
|
436 |
$headers_range
|
679 |
$quiz_settings_instance
|
680 |
);
|
681 |
|
|
|
682 |
$addon_meta_datas = $addon_meta_data;
|
683 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
684 |
return array();
|
730 |
'value' => '',
|
731 |
);
|
732 |
|
|
|
733 |
$sub_entries = array();
|
734 |
if ( isset( $status['connection_name'] ) ) {
|
735 |
$sub_entries[] = array(
|
addons/pro/googlesheet/{forminator-addon-googlesheet-quiz-settings-exception.php → class-forminator-addon-googlesheet-quiz-settings-exception.php}
RENAMED
File without changes
|
addons/pro/googlesheet/{forminator-addon-googlesheet-quiz-settings.php → class-forminator-addon-googlesheet-quiz-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-quiz-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Googlesheet_Quiz_Settings
|
@@ -117,8 +117,8 @@ class Forminator_Addon_Googlesheet_Quiz_Settings extends Forminator_Addon_Quiz_S
|
|
117 |
}
|
118 |
|
119 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
120 |
-
|
121 |
-
|
122 |
|
123 |
return array(
|
124 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -157,7 +157,6 @@ class Forminator_Addon_Googlesheet_Quiz_Settings extends Forminator_Addon_Quiz_S
|
|
157 |
'multi_id' => $multi_id,
|
158 |
);
|
159 |
|
160 |
-
|
161 |
$is_submit = ! empty( $submitted_data );
|
162 |
$has_errors = false;
|
163 |
$notification = array();
|
@@ -178,7 +177,6 @@ class Forminator_Addon_Googlesheet_Quiz_Settings extends Forminator_Addon_Quiz_S
|
|
178 |
$google_client = $this->addon->get_google_client();
|
179 |
$google_client->setAccessToken( $this->addon->get_client_access_token() );
|
180 |
|
181 |
-
|
182 |
if ( ! empty( $folder_id ) ) {
|
183 |
$drive = new Forminator_Google_Service_Drive( $google_client );
|
184 |
try {
|
@@ -189,7 +187,6 @@ class Forminator_Addon_Googlesheet_Quiz_Settings extends Forminator_Addon_Quiz_S
|
|
189 |
if ( Forminator_Addon_Googlesheet::MIME_TYPE_GOOGLE_DRIVE_FOLDER !== $folder->mimeType ) {
|
190 |
$input_exceptions->add_input_exception( __( 'This is not a folder, please use a valid Folder ID.', Forminator::DOMAIN ), 'folder_id_error' );
|
191 |
}
|
192 |
-
|
193 |
} catch ( Forminator_Google_Exception $google_exception ) {
|
194 |
// catch 404
|
195 |
if ( false !== stripos( $google_exception->getMessage(), 'File not found' ) ) {
|
@@ -208,7 +205,6 @@ class Forminator_Addon_Googlesheet_Quiz_Settings extends Forminator_Addon_Quiz_S
|
|
208 |
$file->setMimeType( Forminator_Addon_Googlesheet::MIME_TYPE_GOOGLE_SPREADSHEET );
|
209 |
$file->setName( $file_name );
|
210 |
|
211 |
-
|
212 |
if ( ! empty( $folder_id ) ) {
|
213 |
$file->setParents( array( $folder_id ) );
|
214 |
}
|
@@ -231,7 +227,6 @@ class Forminator_Addon_Googlesheet_Quiz_Settings extends Forminator_Addon_Quiz_S
|
|
231 |
);
|
232 |
$is_close = true;
|
233 |
|
234 |
-
|
235 |
} catch ( Forminator_Addon_Googlesheet_Quiz_Settings_Exception $e ) {
|
236 |
$input_errors = $e->get_input_exceptions();
|
237 |
$template_params = array_merge( $template_params, $input_errors );
|
@@ -255,8 +250,8 @@ class Forminator_Addon_Googlesheet_Quiz_Settings extends Forminator_Addon_Quiz_S
|
|
255 |
}
|
256 |
|
257 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
258 |
-
|
259 |
-
|
260 |
|
261 |
return array(
|
262 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-googlesheet-quiz-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Googlesheet_Quiz_Settings
|
117 |
}
|
118 |
|
119 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
120 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
121 |
+
'</div>';
|
122 |
|
123 |
return array(
|
124 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
157 |
'multi_id' => $multi_id,
|
158 |
);
|
159 |
|
|
|
160 |
$is_submit = ! empty( $submitted_data );
|
161 |
$has_errors = false;
|
162 |
$notification = array();
|
177 |
$google_client = $this->addon->get_google_client();
|
178 |
$google_client->setAccessToken( $this->addon->get_client_access_token() );
|
179 |
|
|
|
180 |
if ( ! empty( $folder_id ) ) {
|
181 |
$drive = new Forminator_Google_Service_Drive( $google_client );
|
182 |
try {
|
187 |
if ( Forminator_Addon_Googlesheet::MIME_TYPE_GOOGLE_DRIVE_FOLDER !== $folder->mimeType ) {
|
188 |
$input_exceptions->add_input_exception( __( 'This is not a folder, please use a valid Folder ID.', Forminator::DOMAIN ), 'folder_id_error' );
|
189 |
}
|
|
|
190 |
} catch ( Forminator_Google_Exception $google_exception ) {
|
191 |
// catch 404
|
192 |
if ( false !== stripos( $google_exception->getMessage(), 'File not found' ) ) {
|
205 |
$file->setMimeType( Forminator_Addon_Googlesheet::MIME_TYPE_GOOGLE_SPREADSHEET );
|
206 |
$file->setName( $file_name );
|
207 |
|
|
|
208 |
if ( ! empty( $folder_id ) ) {
|
209 |
$file->setParents( array( $folder_id ) );
|
210 |
}
|
227 |
);
|
228 |
$is_close = true;
|
229 |
|
|
|
230 |
} catch ( Forminator_Addon_Googlesheet_Quiz_Settings_Exception $e ) {
|
231 |
$input_errors = $e->get_input_exceptions();
|
232 |
$template_params = array_merge( $template_params, $input_errors );
|
250 |
}
|
251 |
|
252 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
253 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Create', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
254 |
+
'</div>';
|
255 |
|
256 |
return array(
|
257 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
addons/pro/googlesheet/{forminator-addon-googlesheet.php → class-forminator-addon-googlesheet.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Googlesheet
|
@@ -37,7 +37,7 @@ final class Forminator_Addon_Googlesheet extends Forminator_Addon_Abstract {
|
|
37 |
protected $_quiz_settings = 'Forminator_Addon_Googlesheet_Quiz_Settings';
|
38 |
protected $_quiz_hooks = 'Forminator_Addon_Googlesheet_Quiz_Hooks';
|
39 |
|
40 |
-
protected $_position
|
41 |
|
42 |
/**
|
43 |
* Forminator_Addon_Googlesheet constructor.
|
@@ -95,7 +95,6 @@ final class Forminator_Addon_Googlesheet extends Forminator_Addon_Abstract {
|
|
95 |
if ( isset( $setting_values['token'] ) && ! empty( $setting_values['token'] ) ) {
|
96 |
$is_connected = true;
|
97 |
}
|
98 |
-
|
99 |
} catch ( Forminator_Addon_Googlesheet_Exception $e ) {
|
100 |
$is_connected = false;
|
101 |
}
|
@@ -245,12 +244,12 @@ final class Forminator_Addon_Googlesheet extends Forminator_Addon_Abstract {
|
|
245 |
'markup' => self::get_button_markup( esc_html__( 'DISCONNECT', Forminator::DOMAIN ), 'sui-button-ghost forminator-addon-disconnect' ),
|
246 |
);
|
247 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
248 |
-
|
249 |
-
|
250 |
} else {
|
251 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
252 |
-
|
253 |
-
|
254 |
}
|
255 |
|
256 |
$template_params = array(
|
@@ -289,7 +288,6 @@ final class Forminator_Addon_Googlesheet extends Forminator_Addon_Abstract {
|
|
289 |
}
|
290 |
}
|
291 |
|
292 |
-
|
293 |
if ( $is_submit ) {
|
294 |
$client_id = isset( $submitted_data['client_id'] ) ? $submitted_data['client_id'] : '';
|
295 |
$client_secret = isset( $submitted_data['client_secret'] ) ? $submitted_data['client_secret'] : '';
|
@@ -321,8 +319,6 @@ final class Forminator_Addon_Googlesheet extends Forminator_Addon_Abstract {
|
|
321 |
$has_errors = true;
|
322 |
}
|
323 |
}
|
324 |
-
|
325 |
-
|
326 |
}
|
327 |
|
328 |
return array(
|
@@ -370,7 +366,6 @@ final class Forminator_Addon_Googlesheet extends Forminator_Addon_Abstract {
|
|
370 |
);
|
371 |
}
|
372 |
|
373 |
-
|
374 |
$template_params = array(
|
375 |
'auth_url' => $this->get_auth_url(),
|
376 |
'token' => $this->_token,
|
@@ -600,7 +595,6 @@ final class Forminator_Addon_Googlesheet extends Forminator_Addon_Abstract {
|
|
600 |
// catch all exception
|
601 |
$template_params['error_message'] = $e->getMessage();
|
602 |
}
|
603 |
-
|
604 |
}
|
605 |
|
606 |
return self::get_template( $template, $template_params );
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-googlesheet-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Googlesheet
|
37 |
protected $_quiz_settings = 'Forminator_Addon_Googlesheet_Quiz_Settings';
|
38 |
protected $_quiz_hooks = 'Forminator_Addon_Googlesheet_Quiz_Hooks';
|
39 |
|
40 |
+
protected $_position = 3;
|
41 |
|
42 |
/**
|
43 |
* Forminator_Addon_Googlesheet constructor.
|
95 |
if ( isset( $setting_values['token'] ) && ! empty( $setting_values['token'] ) ) {
|
96 |
$is_connected = true;
|
97 |
}
|
|
|
98 |
} catch ( Forminator_Addon_Googlesheet_Exception $e ) {
|
99 |
$is_connected = false;
|
100 |
}
|
244 |
'markup' => self::get_button_markup( esc_html__( 'DISCONNECT', Forminator::DOMAIN ), 'sui-button-ghost forminator-addon-disconnect' ),
|
245 |
);
|
246 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
247 |
+
Forminator_Addon_Mailchimp::get_button_markup( esc_html__( 'RE-AUTHORIZE', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
248 |
+
'</div>';
|
249 |
} else {
|
250 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
251 |
+
Forminator_Addon_Mailchimp::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
252 |
+
'</div>';
|
253 |
}
|
254 |
|
255 |
$template_params = array(
|
288 |
}
|
289 |
}
|
290 |
|
|
|
291 |
if ( $is_submit ) {
|
292 |
$client_id = isset( $submitted_data['client_id'] ) ? $submitted_data['client_id'] : '';
|
293 |
$client_secret = isset( $submitted_data['client_secret'] ) ? $submitted_data['client_secret'] : '';
|
319 |
$has_errors = true;
|
320 |
}
|
321 |
}
|
|
|
|
|
322 |
}
|
323 |
|
324 |
return array(
|
366 |
);
|
367 |
}
|
368 |
|
|
|
369 |
$template_params = array(
|
370 |
'auth_url' => $this->get_auth_url(),
|
371 |
'token' => $this->_token,
|
595 |
// catch all exception
|
596 |
$template_params['error_message'] = $e->getMessage();
|
597 |
}
|
|
|
598 |
}
|
599 |
|
600 |
return self::get_template( $template, $template_params );
|
addons/pro/googlesheet/googlesheet.php
CHANGED
@@ -42,17 +42,17 @@ function forminator_addon_googlesheet_google_api_client_autoload( $class_name )
|
|
42 |
// only enable autoload when needed to avoid further conflicts
|
43 |
//spl_autoload_register( 'forminator_addon_googlesheet_google_api_client_autoload' );
|
44 |
|
45 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet.php';
|
46 |
|
47 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-form-settings.php';
|
48 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-form-hooks.php';
|
49 |
|
50 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-poll-settings.php';
|
51 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-poll-hooks.php';
|
52 |
|
53 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-quiz-settings.php';
|
54 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-googlesheet-quiz-hooks.php';
|
55 |
|
56 |
-
require_once dirname( __FILE__ ) . '/lib/class-wp-googlesheet-client-logger.php';
|
57 |
//Direct Load
|
58 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Googlesheet' );
|
42 |
// only enable autoload when needed to avoid further conflicts
|
43 |
//spl_autoload_register( 'forminator_addon_googlesheet_google_api_client_autoload' );
|
44 |
|
45 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-googlesheet.php';
|
46 |
|
47 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-googlesheet-form-settings.php';
|
48 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-googlesheet-form-hooks.php';
|
49 |
|
50 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-googlesheet-poll-settings.php';
|
51 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-googlesheet-poll-hooks.php';
|
52 |
|
53 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-googlesheet-quiz-settings.php';
|
54 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-googlesheet-quiz-hooks.php';
|
55 |
|
56 |
+
require_once dirname( __FILE__ ) . '/lib/class-forminator-addon-wp-googlesheet-client-logger.php';
|
57 |
//Direct Load
|
58 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Googlesheet' );
|
addons/pro/googlesheet/lib/{class-wp-googlesheet-client-logger.php → class-forminator-addon-wp-googlesheet-client-logger.php}
RENAMED
File without changes
|
addons/pro/googlesheet/views/form-settings/pick-name.php
CHANGED
@@ -18,7 +18,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
18 |
<p><?php esc_html_e( 'Setup friendly name for this integration, so it will be easily identified by you.', Forminator::DOMAIN ); ?></p>
|
19 |
<?php if ( ! empty( $vars['file_id'] ) ) : ?>
|
20 |
<span class="sui-notice sui-notice-info"><p>
|
21 |
-
|
22 |
<a target="_blank" href="https://docs.google.com/spreadsheets/d/<?php echo esc_attr( $vars['file_id'] ); ?>"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>.</p></span>
|
23 |
<?php endif; ?>
|
24 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
18 |
<p><?php esc_html_e( 'Setup friendly name for this integration, so it will be easily identified by you.', Forminator::DOMAIN ); ?></p>
|
19 |
<?php if ( ! empty( $vars['file_id'] ) ) : ?>
|
20 |
<span class="sui-notice sui-notice-info"><p>
|
21 |
+
<?php esc_html_e( 'You can open your current spread sheet', Forminator::DOMAIN ); ?>
|
22 |
<a target="_blank" href="https://docs.google.com/spreadsheets/d/<?php echo esc_attr( $vars['file_id'] ); ?>"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>.</p></span>
|
23 |
<?php endif; ?>
|
24 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
addons/pro/googlesheet/views/form-settings/setup-sheet.php
CHANGED
@@ -20,7 +20,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
20 |
<p><?php esc_html_e( 'Create Spreadsheet that will be used to send submissions.', Forminator::DOMAIN ); ?></p>
|
21 |
<?php if ( ! empty( $vars['file_id'] ) ) : ?>
|
22 |
<span class="sui-notice sui-notice-info"><p>
|
23 |
-
|
24 |
<a target="_blank" href="https://docs.google.com/spreadsheets/d/<?php echo esc_attr( $vars['file_id'] ); ?>"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>.</p></span>
|
25 |
<?php endif; ?>
|
26 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
@@ -43,19 +43,24 @@ foreach ( $template_vars as $key => $val ) {
|
|
43 |
<?php esc_html_e( 'It is optional, if Drive Folder ID omitted / empty, new spreadsheet will be created in your Google Drive home / root folder.', Forminator::DOMAIN ); ?>
|
44 |
</li>
|
45 |
<li>
|
46 |
-
<?php
|
47 |
-
|
48 |
-
'
|
49 |
-
|
|
|
|
|
50 |
<?php esc_html_e( 'Navigate to or create a new directory where you want to new spreadsheet created. Make sure you are viewing the destination directory.', Forminator::DOMAIN ); ?>
|
51 |
</li>
|
52 |
<li>
|
53 |
-
<?php
|
54 |
-
|
|
|
55 |
'<em>https://drive.google.com/#folders/0B6GD66ctHXdCOWZKNDRIRGJJXS3</em>',
|
56 |
'<em>/#folders/</em>',
|
57 |
'<strong>0B6GD66ctHXdCOWZKNDRIRGJJXS3</strong>'
|
58 |
-
); //
|
|
|
|
|
59 |
</ol>
|
60 |
</span>
|
61 |
</div>
|
20 |
<p><?php esc_html_e( 'Create Spreadsheet that will be used to send submissions.', Forminator::DOMAIN ); ?></p>
|
21 |
<?php if ( ! empty( $vars['file_id'] ) ) : ?>
|
22 |
<span class="sui-notice sui-notice-info"><p>
|
23 |
+
<?php esc_html_e( 'You can open your current spread sheet', Forminator::DOMAIN ); ?>
|
24 |
<a target="_blank" href="https://docs.google.com/spreadsheets/d/<?php echo esc_attr( $vars['file_id'] ); ?>"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>.</p></span>
|
25 |
<?php endif; ?>
|
26 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
43 |
<?php esc_html_e( 'It is optional, if Drive Folder ID omitted / empty, new spreadsheet will be created in your Google Drive home / root folder.', Forminator::DOMAIN ); ?>
|
44 |
</li>
|
45 |
<li>
|
46 |
+
<?php
|
47 |
+
echo sprintf(/* translators: ... */
|
48 |
+
esc_html__( 'Go to your %1$s.', Forminator::DOMAIN ),
|
49 |
+
'<a href="https://drive.google.com/#my-drive" target="_blank">' . esc_html__( 'Drive account', Forminator::DOMAIN ) . '</a>'
|
50 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
51 |
+
?>
|
52 |
<?php esc_html_e( 'Navigate to or create a new directory where you want to new spreadsheet created. Make sure you are viewing the destination directory.', Forminator::DOMAIN ); ?>
|
53 |
</li>
|
54 |
<li>
|
55 |
+
<?php
|
56 |
+
echo sprintf(/* translators: ... */
|
57 |
+
esc_html__( 'The URL for the directory will be something similar to %1$s. The Directory ID would be the last part after %2$s, which is %3$s in this case.', Forminator::DOMAIN ),
|
58 |
'<em>https://drive.google.com/#folders/0B6GD66ctHXdCOWZKNDRIRGJJXS3</em>',
|
59 |
'<em>/#folders/</em>',
|
60 |
'<strong>0B6GD66ctHXdCOWZKNDRIRGJJXS3</strong>'
|
61 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
62 |
+
?>
|
63 |
+
</li>
|
64 |
</ol>
|
65 |
</span>
|
66 |
</div>
|
addons/pro/googlesheet/views/poll-settings/pick-name.php
CHANGED
@@ -18,7 +18,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
18 |
<p><?php esc_html_e( 'Setup friendly name for this integration, so it will be easily identified by you.', Forminator::DOMAIN ); ?></p>
|
19 |
<?php if ( ! empty( $vars['file_id'] ) ) : ?>
|
20 |
<span class="sui-notice sui-notice-info"><p>
|
21 |
-
|
22 |
<a target="_blank" href="https://docs.google.com/spreadsheets/d/<?php echo esc_attr( $vars['file_id'] ); ?>"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>.</p></span>
|
23 |
<?php endif; ?>
|
24 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
18 |
<p><?php esc_html_e( 'Setup friendly name for this integration, so it will be easily identified by you.', Forminator::DOMAIN ); ?></p>
|
19 |
<?php if ( ! empty( $vars['file_id'] ) ) : ?>
|
20 |
<span class="sui-notice sui-notice-info"><p>
|
21 |
+
<?php esc_html_e( 'You can open your current spread sheet', Forminator::DOMAIN ); ?>
|
22 |
<a target="_blank" href="https://docs.google.com/spreadsheets/d/<?php echo esc_attr( $vars['file_id'] ); ?>"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>.</p></span>
|
23 |
<?php endif; ?>
|
24 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
addons/pro/googlesheet/views/poll-settings/setup-sheet.php
CHANGED
@@ -20,7 +20,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
20 |
<p><?php esc_html_e( 'Create Spreadsheet that will be used to send submissions.', Forminator::DOMAIN ); ?></p>
|
21 |
<?php if ( ! empty( $vars['file_id'] ) ) : ?>
|
22 |
<span class="sui-notice sui-notice-info"><p>
|
23 |
-
|
24 |
<a target="_blank" href="https://docs.google.com/spreadsheets/d/<?php echo esc_attr( $vars['file_id'] ); ?>"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>.</p></span>
|
25 |
<?php endif; ?>
|
26 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
@@ -43,19 +43,24 @@ foreach ( $template_vars as $key => $val ) {
|
|
43 |
<?php esc_html_e( 'It is optional, if Drive Folder ID omitted / empty, new spreadsheet will be created in your Google Drive home / root folder.', Forminator::DOMAIN ); ?>
|
44 |
</li>
|
45 |
<li>
|
46 |
-
<?php
|
47 |
-
|
48 |
-
'
|
49 |
-
|
|
|
|
|
50 |
<?php esc_html_e( 'Navigate to or create a new directory where you want to new spreadsheet created. Make sure you are viewing the destination directory.', Forminator::DOMAIN ); ?>
|
51 |
</li>
|
52 |
<li>
|
53 |
-
<?php
|
54 |
-
|
|
|
55 |
'<em>https://drive.google.com/#folders/0B6GD66ctHXdCOWZKNDRIRGJJXS3</em>',
|
56 |
'<em>/#folders/</em>',
|
57 |
'<strong>0B6GD66ctHXdCOWZKNDRIRGJJXS3</strong>'
|
58 |
-
); //
|
|
|
|
|
59 |
</ol>
|
60 |
</span>
|
61 |
</div>
|
20 |
<p><?php esc_html_e( 'Create Spreadsheet that will be used to send submissions.', Forminator::DOMAIN ); ?></p>
|
21 |
<?php if ( ! empty( $vars['file_id'] ) ) : ?>
|
22 |
<span class="sui-notice sui-notice-info"><p>
|
23 |
+
<?php esc_html_e( 'You can open your current spread sheet', Forminator::DOMAIN ); ?>
|
24 |
<a target="_blank" href="https://docs.google.com/spreadsheets/d/<?php echo esc_attr( $vars['file_id'] ); ?>"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>.</p></span>
|
25 |
<?php endif; ?>
|
26 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
43 |
<?php esc_html_e( 'It is optional, if Drive Folder ID omitted / empty, new spreadsheet will be created in your Google Drive home / root folder.', Forminator::DOMAIN ); ?>
|
44 |
</li>
|
45 |
<li>
|
46 |
+
<?php
|
47 |
+
echo sprintf(/* translators: ... */
|
48 |
+
esc_html__( 'Go to your %1$s.', Forminator::DOMAIN ),
|
49 |
+
'<a href="https://drive.google.com/#my-drive" target="_blank">' . esc_html__( 'Drive account', Forminator::DOMAIN ) . '</a>'
|
50 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
51 |
+
?>
|
52 |
<?php esc_html_e( 'Navigate to or create a new directory where you want to new spreadsheet created. Make sure you are viewing the destination directory.', Forminator::DOMAIN ); ?>
|
53 |
</li>
|
54 |
<li>
|
55 |
+
<?php
|
56 |
+
echo sprintf(/* translators: ... */
|
57 |
+
esc_html__( 'The URL for the directory will be something similar to %1$s. The Directory ID would be the last part after %2$s, which is %3$s in this case.', Forminator::DOMAIN ),
|
58 |
'<em>https://drive.google.com/#folders/0B6GD66ctHXdCOWZKNDRIRGJJXS3</em>',
|
59 |
'<em>/#folders/</em>',
|
60 |
'<strong>0B6GD66ctHXdCOWZKNDRIRGJJXS3</strong>'
|
61 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
62 |
+
?>
|
63 |
+
</li>
|
64 |
</ol>
|
65 |
</span>
|
66 |
</div>
|
addons/pro/googlesheet/views/quiz-settings/pick-name.php
CHANGED
@@ -18,7 +18,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
18 |
<p><?php esc_html_e( 'Setup friendly name for this integration, so it will be easily identified by you.', Forminator::DOMAIN ); ?></p>
|
19 |
<?php if ( ! empty( $vars['file_id'] ) ) : ?>
|
20 |
<span class="sui-notice sui-notice-info"><p>
|
21 |
-
|
22 |
<a target="_blank" href="https://docs.google.com/spreadsheets/d/<?php echo esc_attr( $vars['file_id'] ); ?>"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>.</p></span>
|
23 |
<?php endif; ?>
|
24 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
18 |
<p><?php esc_html_e( 'Setup friendly name for this integration, so it will be easily identified by you.', Forminator::DOMAIN ); ?></p>
|
19 |
<?php if ( ! empty( $vars['file_id'] ) ) : ?>
|
20 |
<span class="sui-notice sui-notice-info"><p>
|
21 |
+
<?php esc_html_e( 'You can open your current spread sheet', Forminator::DOMAIN ); ?>
|
22 |
<a target="_blank" href="https://docs.google.com/spreadsheets/d/<?php echo esc_attr( $vars['file_id'] ); ?>"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>.</p></span>
|
23 |
<?php endif; ?>
|
24 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
addons/pro/googlesheet/views/quiz-settings/setup-sheet.php
CHANGED
@@ -20,7 +20,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
20 |
<p><?php esc_html_e( 'Create Spreadsheet that will be used to send submissions.', Forminator::DOMAIN ); ?></p>
|
21 |
<?php if ( ! empty( $vars['file_id'] ) ) : ?>
|
22 |
<span class="sui-notice sui-notice-info"><p>
|
23 |
-
|
24 |
<a target="_blank" href="https://docs.google.com/spreadsheets/d/<?php echo esc_attr( $vars['file_id'] ); ?>"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>.</p></span>
|
25 |
<?php endif; ?>
|
26 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
@@ -43,19 +43,24 @@ foreach ( $template_vars as $key => $val ) {
|
|
43 |
<?php esc_html_e( 'It is optional, if Drive Folder ID omitted / empty, new spreadsheet will be created in your Google Drive home / root folder.', Forminator::DOMAIN ); ?>
|
44 |
</li>
|
45 |
<li>
|
46 |
-
<?php
|
47 |
-
|
48 |
-
'
|
49 |
-
|
|
|
|
|
50 |
<?php esc_html_e( 'Navigate to or create a new directory where you want to new spreadsheet created. Make sure you are viewing the destination directory.', Forminator::DOMAIN ); ?>
|
51 |
</li>
|
52 |
<li>
|
53 |
-
<?php
|
54 |
-
|
|
|
55 |
'<em>https://drive.google.com/#folders/0B6GD66ctHXdCOWZKNDRIRGJJXS3</em>',
|
56 |
'<em>/#folders/</em>',
|
57 |
'<strong>0B6GD66ctHXdCOWZKNDRIRGJJXS3</strong>'
|
58 |
-
); //
|
|
|
|
|
59 |
</ol>
|
60 |
</span>
|
61 |
</div>
|
20 |
<p><?php esc_html_e( 'Create Spreadsheet that will be used to send submissions.', Forminator::DOMAIN ); ?></p>
|
21 |
<?php if ( ! empty( $vars['file_id'] ) ) : ?>
|
22 |
<span class="sui-notice sui-notice-info"><p>
|
23 |
+
<?php esc_html_e( 'You can open your current spread sheet', Forminator::DOMAIN ); ?>
|
24 |
<a target="_blank" href="https://docs.google.com/spreadsheets/d/<?php echo esc_attr( $vars['file_id'] ); ?>"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>.</p></span>
|
25 |
<?php endif; ?>
|
26 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
43 |
<?php esc_html_e( 'It is optional, if Drive Folder ID omitted / empty, new spreadsheet will be created in your Google Drive home / root folder.', Forminator::DOMAIN ); ?>
|
44 |
</li>
|
45 |
<li>
|
46 |
+
<?php
|
47 |
+
echo sprintf(/* translators: ... */
|
48 |
+
esc_html__( 'Go to your %1$s.', Forminator::DOMAIN ),
|
49 |
+
'<a href="https://drive.google.com/#my-drive" target="_blank">' . esc_html__( 'Drive account', Forminator::DOMAIN ) . '</a>'
|
50 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
51 |
+
?>
|
52 |
<?php esc_html_e( 'Navigate to or create a new directory where you want to new spreadsheet created. Make sure you are viewing the destination directory.', Forminator::DOMAIN ); ?>
|
53 |
</li>
|
54 |
<li>
|
55 |
+
<?php
|
56 |
+
echo sprintf(/* translators: ... */
|
57 |
+
esc_html__( 'The URL for the directory will be something similar to %1$s. The Directory ID would be the last part after %2$s, which is %3$s in this case.', Forminator::DOMAIN ),
|
58 |
'<em>https://drive.google.com/#folders/0B6GD66ctHXdCOWZKNDRIRGJJXS3</em>',
|
59 |
'<em>/#folders/</em>',
|
60 |
'<strong>0B6GD66ctHXdCOWZKNDRIRGJJXS3</strong>'
|
61 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
62 |
+
?>
|
63 |
+
</li>
|
64 |
</ol>
|
65 |
</span>
|
66 |
</div>
|
addons/pro/googlesheet/views/sections/authorize.php
CHANGED
@@ -14,17 +14,18 @@ foreach ( $template_vars as $key => $val ) {
|
|
14 |
|
15 |
<div class="sui-box">
|
16 |
<div class="sui-box-header">
|
17 |
-
<h2 class="sui-box-title"><?php esc_html_e(
|
18 |
</div>
|
19 |
<div class="sui-box-body">
|
20 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
21 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
22 |
-
<?php elseif ( $vars['is_close'] ): ?>
|
23 |
<span class="sui-notice sui-notice-success">
|
24 |
<p>
|
25 |
<?php
|
26 |
-
esc_html_e(
|
27 |
-
|
|
|
28 |
);
|
29 |
?>
|
30 |
</p>
|
@@ -41,7 +42,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
41 |
<script>
|
42 |
(function ($) {
|
43 |
$(document).ready(function (e) {
|
44 |
-
<?php if ($vars['is_close']): ?>
|
45 |
setTimeout(function () {
|
46 |
window.close();
|
47 |
}, 3000);
|
14 |
|
15 |
<div class="sui-box">
|
16 |
<div class="sui-box-header">
|
17 |
+
<h2 class="sui-box-title"><?php esc_html_e( 'Authorizing Google SpreadSheets', Forminator::DOMAIN ); ?></h2>
|
18 |
</div>
|
19 |
<div class="sui-box-body">
|
20 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
21 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
22 |
+
<?php elseif ( $vars['is_close'] ) : ?>
|
23 |
<span class="sui-notice sui-notice-success">
|
24 |
<p>
|
25 |
<?php
|
26 |
+
esc_html_e(
|
27 |
+
'Successfully authorized Google SpreadSheets, you can go back to integration settings.',
|
28 |
+
Forminator::DOMAIN
|
29 |
);
|
30 |
?>
|
31 |
</p>
|
42 |
<script>
|
43 |
(function ($) {
|
44 |
$(document).ready(function (e) {
|
45 |
+
<?php if ( $vars['is_close'] ) : ?>
|
46 |
setTimeout(function () {
|
47 |
window.close();
|
48 |
}, 3000);
|
addons/pro/googlesheet/views/settings/authorize.php
CHANGED
@@ -12,7 +12,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
12 |
|
13 |
<div class="integration-header">
|
14 |
|
15 |
-
<h3 id="dialogTitle2" class="sui-box-title"><?php echo esc_html( sprintf( __( 'Connect %1$s', Forminator::DOMAIN ), 'Google Sheets' ) ); ?></h3>
|
16 |
|
17 |
<?php if ( ! empty( $vars['token'] ) ) : ?>
|
18 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'Click button below to re-authorize.', Forminator::DOMAIN ); ?></span>
|
12 |
|
13 |
<div class="integration-header">
|
14 |
|
15 |
+
<h3 id="dialogTitle2" class="sui-box-title"><?php echo esc_html( sprintf( /* translators: ... */ __( 'Connect %1$s', Forminator::DOMAIN ), 'Google Sheets' ) ); ?></h3>
|
16 |
|
17 |
<?php if ( ! empty( $vars['token'] ) ) : ?>
|
18 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'Click button below to re-authorize.', Forminator::DOMAIN ); ?></span>
|
addons/pro/googlesheet/views/settings/setup-client.php
CHANGED
@@ -17,7 +17,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
17 |
|
18 |
<div class="integration-header">
|
19 |
|
20 |
-
<h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( sprintf( __( 'Setup %1$s Client', Forminator::DOMAIN ), 'Google Sheets' ) ); ?></h3>
|
21 |
|
22 |
<?php if ( ! empty( $vars['token'] ) ) : ?>
|
23 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'Your Google Sheets account is already authorized. Edit info below to re-authorize.', Forminator::DOMAIN ); ?></span>
|
@@ -84,23 +84,86 @@ foreach ( $template_vars as $key => $val ) {
|
|
84 |
|
85 |
<ol class="instructions" id="clientid-instructions">
|
86 |
|
87 |
-
<li
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
88 |
|
89 |
<li><?php esc_html_e( 'Select an existing project or create a new one. If creating a new project, you will need to enter a name, but the ID is not important and can be ignored.', Forminator::DOMAIN ); ?></li>
|
90 |
|
91 |
-
<li
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
92 |
|
93 |
-
<li
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
94 |
|
95 |
<ol style="margin-top: 15px; margin-bottom: 15px;">
|
96 |
|
97 |
-
<li
|
98 |
-
|
99 |
-
|
100 |
-
|
101 |
-
|
102 |
-
|
103 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
104 |
|
105 |
</ol>
|
106 |
|
17 |
|
18 |
<div class="integration-header">
|
19 |
|
20 |
+
<h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( sprintf( /* translators: ... */ __( 'Setup %1$s Client', Forminator::DOMAIN ), 'Google Sheets' ) ); ?></h3>
|
21 |
|
22 |
<?php if ( ! empty( $vars['token'] ) ) : ?>
|
23 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'Your Google Sheets account is already authorized. Edit info below to re-authorize.', Forminator::DOMAIN ); ?></span>
|
84 |
|
85 |
<ol class="instructions" id="clientid-instructions">
|
86 |
|
87 |
+
<li>
|
88 |
+
<?php
|
89 |
+
echo sprintf(/* translators: ... */
|
90 |
+
esc_html__( 'Go to the %1$sGoogle API Console%2$s', Forminator::DOMAIN ),
|
91 |
+
'<a href="https://console.developers.google.com/cloud-resource-manager" target="_blank">',
|
92 |
+
'</a>'
|
93 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
94 |
+
?>
|
95 |
+
</li>
|
96 |
|
97 |
<li><?php esc_html_e( 'Select an existing project or create a new one. If creating a new project, you will need to enter a name, but the ID is not important and can be ignored.', Forminator::DOMAIN ); ?></li>
|
98 |
|
99 |
+
<li>
|
100 |
+
<?php
|
101 |
+
echo sprintf(/* translators: ... */
|
102 |
+
esc_html__( 'Once the Project creation is completed go to the %1$sAPI Manager%2$s. Here you need to enable the %3$sGoogle Drive API%4$s and %5$sGoogle Sheets API%6$s.', Forminator::DOMAIN ),
|
103 |
+
'<strong>',
|
104 |
+
'</strong>',
|
105 |
+
'<strong>',
|
106 |
+
'</strong>',
|
107 |
+
'<strong>',
|
108 |
+
'</strong>'
|
109 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
110 |
+
?>
|
111 |
+
</li>
|
112 |
|
113 |
+
<li>
|
114 |
+
<?php
|
115 |
+
echo sprintf(/* translators: ... */
|
116 |
+
esc_html__( 'Next, go to the %1$sAPI Manager > Credentials%2$s section.', Forminator::DOMAIN ),
|
117 |
+
'<strong>',
|
118 |
+
'</strong>'
|
119 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
120 |
+
?>
|
121 |
+
</li>
|
122 |
|
123 |
<ol style="margin-top: 15px; margin-bottom: 15px;">
|
124 |
|
125 |
+
<li>
|
126 |
+
<?php
|
127 |
+
echo sprintf(/* translators: ... */
|
128 |
+
esc_html__( 'Click %1$sCreate Credentials > OAuth 2.0 client ID%2$s.', Forminator::DOMAIN ),
|
129 |
+
'<strong>',
|
130 |
+
'</strong>'
|
131 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
132 |
+
?>
|
133 |
+
</li>
|
134 |
+
|
135 |
+
<li>
|
136 |
+
<?php
|
137 |
+
echo sprintf(/* translators: ... */
|
138 |
+
esc_html__( 'In the popup select the %1$sApplication Type%2$s as %3$sWeb application%4$s.', Forminator::DOMAIN ),
|
139 |
+
'<strong>',
|
140 |
+
'</strong>',
|
141 |
+
'<strong>',
|
142 |
+
'</strong>'
|
143 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
144 |
+
?>
|
145 |
+
</li>
|
146 |
+
|
147 |
+
<li>
|
148 |
+
<?php
|
149 |
+
echo sprintf(/* translators: ... */
|
150 |
+
esc_html__( 'In the field %1$sAuthorized redirect URI%2$s, put this value below:', Forminator::DOMAIN ),
|
151 |
+
'<strong>',
|
152 |
+
'</strong>'
|
153 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
154 |
+
?>
|
155 |
+
<pre class="sui-code-snippet"><?php echo esc_html( ! empty( $vars['redirect_url'] ) ? $vars['redirect_url'] : '' ); ?></pre>
|
156 |
+
</li>
|
157 |
+
|
158 |
+
<li>
|
159 |
+
<?php
|
160 |
+
echo sprintf(/* translators: ... */
|
161 |
+
esc_html__( 'Then click the %1$sCreate Client ID%2$s button, then navigate to %1$sAPI Keys%2$s section.', Forminator::DOMAIN ),
|
162 |
+
'<strong>',
|
163 |
+
'</strong>'
|
164 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
165 |
+
?>
|
166 |
+
</li>
|
167 |
|
168 |
</ol>
|
169 |
|
addons/pro/googlesheet/views/settings/success-authorize.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<div class="integration-header">
|
2 |
<h3 class="sui-box-title" id="dialogTitle2">
|
3 |
-
<?php echo esc_html( sprintf( __( '%1$s Added', Forminator::DOMAIN ), 'Google Sheets' ) ); ?>
|
4 |
</h3>
|
5 |
<p><?php esc_html_e( 'You can now go to your forms and assign them to this integration', Forminator::DOMAIN ); ?></p>
|
6 |
</div>
|
1 |
<div class="integration-header">
|
2 |
<h3 class="sui-box-title" id="dialogTitle2">
|
3 |
+
<?php echo esc_html( sprintf( /* translators: ... */ __( '%1$s Added', Forminator::DOMAIN ), 'Google Sheets' ) ); ?>
|
4 |
</h3>
|
5 |
<p><?php esc_html_e( 'You can now go to your forms and assign them to this integration', Forminator::DOMAIN ); ?></p>
|
6 |
</div>
|
addons/pro/googlesheet/views/settings/wait-authorize.php
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
<?php
|
2 |
// defaults
|
3 |
$vars = array(
|
4 |
-
'auth_url'
|
5 |
-
'token'
|
6 |
);
|
7 |
/** @var array $template_vars */
|
8 |
foreach ( $template_vars as $key => $val ) {
|
1 |
<?php
|
2 |
// defaults
|
3 |
$vars = array(
|
4 |
+
'auth_url' => '',
|
5 |
+
'token' => '',
|
6 |
);
|
7 |
/** @var array $template_vars */
|
8 |
foreach ( $template_vars as $key => $val ) {
|
addons/pro/gutenberg/gutenberg.php
CHANGED
@@ -41,7 +41,7 @@ class Forminator_Gutenberg {
|
|
41 |
*/
|
42 |
public static function init() {
|
43 |
// Load abstracts
|
44 |
-
require_once dirname( __FILE__ ) . '/library/
|
45 |
|
46 |
// Load blocks
|
47 |
self::load_blocks();
|
@@ -54,7 +54,7 @@ class Forminator_Gutenberg {
|
|
54 |
*/
|
55 |
public static function load_blocks() {
|
56 |
// Load blocks automatically
|
57 |
-
foreach ( glob( plugin_dir_path( __FILE__ ) . 'library/blocks/class-
|
58 |
require_once $file;
|
59 |
}
|
60 |
}
|
41 |
*/
|
42 |
public static function init() {
|
43 |
// Load abstracts
|
44 |
+
require_once dirname( __FILE__ ) . '/library/class-forminator-gfblock-abstract.php';
|
45 |
|
46 |
// Load blocks
|
47 |
self::load_blocks();
|
54 |
*/
|
55 |
public static function load_blocks() {
|
56 |
// Load blocks automatically
|
57 |
+
foreach ( glob( plugin_dir_path( __FILE__ ) . 'library/blocks/class-forminator-gfblock-*.php' ) as $file ) {
|
58 |
require_once $file;
|
59 |
}
|
60 |
}
|
addons/pro/gutenberg/library/blocks/{class-block-forms.php → class-forminator-gfblock-forms.php}
RENAMED
@@ -66,7 +66,7 @@ class Forminator_GFBlock_Forms extends Forminator_GFBlock_Abstract {
|
|
66 |
* @return string
|
67 |
*/
|
68 |
public function preview_block( $properties = array() ) {
|
69 |
-
if( isset( $properties['module_id'] ) ) {
|
70 |
$html = forminator_form( $properties['module_id'], true, false );
|
71 |
|
72 |
return $html;
|
@@ -96,9 +96,9 @@ class Forminator_GFBlock_Forms extends Forminator_GFBlock_Abstract {
|
|
96 |
'forminator-block-forms',
|
97 |
'frmnt_form_data',
|
98 |
array(
|
99 |
-
'forms'
|
100 |
'admin_url' => admin_url( 'admin.php' ),
|
101 |
-
'l10n'
|
102 |
)
|
103 |
);
|
104 |
|
@@ -129,9 +129,9 @@ class Forminator_GFBlock_Forms extends Forminator_GFBlock_Abstract {
|
|
129 |
false
|
130 |
);
|
131 |
|
132 |
-
wp_enqueue_script('jquery-ui-datepicker');
|
133 |
$style_src = forminator_plugin_url() . 'assets/css/intlTelInput.min.css';
|
134 |
-
$style_version =
|
135 |
|
136 |
$script_src = forminator_plugin_url() . 'assets/js/library/intlTelInput.min.js';
|
137 |
$script_version = FORMINATOR_VERSION;
|
@@ -176,10 +176,10 @@ class Forminator_GFBlock_Forms extends Forminator_GFBlock_Abstract {
|
|
176 |
|
177 |
public function localize() {
|
178 |
return array(
|
179 |
-
'choose_form'
|
180 |
-
'customize_form'
|
181 |
-
'rendering'
|
182 |
-
'form'
|
183 |
'form_description' => esc_html__( 'Embed and display your custom Forminator forms in this block', Forminator::DOMAIN ),
|
184 |
);
|
185 |
}
|
66 |
* @return string
|
67 |
*/
|
68 |
public function preview_block( $properties = array() ) {
|
69 |
+
if ( isset( $properties['module_id'] ) ) {
|
70 |
$html = forminator_form( $properties['module_id'], true, false );
|
71 |
|
72 |
return $html;
|
96 |
'forminator-block-forms',
|
97 |
'frmnt_form_data',
|
98 |
array(
|
99 |
+
'forms' => $this->get_forms(),
|
100 |
'admin_url' => admin_url( 'admin.php' ),
|
101 |
+
'l10n' => $this->localize(),
|
102 |
)
|
103 |
);
|
104 |
|
129 |
false
|
130 |
);
|
131 |
|
132 |
+
wp_enqueue_script( 'jquery-ui-datepicker' );
|
133 |
$style_src = forminator_plugin_url() . 'assets/css/intlTelInput.min.css';
|
134 |
+
$style_version = '4.0.3';
|
135 |
|
136 |
$script_src = forminator_plugin_url() . 'assets/js/library/intlTelInput.min.js';
|
137 |
$script_version = FORMINATOR_VERSION;
|
176 |
|
177 |
public function localize() {
|
178 |
return array(
|
179 |
+
'choose_form' => esc_html__( 'Choose Form', Forminator::DOMAIN ),
|
180 |
+
'customize_form' => esc_html__( 'Customize form', Forminator::DOMAIN ),
|
181 |
+
'rendering' => esc_html__( 'Rendering...', Forminator::DOMAIN ),
|
182 |
+
'form' => esc_html__( 'Form', Forminator::DOMAIN ),
|
183 |
'form_description' => esc_html__( 'Embed and display your custom Forminator forms in this block', Forminator::DOMAIN ),
|
184 |
);
|
185 |
}
|
addons/pro/gutenberg/library/blocks/{class-block-polls.php → class-forminator-gfblock-polls.php}
RENAMED
@@ -66,7 +66,7 @@ class Forminator_GFBlock_Polls extends Forminator_GFBlock_Abstract {
|
|
66 |
* @return string
|
67 |
*/
|
68 |
public function preview_block( $properties = array() ) {
|
69 |
-
if( isset( $properties['module_id'] ) ) {
|
70 |
return forminator_poll( $properties['module_id'], true, false );
|
71 |
}
|
72 |
|
@@ -94,9 +94,9 @@ class Forminator_GFBlock_Polls extends Forminator_GFBlock_Abstract {
|
|
94 |
'forminator-block-polls',
|
95 |
'frmnt_poll_data',
|
96 |
array(
|
97 |
-
'forms'
|
98 |
'admin_url' => admin_url( 'admin.php' ),
|
99 |
-
'l10n'
|
100 |
)
|
101 |
);
|
102 |
|
@@ -111,12 +111,12 @@ class Forminator_GFBlock_Polls extends Forminator_GFBlock_Abstract {
|
|
111 |
* @return array
|
112 |
*/
|
113 |
public function get_forms() {
|
114 |
-
$forms
|
115 |
$form_list = array(
|
116 |
array(
|
117 |
'value' => '',
|
118 |
-
'label' => esc_html__( 'Select a poll', Forminator::DOMAIN )
|
119 |
-
)
|
120 |
);
|
121 |
|
122 |
if ( is_array( $forms ) ) {
|
@@ -139,10 +139,10 @@ class Forminator_GFBlock_Polls extends Forminator_GFBlock_Abstract {
|
|
139 |
|
140 |
public function localize() {
|
141 |
return array(
|
142 |
-
'choose_poll'
|
143 |
-
'customize_poll'
|
144 |
-
'rendering'
|
145 |
-
'poll'
|
146 |
'poll_description' => esc_html__( 'Embed and display your Forminator polls in this block', Forminator::DOMAIN ),
|
147 |
);
|
148 |
}
|
66 |
* @return string
|
67 |
*/
|
68 |
public function preview_block( $properties = array() ) {
|
69 |
+
if ( isset( $properties['module_id'] ) ) {
|
70 |
return forminator_poll( $properties['module_id'], true, false );
|
71 |
}
|
72 |
|
94 |
'forminator-block-polls',
|
95 |
'frmnt_poll_data',
|
96 |
array(
|
97 |
+
'forms' => $this->get_forms(),
|
98 |
'admin_url' => admin_url( 'admin.php' ),
|
99 |
+
'l10n' => $this->localize(),
|
100 |
)
|
101 |
);
|
102 |
|
111 |
* @return array
|
112 |
*/
|
113 |
public function get_forms() {
|
114 |
+
$forms = Forminator_API::get_polls( null, 1, 100, Forminator_Custom_Form_Model::STATUS_PUBLISH );
|
115 |
$form_list = array(
|
116 |
array(
|
117 |
'value' => '',
|
118 |
+
'label' => esc_html__( 'Select a poll', Forminator::DOMAIN ),
|
119 |
+
),
|
120 |
);
|
121 |
|
122 |
if ( is_array( $forms ) ) {
|
139 |
|
140 |
public function localize() {
|
141 |
return array(
|
142 |
+
'choose_poll' => esc_html__( 'Choose Poll', Forminator::DOMAIN ),
|
143 |
+
'customize_poll' => esc_html__( 'Customize poll', Forminator::DOMAIN ),
|
144 |
+
'rendering' => esc_html__( 'Rendering...', Forminator::DOMAIN ),
|
145 |
+
'poll' => esc_html__( 'Poll', Forminator::DOMAIN ),
|
146 |
'poll_description' => esc_html__( 'Embed and display your Forminator polls in this block', Forminator::DOMAIN ),
|
147 |
);
|
148 |
}
|
addons/pro/gutenberg/library/blocks/{class-block-quizzes.php → class-forminator-gfblock-quizzes.php}
RENAMED
@@ -66,7 +66,7 @@ class Forminator_GFBlock_Quizzes extends Forminator_GFBlock_Abstract {
|
|
66 |
* @return string
|
67 |
*/
|
68 |
public function preview_block( $properties = array() ) {
|
69 |
-
if( isset( $properties['module_id'] ) ) {
|
70 |
return forminator_quiz( $properties['module_id'], true, false );
|
71 |
}
|
72 |
|
@@ -94,9 +94,9 @@ class Forminator_GFBlock_Quizzes extends Forminator_GFBlock_Abstract {
|
|
94 |
'forminator-block-quizzes',
|
95 |
'frmnt_quiz_data',
|
96 |
array(
|
97 |
-
'forms'
|
98 |
'admin_url' => admin_url( 'admin.php' ),
|
99 |
-
'l10n'
|
100 |
)
|
101 |
);
|
102 |
|
@@ -126,11 +126,11 @@ class Forminator_GFBlock_Quizzes extends Forminator_GFBlock_Abstract {
|
|
126 |
// Get quiz
|
127 |
$quiz = Forminator_API::get_quiz( $id );
|
128 |
|
129 |
-
if( $markup ) {
|
130 |
wp_send_json_success(
|
131 |
array(
|
132 |
'markup' => trim( $markup ),
|
133 |
-
'type'
|
134 |
)
|
135 |
);
|
136 |
} else {
|
@@ -150,8 +150,8 @@ class Forminator_GFBlock_Quizzes extends Forminator_GFBlock_Abstract {
|
|
150 |
$form_list = array(
|
151 |
array(
|
152 |
'value' => '',
|
153 |
-
'label' => esc_html__( 'Select a quiz', Forminator::DOMAIN )
|
154 |
-
)
|
155 |
);
|
156 |
|
157 |
if ( is_array( $forms ) ) {
|
@@ -174,10 +174,10 @@ class Forminator_GFBlock_Quizzes extends Forminator_GFBlock_Abstract {
|
|
174 |
|
175 |
public function localize() {
|
176 |
return array(
|
177 |
-
'choose_quiz'
|
178 |
-
'customize_quiz'
|
179 |
-
'rendering'
|
180 |
-
'quiz'
|
181 |
'quiz_description' => esc_html__( 'Embed and display your Forminator quiz in this block', Forminator::DOMAIN ),
|
182 |
);
|
183 |
}
|
66 |
* @return string
|
67 |
*/
|
68 |
public function preview_block( $properties = array() ) {
|
69 |
+
if ( isset( $properties['module_id'] ) ) {
|
70 |
return forminator_quiz( $properties['module_id'], true, false );
|
71 |
}
|
72 |
|
94 |
'forminator-block-quizzes',
|
95 |
'frmnt_quiz_data',
|
96 |
array(
|
97 |
+
'forms' => $this->get_forms(),
|
98 |
'admin_url' => admin_url( 'admin.php' ),
|
99 |
+
'l10n' => $this->localize(),
|
100 |
)
|
101 |
);
|
102 |
|
126 |
// Get quiz
|
127 |
$quiz = Forminator_API::get_quiz( $id );
|
128 |
|
129 |
+
if ( $markup ) {
|
130 |
wp_send_json_success(
|
131 |
array(
|
132 |
'markup' => trim( $markup ),
|
133 |
+
'type' => $quiz->quiz_type,
|
134 |
)
|
135 |
);
|
136 |
} else {
|
150 |
$form_list = array(
|
151 |
array(
|
152 |
'value' => '',
|
153 |
+
'label' => esc_html__( 'Select a quiz', Forminator::DOMAIN ),
|
154 |
+
),
|
155 |
);
|
156 |
|
157 |
if ( is_array( $forms ) ) {
|
174 |
|
175 |
public function localize() {
|
176 |
return array(
|
177 |
+
'choose_quiz' => esc_html__( 'Choose Quiz', Forminator::DOMAIN ),
|
178 |
+
'customize_quiz' => esc_html__( 'Customize quiz', Forminator::DOMAIN ),
|
179 |
+
'rendering' => esc_html__( 'Rendering...', Forminator::DOMAIN ),
|
180 |
+
'quiz' => esc_html__( 'Quiz', Forminator::DOMAIN ),
|
181 |
'quiz_description' => esc_html__( 'Embed and display your Forminator quiz in this block', Forminator::DOMAIN ),
|
182 |
);
|
183 |
}
|
addons/pro/gutenberg/library/{abstract-class-block.php → class-forminator-gfblock-abstract.php}
RENAMED
@@ -50,9 +50,12 @@ abstract class Forminator_GFBlock_Abstract {
|
|
50 |
* @since 1.0 Gutenberg Addon
|
51 |
*/
|
52 |
public function register_block() {
|
53 |
-
register_block_type(
|
54 |
-
'
|
55 |
-
|
|
|
|
|
|
|
56 |
}
|
57 |
|
58 |
/**
|
@@ -61,19 +64,23 @@ abstract class Forminator_GFBlock_Abstract {
|
|
61 |
* @since 1.0 Gutenberg Addon
|
62 |
*/
|
63 |
public function block_preview_api() {
|
64 |
-
register_rest_route(
|
|
|
|
|
65 |
array(
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
'
|
70 |
-
'
|
71 |
-
|
72 |
-
|
73 |
-
|
|
|
|
|
74 |
),
|
75 |
-
)
|
76 |
-
)
|
77 |
}
|
78 |
|
79 |
/**
|
@@ -92,7 +99,7 @@ abstract class Forminator_GFBlock_Abstract {
|
|
92 |
// Get block preview markup
|
93 |
$markup = $this->preview_block( $properties );
|
94 |
|
95 |
-
if( $markup ) {
|
96 |
wp_send_json_success( array( 'markup' => trim( $markup ) ) );
|
97 |
} else {
|
98 |
wp_send_json_error();
|
50 |
* @since 1.0 Gutenberg Addon
|
51 |
*/
|
52 |
public function register_block() {
|
53 |
+
register_block_type(
|
54 |
+
'forminator/' . $this->get_slug(),
|
55 |
+
array(
|
56 |
+
'render_callback' => array( $this, 'render_block' ),
|
57 |
+
)
|
58 |
+
);
|
59 |
}
|
60 |
|
61 |
/**
|
64 |
* @since 1.0 Gutenberg Addon
|
65 |
*/
|
66 |
public function block_preview_api() {
|
67 |
+
register_rest_route(
|
68 |
+
'forminator/v1',
|
69 |
+
'/preview/' . $this->get_slug(),
|
70 |
array(
|
71 |
+
array(
|
72 |
+
'methods' => WP_REST_Server::READABLE,
|
73 |
+
'callback' => array( $this, 'preview_block_markup' ),
|
74 |
+
'args' => array(
|
75 |
+
'module_id' => array(
|
76 |
+
'description' => __( 'Module ID' ),
|
77 |
+
'type' => 'integer',
|
78 |
+
'required' => true,
|
79 |
+
),
|
80 |
+
),
|
81 |
),
|
82 |
+
)
|
83 |
+
);
|
84 |
}
|
85 |
|
86 |
/**
|
99 |
// Get block preview markup
|
100 |
$markup = $this->preview_block( $properties );
|
101 |
|
102 |
+
if ( $markup ) {
|
103 |
wp_send_json_success( array( 'markup' => trim( $markup ) ) );
|
104 |
} else {
|
105 |
wp_send_json_error();
|
addons/pro/gutenberg/webpack.common.js
CHANGED
@@ -15,7 +15,7 @@ module.exports = {
|
|
15 |
test: /.js$/,
|
16 |
loader: 'babel-loader',
|
17 |
exclude: /node_modules/,
|
18 |
-
|
19 |
],
|
20 |
},
|
21 |
};
|
15 |
test: /.js$/,
|
16 |
loader: 'babel-loader',
|
17 |
exclude: /node_modules/,
|
18 |
+
},
|
19 |
],
|
20 |
},
|
21 |
};
|
addons/pro/gutenberg/webpack.dev.js
CHANGED
@@ -1,6 +1,9 @@
|
|
1 |
-
const merge
|
2 |
const common = require( './webpack.common.js' );
|
3 |
|
4 |
-
module.exports = merge(
|
5 |
-
|
6 |
-
|
|
|
|
|
|
1 |
+
const merge = require( 'webpack-merge' );
|
2 |
const common = require( './webpack.common.js' );
|
3 |
|
4 |
+
module.exports = merge(
|
5 |
+
common,
|
6 |
+
{
|
7 |
+
devtool: 'inline-source-map',
|
8 |
+
}
|
9 |
+
);
|
addons/pro/gutenberg/webpack.prod.js
CHANGED
@@ -1,12 +1,17 @@
|
|
1 |
-
const merge
|
2 |
-
const common
|
3 |
const webpack = require( 'webpack' );
|
4 |
|
5 |
-
module.exports = merge(
|
6 |
-
|
7 |
-
|
8 |
-
|
9 |
-
|
|
|
|
|
|
|
|
|
10 |
new webpack.optimize.UglifyJsPlugin(),
|
11 |
],
|
12 |
-
}
|
|
1 |
+
const merge = require( 'webpack-merge' );
|
2 |
+
const common = require( './webpack.common.js' );
|
3 |
const webpack = require( 'webpack' );
|
4 |
|
5 |
+
module.exports = merge(
|
6 |
+
common,
|
7 |
+
{
|
8 |
+
plugins: [
|
9 |
+
new webpack.DefinePlugin(
|
10 |
+
{
|
11 |
+
'process.env.NODE_ENV': JSON.stringify( 'production' ),
|
12 |
+
}
|
13 |
+
),
|
14 |
new webpack.optimize.UglifyJsPlugin(),
|
15 |
],
|
16 |
+
}
|
17 |
+
);
|
addons/pro/hubspot/{forminator-addon-hubspot-exception.php → class-forminator-addon-hubspot-exception.php}
RENAMED
File without changes
|
addons/pro/hubspot/{forminator-addon-hubspot-form-hooks.php → class-forminator-addon-hubspot-form-hooks.php}
RENAMED
@@ -97,7 +97,6 @@ class Forminator_Addon_Hubspot_Form_Hooks extends Forminator_Addon_Form_Hooks_Ab
|
|
97 |
'value' => $this->get_status_on_contact_sync( $key, $submitted_data, $addon_setting_value, $form_entry_fields ),
|
98 |
);
|
99 |
}
|
100 |
-
|
101 |
}
|
102 |
|
103 |
$entry_fields = $data;
|
@@ -154,6 +153,7 @@ class Forminator_Addon_Hubspot_Form_Hooks extends Forminator_Addon_Form_Hooks_Ab
|
|
154 |
|
155 |
$email_element_id = $connection_settings['fields_map']['email'];
|
156 |
if ( ! isset( $submitted_data[ $email_element_id ] ) || empty( $submitted_data[ $email_element_id ] ) ) {
|
|
|
157 |
throw new Forminator_Addon_Hubspot_Exception( __( 'Email on element %1$s not found or not filled on submitted data.', Forminator::DOMAIN ) );
|
158 |
}
|
159 |
$email = $submitted_data[ $email_element_id ];
|
@@ -192,7 +192,6 @@ class Forminator_Addon_Hubspot_Form_Hooks extends Forminator_Addon_Form_Hooks_Ab
|
|
192 |
$args[ $common_field ] = $element_value;
|
193 |
unset( $element_value ); // unset for next loop
|
194 |
}
|
195 |
-
|
196 |
}
|
197 |
// processed
|
198 |
unset( $fields_map[ $common_field ] );
|
@@ -241,8 +240,8 @@ class Forminator_Addon_Hubspot_Form_Hooks extends Forminator_Addon_Form_Hooks_Ab
|
|
241 |
$ticket['ticket_name'] = $ticket_name;
|
242 |
$ticket_description = forminator_addon_replace_custom_vars( $connection_settings['ticket_description'], $submitted_data, $this->custom_form, $form_entry_fields, false );
|
243 |
$ticket['ticket_description'] = $ticket_description;
|
244 |
-
$supported_file
|
245 |
-
$ticket['supported_file']
|
246 |
|
247 |
$object_id = $api->create_ticket( $ticket );
|
248 |
|
@@ -320,7 +319,6 @@ class Forminator_Addon_Hubspot_Form_Hooks extends Forminator_Addon_Form_Hooks_Ab
|
|
320 |
$form_settings_instance
|
321 |
);
|
322 |
|
323 |
-
|
324 |
$addon_meta_datas = $addon_meta_data;
|
325 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
326 |
return array();
|
@@ -376,7 +374,6 @@ class Forminator_Addon_Hubspot_Form_Hooks extends Forminator_Addon_Form_Hooks_Ab
|
|
376 |
'value' => '',
|
377 |
);
|
378 |
|
379 |
-
|
380 |
$sub_entries = array();
|
381 |
if ( isset( $status['connection_name'] ) ) {
|
382 |
$sub_entries[] = array(
|
@@ -424,7 +421,6 @@ class Forminator_Addon_Hubspot_Form_Hooks extends Forminator_Addon_Form_Hooks_Ab
|
|
424 |
}
|
425 |
}
|
426 |
|
427 |
-
|
428 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
429 |
|
430 |
// return single array
|
@@ -655,7 +651,6 @@ class Forminator_Addon_Hubspot_Form_Hooks extends Forminator_Addon_Form_Hooks_Ab
|
|
655 |
}
|
656 |
}
|
657 |
}
|
658 |
-
|
659 |
}
|
660 |
}
|
661 |
|
97 |
'value' => $this->get_status_on_contact_sync( $key, $submitted_data, $addon_setting_value, $form_entry_fields ),
|
98 |
);
|
99 |
}
|
|
|
100 |
}
|
101 |
|
102 |
$entry_fields = $data;
|
153 |
|
154 |
$email_element_id = $connection_settings['fields_map']['email'];
|
155 |
if ( ! isset( $submitted_data[ $email_element_id ] ) || empty( $submitted_data[ $email_element_id ] ) ) {
|
156 |
+
/* translators: ... */
|
157 |
throw new Forminator_Addon_Hubspot_Exception( __( 'Email on element %1$s not found or not filled on submitted data.', Forminator::DOMAIN ) );
|
158 |
}
|
159 |
$email = $submitted_data[ $email_element_id ];
|
192 |
$args[ $common_field ] = $element_value;
|
193 |
unset( $element_value ); // unset for next loop
|
194 |
}
|
|
|
195 |
}
|
196 |
// processed
|
197 |
unset( $fields_map[ $common_field ] );
|
240 |
$ticket['ticket_name'] = $ticket_name;
|
241 |
$ticket_description = forminator_addon_replace_custom_vars( $connection_settings['ticket_description'], $submitted_data, $this->custom_form, $form_entry_fields, false );
|
242 |
$ticket['ticket_description'] = $ticket_description;
|
243 |
+
$supported_file = isset( $submitted_data[ $connection_settings['supported_file'] ] ) ? $submitted_data[ $connection_settings['supported_file'] ] : array();
|
244 |
+
$ticket['supported_file'] = ! empty( $supported_file['file_url'] ) ? $supported_file['file_url'] : '';
|
245 |
|
246 |
$object_id = $api->create_ticket( $ticket );
|
247 |
|
319 |
$form_settings_instance
|
320 |
);
|
321 |
|
|
|
322 |
$addon_meta_datas = $addon_meta_data;
|
323 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
324 |
return array();
|
374 |
'value' => '',
|
375 |
);
|
376 |
|
|
|
377 |
$sub_entries = array();
|
378 |
if ( isset( $status['connection_name'] ) ) {
|
379 |
$sub_entries[] = array(
|
421 |
}
|
422 |
}
|
423 |
|
|
|
424 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
425 |
|
426 |
// return single array
|
651 |
}
|
652 |
}
|
653 |
}
|
|
|
654 |
}
|
655 |
}
|
656 |
|
addons/pro/hubspot/{forminator-addon-hubspot-form-settings-exception.php → class-forminator-addon-hubspot-form-settings-exception.php}
RENAMED
File without changes
|
addons/pro/hubspot/{forminator-addon-hubspot-form-settings.php → class-forminator-addon-hubspot-form-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-hubspot-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Hubspot_Form_Settings
|
@@ -141,7 +141,7 @@ class Forminator_Addon_Hubspot_Form_Settings extends Forminator_Addon_Form_Setti
|
|
141 |
if ( isset( $fields_map[ $key ] ) && ! empty( $fields_map[ $key ] ) ) {
|
142 |
$element_id = $fields_map[ $key ];
|
143 |
if ( ! in_array( $element_id, $forminator_field_element_ids, true ) ) {
|
144 |
-
$input_exceptions->add_input_exception(
|
145 |
sprintf( __( 'Please assign valid field for %s', Forminator::DOMAIN ), $title ),
|
146 |
$key . '_error'
|
147 |
);
|
@@ -180,15 +180,16 @@ class Forminator_Addon_Hubspot_Form_Settings extends Forminator_Addon_Form_Setti
|
|
180 |
|
181 |
$buttons = array();
|
182 |
if ( $this->map_fields_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
183 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
|
|
184 |
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
185 |
esc_html__( 'Deactivate this HubSpot Integration from this Form.', Forminator::DOMAIN )
|
186 |
);
|
187 |
}
|
188 |
|
189 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
190 |
-
|
191 |
-
|
192 |
|
193 |
return array(
|
194 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -413,7 +414,8 @@ class Forminator_Addon_Hubspot_Form_Settings extends Forminator_Addon_Form_Setti
|
|
413 |
|
414 |
$buttons = array();
|
415 |
if ( $this->create_ticket_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
416 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
|
|
417 |
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
418 |
esc_html__( 'Deactivate this HubSpot Integration from this Form.', Forminator::DOMAIN )
|
419 |
);
|
@@ -489,7 +491,6 @@ class Forminator_Addon_Hubspot_Form_Settings extends Forminator_Addon_Form_Setti
|
|
489 |
return false;
|
490 |
}
|
491 |
|
492 |
-
|
493 |
return true;
|
494 |
}
|
495 |
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-hubspot-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Hubspot_Form_Settings
|
141 |
if ( isset( $fields_map[ $key ] ) && ! empty( $fields_map[ $key ] ) ) {
|
142 |
$element_id = $fields_map[ $key ];
|
143 |
if ( ! in_array( $element_id, $forminator_field_element_ids, true ) ) {
|
144 |
+
$input_exceptions->add_input_exception(/* translators: ... */
|
145 |
sprintf( __( 'Please assign valid field for %s', Forminator::DOMAIN ), $title ),
|
146 |
$key . '_error'
|
147 |
);
|
180 |
|
181 |
$buttons = array();
|
182 |
if ( $this->map_fields_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
183 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
184 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
185 |
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
186 |
esc_html__( 'Deactivate this HubSpot Integration from this Form.', Forminator::DOMAIN )
|
187 |
);
|
188 |
}
|
189 |
|
190 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
191 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Continue', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
192 |
+
'</div>';
|
193 |
|
194 |
return array(
|
195 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
414 |
|
415 |
$buttons = array();
|
416 |
if ( $this->create_ticket_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
417 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
418 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
419 |
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
420 |
esc_html__( 'Deactivate this HubSpot Integration from this Form.', Forminator::DOMAIN )
|
421 |
);
|
491 |
return false;
|
492 |
}
|
493 |
|
|
|
494 |
return true;
|
495 |
}
|
496 |
|
addons/pro/hubspot/{forminator-addon-hubspot.php → class-forminator-addon-hubspot.php}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-hubspot-exception.php';
|
4 |
-
require_once dirname( __FILE__ ) . '/lib/class-
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Hubspot
|
@@ -16,24 +16,24 @@ final class Forminator_Addon_Hubspot extends Forminator_Addon_Abstract {
|
|
16 |
*/
|
17 |
private static $_instance = null;
|
18 |
|
19 |
-
protected $_slug
|
20 |
-
protected $_version
|
21 |
protected $_min_forminator_version = '1.1';
|
22 |
-
protected $_short_title
|
23 |
-
protected $_title
|
24 |
-
protected $_url
|
25 |
-
protected $_full_path
|
26 |
|
27 |
protected $_form_settings = 'Forminator_Addon_Hubspot_Form_Settings';
|
28 |
-
protected $_form_hooks
|
29 |
|
30 |
private $_token = '';
|
31 |
|
32 |
private $_auth_error_message = '';
|
33 |
|
34 |
-
const TARGET_TYPE_PUBLIC_CHANNEL
|
35 |
const TARGET_TYPE_PRIVATE_CHANNEL = 'private_channel';
|
36 |
-
const TARGET_TYPE_DIRECT_MESSAGE
|
37 |
|
38 |
/**
|
39 |
* @var null|Forminator_Addon_Hubspot_Wp_Api
|
@@ -63,10 +63,15 @@ final class Forminator_Addon_Hubspot extends Forminator_Addon_Abstract {
|
|
63 |
$this->_image = forminator_addon_hubspot_assets_url() . 'img/hubspot.png';
|
64 |
$this->_image_x2 = forminator_addon_hubspot_assets_url() . 'img/hubspot@2x.png';
|
65 |
|
66 |
-
add_filter(
|
67 |
-
|
68 |
-
|
69 |
-
|
|
|
|
|
|
|
|
|
|
|
70 |
add_action( 'wp_ajax_forminator_hubspot_support_request', array( $this, 'hubspot_support_request' ) );
|
71 |
}
|
72 |
|
@@ -106,7 +111,6 @@ final class Forminator_Addon_Hubspot extends Forminator_Addon_Abstract {
|
|
106 |
if ( isset( $setting_values['token'] ) && ! empty( $setting_values['token'] ) ) {
|
107 |
$is_connected = true;
|
108 |
}
|
109 |
-
|
110 |
} catch ( Forminator_Addon_Hubspot_Exception $e ) {
|
111 |
$is_connected = false;
|
112 |
}
|
@@ -249,13 +253,21 @@ final class Forminator_Addon_Hubspot extends Forminator_Addon_Abstract {
|
|
249 |
$buttons['disconnect'] = array(
|
250 |
'markup' => self::get_button_markup( esc_html__( 'DISCONNECT', Forminator::DOMAIN ), 'sui-button-ghost forminator-addon-disconnect' ),
|
251 |
);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
252 |
}
|
253 |
-
$setting_values = $this->get_settings_values();
|
254 |
-
$template_params = array(
|
255 |
-
'auth_url' => $this->get_auth_url(),
|
256 |
-
'token' => $this->_token,
|
257 |
-
'user' => isset( $setting_values['user'] ) ? $setting_values['user'] : '',
|
258 |
-
);
|
259 |
|
260 |
return array(
|
261 |
'html' => self::get_template( $template, $template_params ),
|
@@ -497,11 +509,10 @@ final class Forminator_Addon_Hubspot extends Forminator_Addon_Abstract {
|
|
497 |
// catch all exception
|
498 |
$template_params['error_message'] = $e->getMessage();
|
499 |
}
|
500 |
-
|
501 |
} else {
|
502 |
$template_params['error_message'] = __( 'Failed to get authorization code.', Forminator::DOMAIN );
|
503 |
// todo : translate $query_args[error]
|
504 |
-
$settings['auth_error_message'] = $template_params['
|
505 |
$this->save_settings_values( $settings );
|
506 |
$template_params['is_close'] = true;
|
507 |
}
|
@@ -584,7 +595,7 @@ final class Forminator_Addon_Hubspot extends Forminator_Addon_Abstract {
|
|
584 |
*/
|
585 |
public function hubspot_support_request() {
|
586 |
$status = array();
|
587 |
-
$pipeline = sanitize_text_field( $_POST['value'] )
|
588 |
try {
|
589 |
$api = $this->get_api();
|
590 |
$pipeline_request = $api->get_pipeline();
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-hubspot-exception.php';
|
4 |
+
require_once dirname( __FILE__ ) . '/lib/class-forminator-addon-hubspot-wp-api.php';
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Hubspot
|
16 |
*/
|
17 |
private static $_instance = null;
|
18 |
|
19 |
+
protected $_slug = 'hubspot';
|
20 |
+
protected $_version = FORMINATOR_ADDON_HUBSPOT_VERSION;
|
21 |
protected $_min_forminator_version = '1.1';
|
22 |
+
protected $_short_title = 'HubSpot';
|
23 |
+
protected $_title = 'HubSpot';
|
24 |
+
protected $_url = 'https://premium.wpmudev.org';
|
25 |
+
protected $_full_path = __FILE__;
|
26 |
|
27 |
protected $_form_settings = 'Forminator_Addon_Hubspot_Form_Settings';
|
28 |
+
protected $_form_hooks = 'Forminator_Addon_Hubspot_Form_Hooks';
|
29 |
|
30 |
private $_token = '';
|
31 |
|
32 |
private $_auth_error_message = '';
|
33 |
|
34 |
+
const TARGET_TYPE_PUBLIC_CHANNEL = 'public_channel';
|
35 |
const TARGET_TYPE_PRIVATE_CHANNEL = 'private_channel';
|
36 |
+
const TARGET_TYPE_DIRECT_MESSAGE = 'direct_message';
|
37 |
|
38 |
/**
|
39 |
* @var null|Forminator_Addon_Hubspot_Wp_Api
|
63 |
$this->_image = forminator_addon_hubspot_assets_url() . 'img/hubspot.png';
|
64 |
$this->_image_x2 = forminator_addon_hubspot_assets_url() . 'img/hubspot@2x.png';
|
65 |
|
66 |
+
add_filter(
|
67 |
+
'forminator_addon_hubspot_api_request_headers',
|
68 |
+
array(
|
69 |
+
$this,
|
70 |
+
'default_filter_api_headers',
|
71 |
+
),
|
72 |
+
1,
|
73 |
+
4
|
74 |
+
);
|
75 |
add_action( 'wp_ajax_forminator_hubspot_support_request', array( $this, 'hubspot_support_request' ) );
|
76 |
}
|
77 |
|
111 |
if ( isset( $setting_values['token'] ) && ! empty( $setting_values['token'] ) ) {
|
112 |
$is_connected = true;
|
113 |
}
|
|
|
114 |
} catch ( Forminator_Addon_Hubspot_Exception $e ) {
|
115 |
$is_connected = false;
|
116 |
}
|
253 |
$buttons['disconnect'] = array(
|
254 |
'markup' => self::get_button_markup( esc_html__( 'DISCONNECT', Forminator::DOMAIN ), 'sui-button-ghost forminator-addon-disconnect' ),
|
255 |
);
|
256 |
+
|
257 |
+
$setting_values = $this->get_settings_values();
|
258 |
+
$template_params = array(
|
259 |
+
'auth_url' => $this->get_auth_url(),
|
260 |
+
'token' => $this->_token,
|
261 |
+
'user' => isset( $setting_values['user'] ) ? $setting_values['user'] : '',
|
262 |
+
);
|
263 |
+
} else {
|
264 |
+
// Force save empty settings
|
265 |
+
$template_params = array(
|
266 |
+
'auth_url' => $this->get_auth_url(),
|
267 |
+
'token' => '',
|
268 |
+
'user' => '',
|
269 |
+
);
|
270 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
271 |
|
272 |
return array(
|
273 |
'html' => self::get_template( $template, $template_params ),
|
509 |
// catch all exception
|
510 |
$template_params['error_message'] = $e->getMessage();
|
511 |
}
|
|
|
512 |
} else {
|
513 |
$template_params['error_message'] = __( 'Failed to get authorization code.', Forminator::DOMAIN );
|
514 |
// todo : translate $query_args[error]
|
515 |
+
$settings['auth_error_message'] = $template_params['error_message'];
|
516 |
$this->save_settings_values( $settings );
|
517 |
$template_params['is_close'] = true;
|
518 |
}
|
595 |
*/
|
596 |
public function hubspot_support_request() {
|
597 |
$status = array();
|
598 |
+
$pipeline = sanitize_text_field( $_POST['value'] );// phpcs:ignore -- data without nonce verification
|
599 |
try {
|
600 |
$api = $this->get_api();
|
601 |
$pipeline_request = $api->get_pipeline();
|
addons/pro/hubspot/hubspot.php
CHANGED
@@ -23,8 +23,8 @@ function forminator_addon_hubspot_assets_url() {
|
|
23 |
return trailingslashit( forminator_addon_hubspot_url() . 'assets' );
|
24 |
}
|
25 |
|
26 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-hubspot.php';
|
27 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-hubspot-form-settings.php';
|
28 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-hubspot-form-hooks.php';
|
29 |
//Direct Load
|
30 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_HubSpot' );
|
23 |
return trailingslashit( forminator_addon_hubspot_url() . 'assets' );
|
24 |
}
|
25 |
|
26 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-hubspot.php';
|
27 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-hubspot-form-settings.php';
|
28 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-hubspot-form-hooks.php';
|
29 |
//Direct Load
|
30 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_HubSpot' );
|
addons/pro/hubspot/lib/{class-wp-hubspot-api-exception.php → class-forminator-addon-hubspot-wp-api-exception.php}
RENAMED
File without changes
|
addons/pro/hubspot/lib/{class-wp-hubspot-api-not-found-exception.php → class-forminator-addon-hubspot-wp-api-not-found-exception.php}
RENAMED
File without changes
|
addons/pro/hubspot/lib/{class-wp-hubspot-api.php → class-forminator-addon-hubspot-wp-api.php}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/class-
|
4 |
-
require_once dirname( __FILE__ ) . '/class-
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Hubspot_Wp_Api
|
@@ -9,9 +9,9 @@ require_once dirname( __FILE__ ) . '/class-wp-hubspot-api-not-found-exception.ph
|
|
9 |
class Forminator_Addon_Hubspot_Wp_Api {
|
10 |
|
11 |
const AUTHORIZE_URL = 'https://app.hubspot.com/oauth/authorize';
|
12 |
-
const CLIENT_ID
|
13 |
const CLIENT_SECRET = '502c3a75-38fe-4a1f-9fc4-ff2464b639bf';
|
14 |
-
const HAPIKEY
|
15 |
|
16 |
public static $oauth_scopes = 'contacts%20tickets';
|
17 |
|
@@ -135,7 +135,7 @@ class Forminator_Addon_Hubspot_Wp_Api {
|
|
135 |
* @throws Forminator_Addon_Hubspot_Wp_Api_Exception
|
136 |
* @throws Forminator_Addon_Hubspot_Wp_Api_Not_Found_Exception
|
137 |
*/
|
138 |
-
private function
|
139 |
// Adding extra user agent for wp remote request
|
140 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
141 |
|
@@ -156,7 +156,7 @@ class Forminator_Addon_Hubspot_Wp_Api {
|
|
156 |
$this->_last_url_request = $url;
|
157 |
|
158 |
$headers = array(
|
159 |
-
'Authorization' => 'Bearer ' . ( ! empty( $access_token ) ? $access_token : self::HAPIKEY )
|
160 |
);
|
161 |
|
162 |
if ( 'GET' !== $verb && ! $json ) {
|
@@ -194,7 +194,7 @@ class Forminator_Addon_Hubspot_Wp_Api {
|
|
194 |
*/
|
195 |
$args = apply_filters( 'forminator_addon_hubspot_api_request_data', $request_data, $verb, $path );
|
196 |
if ( $json ) {
|
197 |
-
$args =
|
198 |
}
|
199 |
if ( 'GET' === $verb ) {
|
200 |
$url .= ( '?' . http_build_query( $args ) );
|
@@ -223,9 +223,10 @@ class Forminator_Addon_Hubspot_Wp_Api {
|
|
223 |
}
|
224 |
|
225 |
if ( 404 === $status_code ) {
|
|
|
226 |
throw new Forminator_Addon_Hubspot_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
227 |
}
|
228 |
-
|
229 |
throw new Forminator_Addon_Hubspot_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
230 |
}
|
231 |
}
|
@@ -240,6 +241,7 @@ class Forminator_Addon_Hubspot_Wp_Api {
|
|
240 |
if ( isset( $res->error ) ) {
|
241 |
$msg = $res->error;
|
242 |
}
|
|
|
243 |
throw new Forminator_Addon_Hubspot_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
244 |
}
|
245 |
}
|
@@ -413,7 +415,7 @@ class Forminator_Addon_Hubspot_Wp_Api {
|
|
413 |
);
|
414 |
$args = array_merge( $default_args, $args );
|
415 |
|
416 |
-
$response = $this->
|
417 |
'POST',
|
418 |
'oauth/v1/token',
|
419 |
$args,
|
@@ -450,7 +452,7 @@ class Forminator_Addon_Hubspot_Wp_Api {
|
|
450 |
$access_token = $this->refresh_access_token();
|
451 |
}
|
452 |
|
453 |
-
return $this->
|
454 |
}
|
455 |
|
456 |
/**
|
@@ -586,7 +588,7 @@ class Forminator_Addon_Hubspot_Wp_Api {
|
|
586 |
'content' => $ticket['ticket_description'],
|
587 |
'hs_pipeline' => $ticket['pipeline_id'],
|
588 |
'hs_pipeline_stage' => $ticket['status_id'],
|
589 |
-
'hs_file_upload'
|
590 |
);
|
591 |
$i = 0;
|
592 |
foreach ( $request as $key => $value ) {
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-hubspot-wp-api-exception.php';
|
4 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-hubspot-wp-api-not-found-exception.php';
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Hubspot_Wp_Api
|
9 |
class Forminator_Addon_Hubspot_Wp_Api {
|
10 |
|
11 |
const AUTHORIZE_URL = 'https://app.hubspot.com/oauth/authorize';
|
12 |
+
const CLIENT_ID = 'd4c00215-5579-414c-a831-95be7218239b';
|
13 |
const CLIENT_SECRET = '502c3a75-38fe-4a1f-9fc4-ff2464b639bf';
|
14 |
+
const HAPIKEY = '7cf97e44-4037-4708-a032-0955318e0e76';
|
15 |
|
16 |
public static $oauth_scopes = 'contacts%20tickets';
|
17 |
|
135 |
* @throws Forminator_Addon_Hubspot_Wp_Api_Exception
|
136 |
* @throws Forminator_Addon_Hubspot_Wp_Api_Not_Found_Exception
|
137 |
*/
|
138 |
+
private function request( $verb = 'GET', $path, $args = array(), $access_token, $json = false ) {
|
139 |
// Adding extra user agent for wp remote request
|
140 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
141 |
|
156 |
$this->_last_url_request = $url;
|
157 |
|
158 |
$headers = array(
|
159 |
+
'Authorization' => 'Bearer ' . ( ! empty( $access_token ) ? $access_token : self::HAPIKEY ),
|
160 |
);
|
161 |
|
162 |
if ( 'GET' !== $verb && ! $json ) {
|
194 |
*/
|
195 |
$args = apply_filters( 'forminator_addon_hubspot_api_request_data', $request_data, $verb, $path );
|
196 |
if ( $json ) {
|
197 |
+
$args = wp_json_encode( $args );
|
198 |
}
|
199 |
if ( 'GET' === $verb ) {
|
200 |
$url .= ( '?' . http_build_query( $args ) );
|
223 |
}
|
224 |
|
225 |
if ( 404 === $status_code ) {
|
226 |
+
/* translators: ... */
|
227 |
throw new Forminator_Addon_Hubspot_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
228 |
}
|
229 |
+
/* translators: ... */
|
230 |
throw new Forminator_Addon_Hubspot_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
231 |
}
|
232 |
}
|
241 |
if ( isset( $res->error ) ) {
|
242 |
$msg = $res->error;
|
243 |
}
|
244 |
+
/* translators: ... */
|
245 |
throw new Forminator_Addon_Hubspot_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
246 |
}
|
247 |
}
|
415 |
);
|
416 |
$args = array_merge( $default_args, $args );
|
417 |
|
418 |
+
$response = $this->request(
|
419 |
'POST',
|
420 |
'oauth/v1/token',
|
421 |
$args,
|
452 |
$access_token = $this->refresh_access_token();
|
453 |
}
|
454 |
|
455 |
+
return $this->request( $verb, $end_point, $query_args, $access_token, $json );
|
456 |
}
|
457 |
|
458 |
/**
|
588 |
'content' => $ticket['ticket_description'],
|
589 |
'hs_pipeline' => $ticket['pipeline_id'],
|
590 |
'hs_pipeline_stage' => $ticket['status_id'],
|
591 |
+
'hs_file_upload' => $ticket['supported_file'],
|
592 |
);
|
593 |
$i = 0;
|
594 |
foreach ( $request as $key => $value ) {
|
addons/pro/hubspot/views/form-settings/create-contact.php
CHANGED
@@ -95,62 +95,65 @@ if ( empty( $vars['lists'] ) ) {
|
|
95 |
|
96 |
<tbody>
|
97 |
|
98 |
-
|
99 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
100 |
|
101 |
-
|
102 |
|
103 |
-
|
104 |
|
105 |
-
|
106 |
-
|
107 |
-
<?php if ( 'email' === $key ) : ?>
|
108 |
-
<span class="integrations-required-field">*</span>
|
109 |
-
<?php endif; ?>
|
110 |
-
</td>
|
111 |
-
|
112 |
-
<td>
|
113 |
-
<?php
|
114 |
-
$forminator_fields = $vars['form_fields'];
|
115 |
-
if ( 'email' === $key ) {
|
116 |
-
$forminator_fields = $vars['email_fields'];
|
117 |
-
}
|
118 |
-
$current_error = '';
|
119 |
-
$current_selected = '';
|
120 |
-
if ( isset( $vars[ $key . '_error' ] ) && ! empty( $vars[ $key . '_error' ] ) ) {
|
121 |
-
$current_error = $vars[ $key . '_error' ];
|
122 |
-
}
|
123 |
-
if ( isset( $vars['fields_map'][ $key ] ) && ! empty( $vars['fields_map'][ $key ] ) ) {
|
124 |
-
$current_selected = $vars['fields_map'][ $key ];
|
125 |
-
}
|
126 |
-
?>
|
127 |
-
<div class="sui-form-field <?php echo esc_attr( ! empty( $current_error ) ? 'sui-form-field-error' : '' ); ?>"<?php echo ( ! empty( $current_error ) ) ? ' style="padding-top: 5px;"' : ''; ?>>
|
128 |
-
<select class="sui-select" name="fields_map[<?php echo esc_attr( $key ); ?>]">
|
129 |
-
<option value=""><?php esc_html_e( 'None', Forminator::DOMAIN ); ?></option>
|
130 |
-
<?php
|
131 |
-
if ( ! empty( $forminator_fields ) ) :
|
132 |
-
foreach ( $forminator_fields as $forminator_field ) : ?>
|
133 |
-
<option value="<?php echo esc_attr( $forminator_field['element_id'] ); ?>"
|
134 |
-
<?php selected( $current_selected, $forminator_field['element_id'] ); ?>>
|
135 |
-
<?php echo esc_html( $forminator_field['field_label'] . ' | ' . $forminator_field['element_id'] ); ?>
|
136 |
-
</option>
|
137 |
-
<?php endforeach;
|
138 |
-
endif;
|
139 |
-
?>
|
140 |
-
</select>
|
141 |
-
<?php if ( ! empty( $current_error ) ) : ?>
|
142 |
-
<span class="sui-error-message"
|
143 |
-
style="margin-top: 5px; margin-bottom: 5px;"><?php echo esc_html( $current_error ); ?></span>
|
144 |
-
<?php endif; ?>
|
145 |
-
</div>
|
146 |
-
</td>
|
147 |
-
|
148 |
-
</tr>
|
149 |
-
|
150 |
-
<?php endforeach;
|
151 |
-
|
152 |
-
endif;
|
153 |
-
?>
|
154 |
|
155 |
</tbody>
|
156 |
|
95 |
|
96 |
<tbody>
|
97 |
|
98 |
+
<?php
|
99 |
+
if ( ! empty( $vars['fields'] ) ) :
|
100 |
+
|
101 |
+
foreach ( $vars['fields'] as $key => $field_title ) :
|
102 |
+
?>
|
103 |
+
|
104 |
+
<tr>
|
105 |
+
|
106 |
+
<td>
|
107 |
+
<?php echo esc_html( $field_title ); ?>
|
108 |
+
<?php if ( 'email' === $key ) : ?>
|
109 |
+
<span class="integrations-required-field">*</span>
|
110 |
+
<?php endif; ?>
|
111 |
+
</td>
|
112 |
+
|
113 |
+
<td>
|
114 |
+
<?php
|
115 |
+
$forminator_fields = $vars['form_fields'];
|
116 |
+
if ( 'email' === $key ) {
|
117 |
+
$forminator_fields = $vars['email_fields'];
|
118 |
+
}
|
119 |
+
$current_error = '';
|
120 |
+
$current_selected = '';
|
121 |
+
if ( isset( $vars[ $key . '_error' ] ) && ! empty( $vars[ $key . '_error' ] ) ) {
|
122 |
+
$current_error = $vars[ $key . '_error' ];
|
123 |
+
}
|
124 |
+
if ( isset( $vars['fields_map'][ $key ] ) && ! empty( $vars['fields_map'][ $key ] ) ) {
|
125 |
+
$current_selected = $vars['fields_map'][ $key ];
|
126 |
+
}
|
127 |
+
?>
|
128 |
+
<div class="sui-form-field <?php echo esc_attr( ! empty( $current_error ) ? 'sui-form-field-error' : '' ); ?>"<?php echo ( ! empty( $current_error ) ) ? ' style="padding-top: 5px;"' : ''; ?>>
|
129 |
+
<select class="sui-select" name="fields_map[<?php echo esc_attr( $key ); ?>]">
|
130 |
+
<option value=""><?php esc_html_e( 'None', Forminator::DOMAIN ); ?></option>
|
131 |
+
<?php
|
132 |
+
if ( ! empty( $forminator_fields ) ) :
|
133 |
+
foreach ( $forminator_fields as $forminator_field ) :
|
134 |
+
?>
|
135 |
+
<option value="<?php echo esc_attr( $forminator_field['element_id'] ); ?>"
|
136 |
+
<?php selected( $current_selected, $forminator_field['element_id'] ); ?>>
|
137 |
+
<?php echo esc_html( $forminator_field['field_label'] . ' | ' . $forminator_field['element_id'] ); ?>
|
138 |
+
</option>
|
139 |
+
<?php
|
140 |
+
endforeach;
|
141 |
+
endif;
|
142 |
+
?>
|
143 |
+
</select>
|
144 |
+
<?php if ( ! empty( $current_error ) ) : ?>
|
145 |
+
<span class="sui-error-message"
|
146 |
+
style="margin-top: 5px; margin-bottom: 5px;"><?php echo esc_html( $current_error ); ?></span>
|
147 |
+
<?php endif; ?>
|
148 |
+
</div>
|
149 |
+
</td>
|
150 |
|
151 |
+
<tr>
|
152 |
|
153 |
+
<?php endforeach;
|
154 |
|
155 |
+
endif;
|
156 |
+
?>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
157 |
|
158 |
</tbody>
|
159 |
|
addons/pro/hubspot/views/form-settings/create-ticket.php
CHANGED
@@ -313,7 +313,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
313 |
$('#hubspot-support-request').on('change', function () {
|
314 |
let value = $(this).val();
|
315 |
$.ajax({
|
316 |
-
url: '<?php echo forminator_ajax_url()
|
317 |
type: "POST",
|
318 |
data: {
|
319 |
action: "forminator_hubspot_support_request",
|
313 |
$('#hubspot-support-request').on('change', function () {
|
314 |
let value = $(this).val();
|
315 |
$.ajax({
|
316 |
+
url: '<?php echo forminator_ajax_url();// phpcs:ignore ?>',
|
317 |
type: "POST",
|
318 |
data: {
|
319 |
action: "forminator_hubspot_support_request",
|
addons/pro/hubspot/views/sections/authorize.php
CHANGED
@@ -13,12 +13,12 @@ foreach ( $template_vars as $key => $val ) {
|
|
13 |
<div id="forminator-integrations" class="wpmudev-settings--box">
|
14 |
<div class="sui-box">
|
15 |
<div class="sui-box-header">
|
16 |
-
<h2 class="sui-box-title"><?php esc_html_e(
|
17 |
</div>
|
18 |
<div class="sui-box-body">
|
19 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
20 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
21 |
-
<?php elseif ( $vars['is_close'] ): ?>
|
22 |
<span class="sui-notice sui-notice-success">
|
23 |
<p>
|
24 |
<?php esc_html_e( 'Successfully authorized HubSpot, you can go back to integration settings.', Forminator::DOMAIN ); ?>
|
@@ -36,7 +36,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
36 |
<script>
|
37 |
(function ($) {
|
38 |
$(document).ready(function (e) {
|
39 |
-
<?php if ($vars['is_close']): ?>
|
40 |
setTimeout(function () {
|
41 |
window.close();
|
42 |
}, 3000);
|
13 |
<div id="forminator-integrations" class="wpmudev-settings--box">
|
14 |
<div class="sui-box">
|
15 |
<div class="sui-box-header">
|
16 |
+
<h2 class="sui-box-title"><?php esc_html_e( 'Authorizing HubSpot', Forminator::DOMAIN ); ?></h2>
|
17 |
</div>
|
18 |
<div class="sui-box-body">
|
19 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
20 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
21 |
+
<?php elseif ( $vars['is_close'] ) : ?>
|
22 |
<span class="sui-notice sui-notice-success">
|
23 |
<p>
|
24 |
<?php esc_html_e( 'Successfully authorized HubSpot, you can go back to integration settings.', Forminator::DOMAIN ); ?>
|
36 |
<script>
|
37 |
(function ($) {
|
38 |
$(document).ready(function (e) {
|
39 |
+
<?php if ( $vars['is_close'] ) : ?>
|
40 |
setTimeout(function () {
|
41 |
window.close();
|
42 |
}, 3000);
|
addons/pro/hubspot/views/settings/authorize.php
CHANGED
@@ -3,7 +3,7 @@
|
|
3 |
$vars = array(
|
4 |
'auth_url' => '',
|
5 |
'token' => '',
|
6 |
-
'user'
|
7 |
);
|
8 |
|
9 |
/** @var array $template_vars */
|
@@ -13,17 +13,27 @@ foreach ( $template_vars as $key => $val ) {
|
|
13 |
|
14 |
<div class="integration-header">
|
15 |
|
16 |
-
<h3 id="dialogTitle2" class="sui-box-title"
|
|
|
|
|
|
|
|
|
|
|
17 |
|
18 |
<?php if ( ! empty( $vars['token'] ) ) : ?>
|
19 |
|
20 |
<span class="sui-description" style="color: #666666; margin-top: 20px; line-height: 22px;"><?php esc_html_e( 'You are already connected to the HubSpot. You can disconnect your HubSpot Integration (if you need to) using the button below.', Forminator::DOMAIN ); ?></span>
|
21 |
|
22 |
<div class="sui-notice sui-notice-success" style="margin-bottom: -30px;">
|
23 |
-
<p
|
|
|
|
|
|
|
|
|
|
|
24 |
</div>
|
25 |
|
26 |
-
|
27 |
|
28 |
<span class="sui-description" style="color: #666666; margin-top: 20px; line-height: 22px;"><?php esc_html_e( "Authenticate your HubSpot account using the button below. Note that you'll be taken to the HubSpot website to grant access to Forminator and then redirected back.", Forminator::DOMAIN ); ?></span>
|
29 |
|
3 |
$vars = array(
|
4 |
'auth_url' => '',
|
5 |
'token' => '',
|
6 |
+
'user' => '',
|
7 |
);
|
8 |
|
9 |
/** @var array $template_vars */
|
13 |
|
14 |
<div class="integration-header">
|
15 |
|
16 |
+
<h3 id="dialogTitle2" class="sui-box-title">
|
17 |
+
<?php
|
18 |
+
/* translators: ... */
|
19 |
+
echo esc_html( sprintf( __( 'Connect %1$s', Forminator::DOMAIN ), 'HubSpot' ) );
|
20 |
+
?>
|
21 |
+
</h3>
|
22 |
|
23 |
<?php if ( ! empty( $vars['token'] ) ) : ?>
|
24 |
|
25 |
<span class="sui-description" style="color: #666666; margin-top: 20px; line-height: 22px;"><?php esc_html_e( 'You are already connected to the HubSpot. You can disconnect your HubSpot Integration (if you need to) using the button below.', Forminator::DOMAIN ); ?></span>
|
26 |
|
27 |
<div class="sui-notice sui-notice-success" style="margin-bottom: -30px;">
|
28 |
+
<p>
|
29 |
+
<?php
|
30 |
+
/* translators: ... */
|
31 |
+
echo sprintf( esc_html__( 'You are connected to %2$s%1$s%3$s.', Forminator::DOMAIN ), esc_html( $vars['user'] ), '<strong>', '</strong>' );
|
32 |
+
?>
|
33 |
+
</p>
|
34 |
</div>
|
35 |
|
36 |
+
<?php else : ?>
|
37 |
|
38 |
<span class="sui-description" style="color: #666666; margin-top: 20px; line-height: 22px;"><?php esc_html_e( "Authenticate your HubSpot account using the button below. Note that you'll be taken to the HubSpot website to grant access to Forminator and then redirected back.", Forminator::DOMAIN ); ?></span>
|
39 |
|
addons/pro/hubspot/views/settings/error-authorize.php
CHANGED
@@ -12,7 +12,12 @@ foreach ( $template_vars as $key => $val ) {
|
|
12 |
|
13 |
<div class="integration-header">
|
14 |
|
15 |
-
<h3 id="dialogTitle2" class="sui-box-title"
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
<span class="sui-description" style="color: #666666; margin-top: 20px; line-height: 22px;"><?php esc_html_e( "Authenticate your HubSpot account using the button below. Note that you'll be taken to the HubSpot website to grant access to Forminator and then redirected back.", Forminator::DOMAIN ); ?></span>
|
18 |
|
12 |
|
13 |
<div class="integration-header">
|
14 |
|
15 |
+
<h3 id="dialogTitle2" class="sui-box-title">
|
16 |
+
<?php
|
17 |
+
/* translators: ... */
|
18 |
+
echo esc_html( sprintf( __( 'Connect %1$s', Forminator::DOMAIN ), 'HubSpot' ) );
|
19 |
+
?>
|
20 |
+
</h3>
|
21 |
|
22 |
<span class="sui-description" style="color: #666666; margin-top: 20px; line-height: 22px;"><?php esc_html_e( "Authenticate your HubSpot account using the button below. Note that you'll be taken to the HubSpot website to grant access to Forminator and then redirected back.", Forminator::DOMAIN ); ?></span>
|
23 |
|
addons/pro/hubspot/views/settings/success-authorize.php
CHANGED
@@ -1,7 +1,12 @@
|
|
1 |
<div class="integration-header">
|
2 |
|
3 |
-
<h3 class="sui-box-title" id="dialogTitle2"
|
|
|
|
|
|
|
|
|
|
|
4 |
|
5 |
-
|
6 |
|
7 |
</div>
|
1 |
<div class="integration-header">
|
2 |
|
3 |
+
<h3 class="sui-box-title" id="dialogTitle2">
|
4 |
+
<?php
|
5 |
+
/* translators: ... */
|
6 |
+
echo esc_html( sprintf( __( '%1$s Connected', Forminator::DOMAIN ), 'HubSpot' ) );
|
7 |
+
?>
|
8 |
+
</h3>
|
9 |
|
10 |
+
<span class="sui-description" style="color: #666666; margin-top: 20px; margin-bottom: -30px; line-height: 22px;"><?php esc_html_e( 'Awesome! You are connected to HubSpot. You can now go to your forms and activate HubSpot integration to collect data.', Forminator::DOMAIN ); ?></span>
|
11 |
|
12 |
</div>
|
addons/pro/hubspot/views/settings/wait-authorize.php
CHANGED
@@ -11,11 +11,21 @@ foreach ( $template_vars as $key => $val ) {
|
|
11 |
|
12 |
<div class="integration-header">
|
13 |
|
14 |
-
<h3 id="dialogTitle2" class="sui-box-title"
|
|
|
|
|
|
|
|
|
|
|
15 |
|
16 |
<?php if ( ! empty( $vars['token'] ) ) : ?>
|
17 |
<div class="sui-notice sui-notice-success" style="margin-bottom: -30px;">
|
18 |
-
<p
|
|
|
|
|
|
|
|
|
|
|
19 |
</div>
|
20 |
<?php else : ?>
|
21 |
<span class="sui-description" style="color: #666666; margin-top: 20px; line-height: 22px;"><?php esc_html_e( "Authenticate your HubSpot account using the button below. Note that you'll be taken to the HubSpot website to grant access to Forminator and then redirected back.", Forminator::DOMAIN ); ?></span>
|
@@ -28,9 +38,9 @@ foreach ( $template_vars as $key => $val ) {
|
|
28 |
<div class="sui-block-content-center" style="margin-top: -10px; margin-bottom: -20px;">
|
29 |
|
30 |
<button type="button" class="sui-button">
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
|
35 |
</div>
|
36 |
|
11 |
|
12 |
<div class="integration-header">
|
13 |
|
14 |
+
<h3 id="dialogTitle2" class="sui-box-title">
|
15 |
+
<?php
|
16 |
+
/* translators: ... */
|
17 |
+
echo esc_html( sprintf( __( 'Connect %1$s', Forminator::DOMAIN ), 'HubSpot' ) );
|
18 |
+
?>
|
19 |
+
</h3>
|
20 |
|
21 |
<?php if ( ! empty( $vars['token'] ) ) : ?>
|
22 |
<div class="sui-notice sui-notice-success" style="margin-bottom: -30px;">
|
23 |
+
<p>
|
24 |
+
<?php
|
25 |
+
/* translators: ... */
|
26 |
+
echo esc_html( sprintf( __( 'Your %1$s account is already authorized.', Forminator::DOMAIN ), 'HubSpot' ) );
|
27 |
+
?>
|
28 |
+
</p>
|
29 |
</div>
|
30 |
<?php else : ?>
|
31 |
<span class="sui-description" style="color: #666666; margin-top: 20px; line-height: 22px;"><?php esc_html_e( "Authenticate your HubSpot account using the button below. Note that you'll be taken to the HubSpot website to grant access to Forminator and then redirected back.", Forminator::DOMAIN ); ?></span>
|
38 |
<div class="sui-block-content-center" style="margin-top: -10px; margin-bottom: -20px;">
|
39 |
|
40 |
<button type="button" class="sui-button">
|
41 |
+
<span class="sui-loading-text"><?php esc_html_e( 'Authenticating', Forminator::DOMAIN ); ?></span>
|
42 |
+
<i class="sui-icon-loader sui-loading" aria-hidden="true"></i>
|
43 |
+
</button>
|
44 |
|
45 |
</div>
|
46 |
|
addons/pro/mailchimp/{forminator-addon-mailchimp-exception.php → class-forminator-addon-mailchimp-exception.php}
RENAMED
File without changes
|
addons/pro/mailchimp/{forminator-addon-mailchimp-form-hooks.php → class-forminator-addon-mailchimp-form-hooks.php}
RENAMED
@@ -46,7 +46,7 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
46 |
*/
|
47 |
public function __construct( Forminator_Addon_Abstract $addon, $form_id ) {
|
48 |
parent::__construct( $addon, $form_id );
|
49 |
-
$this->_submit_form_error_message = __( '
|
50 |
}
|
51 |
|
52 |
/**
|
@@ -96,8 +96,8 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
96 |
$input_name = 'forminator-addon-mailchimp-gdpr';
|
97 |
$input_id = $input_name . '-' . $uniq_id;
|
98 |
$html = '<div class="forminator-row"><div id="field-' . $input_id . '" class="forminator-col forminator-col-12"><div class="forminator-field">';
|
99 |
-
$html
|
100 |
-
|
101 |
// matching checkbox with design
|
102 |
$form_settings = $this->form_settings_instance->get_form_settings();
|
103 |
$design_class = self::get_form_setting_value_as( $form_settings, 'form-style', 'default', 'string' );
|
@@ -134,7 +134,7 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
134 |
}
|
135 |
$html .= '</div></div></div>';
|
136 |
|
137 |
-
echo wp_kses_post( $html );//
|
138 |
}
|
139 |
|
140 |
/**
|
@@ -169,7 +169,7 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
169 |
*/
|
170 |
private static function convert_value_to( $value, $type ) {
|
171 |
switch ( $type ) {
|
172 |
-
case 'array'
|
173 |
if ( ! is_array( $value ) ) {
|
174 |
if ( is_scalar( $value ) ) {
|
175 |
return array( $value );
|
@@ -179,15 +179,15 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
179 |
}
|
180 |
|
181 |
return $value;
|
182 |
-
case 'string'
|
183 |
if ( ! is_scalar( $value ) ) {
|
184 |
return wp_json_encode( $value );
|
185 |
}
|
186 |
|
187 |
return (string) trim( $value );
|
188 |
-
case 'boolean'
|
189 |
return filter_var( trim( $value ), FILTER_VALIDATE_BOOLEAN );
|
190 |
-
case 'int'
|
191 |
if ( ! is_scalar( $value ) ) {
|
192 |
return 1;
|
193 |
}
|
@@ -266,7 +266,7 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
266 |
}
|
267 |
|
268 |
// Only flag check for gdpr
|
269 |
-
if ( ! isset( $submitted_data['forminator-addon-mailchimp-gdpr'] ) ||
|
270 |
$this->gdpr_is_checked = false;
|
271 |
}
|
272 |
|
@@ -324,7 +324,7 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
324 |
//GDPR not checked, add error
|
325 |
throw new Forminator_Addon_Mailchimp_Exception(
|
326 |
__(
|
327 |
-
'Forminator Addon
|
328 |
Forminator::DOMAIN
|
329 |
)
|
330 |
);
|
@@ -334,29 +334,16 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
334 |
}
|
335 |
}
|
336 |
|
337 |
-
|
338 |
// EMAIL : super required**
|
339 |
if ( ! isset( $addon_setting_values['fields_map']['EMAIL'] ) ) {
|
340 |
-
throw new Forminator_Addon_Mailchimp_Exception(
|
341 |
-
sprintf(
|
342 |
-
__(
|
343 |
-
'Required Field %1$s not mapped yet to Forminator Form Field, Please check your MailChimp Configuration on Form Settings',
|
344 |
-
Forminator::DOMAIN
|
345 |
-
),
|
346 |
-
'EMAIL'
|
347 |
-
)
|
348 |
);
|
349 |
}
|
350 |
|
351 |
if ( ! isset( $submitted_data[ $addon_setting_values['fields_map']['EMAIL'] ] ) || empty( $submitted_data[ $addon_setting_values['fields_map']['EMAIL'] ] ) ) {
|
352 |
-
throw new Forminator_Addon_Mailchimp_Exception(
|
353 |
-
sprintf(
|
354 |
-
__(
|
355 |
-
'Required Field %1$s is not filled by user',
|
356 |
-
Forminator::DOMAIN
|
357 |
-
),
|
358 |
-
'EMAIL'
|
359 |
-
)
|
360 |
);
|
361 |
}
|
362 |
|
@@ -382,41 +369,23 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
382 |
$address_fields = $this->form_settings_instance->mail_address_fields();
|
383 |
foreach ( $address_fields as $addr => $address ) {
|
384 |
if ( ! isset( $addon_setting_values['fields_map'][ $mailchimp_required_field->tag ][ $addr ] ) ) {
|
385 |
-
throw new Forminator_Addon_Mailchimp_Exception(
|
386 |
-
sprintf(
|
387 |
-
__(
|
388 |
-
'Required Field %1$s not mapped yet to Forminator Form Field, Please check your MailChimp Configuration on Form Settings',
|
389 |
-
Forminator::DOMAIN
|
390 |
-
),
|
391 |
-
$mailchimp_required_field->name
|
392 |
-
)
|
393 |
);
|
394 |
}
|
395 |
|
396 |
if ( ! isset( $submitted_data[ $addon_setting_values['fields_map'][ $mailchimp_required_field->tag ][ $addr ] ] )
|
397 |
-
|
398 |
-
throw new Forminator_Addon_Mailchimp_Exception(
|
399 |
-
sprintf(
|
400 |
-
__(
|
401 |
-
'Required Field %1$s not filled by user',
|
402 |
-
Forminator::DOMAIN
|
403 |
-
),
|
404 |
-
$mailchimp_required_field->name
|
405 |
-
)
|
406 |
);
|
407 |
}
|
408 |
}
|
409 |
} else {
|
410 |
|
411 |
if ( ! isset( $addon_setting_values['fields_map'][ $mailchimp_required_field->tag ] ) ) {
|
412 |
-
throw new Forminator_Addon_Mailchimp_Exception(
|
413 |
-
sprintf(
|
414 |
-
__(
|
415 |
-
'Required Field %1$s not mapped yet to Forminator Form Field, Please check your MailChimp Configuration on Form Settings',
|
416 |
-
Forminator::DOMAIN
|
417 |
-
),
|
418 |
-
$mailchimp_required_field->name
|
419 |
-
)
|
420 |
);
|
421 |
}
|
422 |
|
@@ -425,16 +394,9 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
425 |
$is_stripe = self::element_is_stripe( $element_id );
|
426 |
$has_submit_data = isset( $submitted_data[ $element_id ] ) && ! empty( $submitted_data[ $element_id ] );
|
427 |
|
428 |
-
|
429 |
if ( ! $is_calculation && ! $is_stripe && ! $has_submit_data ) {
|
430 |
-
throw new Forminator_Addon_Mailchimp_Exception(
|
431 |
-
sprintf(
|
432 |
-
__(
|
433 |
-
'Required Field %1$s not filled by user',
|
434 |
-
Forminator::DOMAIN
|
435 |
-
),
|
436 |
-
$mailchimp_required_field->name
|
437 |
-
)
|
438 |
);
|
439 |
}
|
440 |
}
|
@@ -465,7 +427,6 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
465 |
}
|
466 |
}
|
467 |
|
468 |
-
|
469 |
$args = array(
|
470 |
'status' => $status,
|
471 |
'status_if_new' => $status,
|
@@ -475,7 +436,7 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
475 |
$merge_fields = array();
|
476 |
foreach ( $mailchimp_fields_list as $item ) {
|
477 |
// its mapped ?
|
478 |
-
if( 'address' === $item->type ) {
|
479 |
$address_fields = $this->form_settings_instance->mail_address_fields();
|
480 |
foreach ( $address_fields as $addr => $address ) {
|
481 |
if ( isset( $addon_setting_values['fields_map'][ $item->tag ] ) && ! empty( $addon_setting_values['fields_map'][ $item->tag ] ) ) {
|
@@ -503,7 +464,6 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
503 |
}
|
504 |
}
|
505 |
}
|
506 |
-
|
507 |
}
|
508 |
|
509 |
forminator_addon_maybe_log( __METHOD__, $mailchimp_fields_list, $addon_setting_values, $submitted_data, $merge_fields );
|
@@ -581,7 +541,7 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
581 |
if ( ! isset( $add_member_request->id ) || ! $add_member_request->id ) {
|
582 |
throw new Forminator_Addon_Mailchimp_Exception(
|
583 |
__(
|
584 |
-
'Failed adding or updating member on
|
585 |
Forminator::DOMAIN
|
586 |
)
|
587 |
);
|
@@ -594,7 +554,7 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
594 |
'name' => 'status',
|
595 |
'value' => array(
|
596 |
'is_sent' => true,
|
597 |
-
'description' => __( 'Successfully added or updated member on
|
598 |
'data_sent' => $mailchimp_api->get_last_data_sent(),
|
599 |
'data_received' => $mailchimp_api->get_last_data_received(),
|
600 |
'url_request' => $mailchimp_api->get_last_url_request(),
|
@@ -736,7 +696,7 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
736 |
}
|
737 |
|
738 |
$additional_entry_item = array(
|
739 |
-
'label' => __( '
|
740 |
'value' => '',
|
741 |
);
|
742 |
|
@@ -745,7 +705,7 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
745 |
if ( isset( $status['is_sent'] ) ) {
|
746 |
$is_sent = true === $status['is_sent'] ? __( 'Yes', Forminator::DOMAIN ) : __( 'No', Forminator::DOMAIN );
|
747 |
$sub_entries[] = array(
|
748 |
-
'label' => __( 'Sent To
|
749 |
'value' => $is_sent,
|
750 |
);
|
751 |
}
|
@@ -778,20 +738,19 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
778 |
|
779 |
if ( isset( $status['data_sent'] ) ) {
|
780 |
$sub_entries[] = array(
|
781 |
-
'label' => __( 'Data sent to
|
782 |
'value' => '<pre class="sui-code-snippet">' . wp_json_encode( $status['data_sent'], JSON_PRETTY_PRINT ) . '</pre>',
|
783 |
);
|
784 |
}
|
785 |
|
786 |
if ( isset( $status['data_received'] ) ) {
|
787 |
$sub_entries[] = array(
|
788 |
-
'label' => __( 'Data received from
|
789 |
'value' => '<pre class="sui-code-snippet">' . wp_json_encode( $status['data_received'], JSON_PRETTY_PRINT ) . '</pre>',
|
790 |
);
|
791 |
}
|
792 |
}
|
793 |
|
794 |
-
|
795 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
796 |
|
797 |
// return single array
|
@@ -806,7 +765,7 @@ class Forminator_Addon_Mailchimp_Form_Hooks extends Forminator_Addon_Form_Hooks_
|
|
806 |
*/
|
807 |
public function on_export_render_title_row() {
|
808 |
$export_headers = array(
|
809 |
-
'info' => '
|
810 |
);
|
811 |
|
812 |
$form_id = $this->form_id;
|
46 |
*/
|
47 |
public function __construct( Forminator_Addon_Abstract $addon, $form_id ) {
|
48 |
parent::__construct( $addon, $form_id );
|
49 |
+
$this->_submit_form_error_message = __( 'Mailchimp failed to process submitted data. Please check your form and try again', Forminator::DOMAIN );
|
50 |
}
|
51 |
|
52 |
/**
|
96 |
$input_name = 'forminator-addon-mailchimp-gdpr';
|
97 |
$input_id = $input_name . '-' . $uniq_id;
|
98 |
$html = '<div class="forminator-row"><div id="field-' . $input_id . '" class="forminator-col forminator-col-12"><div class="forminator-field">';
|
99 |
+
$html .= '<div class="forminator-field--label"><label class="forminator-label" id="forminator-label-' . $input_id . '">' . esc_html_e( 'Mailchimp GDPR', Forminator::DOMAIN )
|
100 |
+
. '</label></div>';
|
101 |
// matching checkbox with design
|
102 |
$form_settings = $this->form_settings_instance->get_form_settings();
|
103 |
$design_class = self::get_form_setting_value_as( $form_settings, 'form-style', 'default', 'string' );
|
134 |
}
|
135 |
$html .= '</div></div></div>';
|
136 |
|
137 |
+
echo wp_kses_post( $html );// phpcs:ignore Standard.Category.SniffName.ErrorCode
|
138 |
}
|
139 |
|
140 |
/**
|
169 |
*/
|
170 |
private static function convert_value_to( $value, $type ) {
|
171 |
switch ( $type ) {
|
172 |
+
case 'array':
|
173 |
if ( ! is_array( $value ) ) {
|
174 |
if ( is_scalar( $value ) ) {
|
175 |
return array( $value );
|
179 |
}
|
180 |
|
181 |
return $value;
|
182 |
+
case 'string':
|
183 |
if ( ! is_scalar( $value ) ) {
|
184 |
return wp_json_encode( $value );
|
185 |
}
|
186 |
|
187 |
return (string) trim( $value );
|
188 |
+
case 'boolean':
|
189 |
return filter_var( trim( $value ), FILTER_VALIDATE_BOOLEAN );
|
190 |
+
case 'int':
|
191 |
if ( ! is_scalar( $value ) ) {
|
192 |
return 1;
|
193 |
}
|
266 |
}
|
267 |
|
268 |
// Only flag check for gdpr
|
269 |
+
if ( ! isset( $submitted_data['forminator-addon-mailchimp-gdpr'] ) || '1' !== $submitted_data['forminator-addon-mailchimp-gdpr'] ) {
|
270 |
$this->gdpr_is_checked = false;
|
271 |
}
|
272 |
|
324 |
//GDPR not checked, add error
|
325 |
throw new Forminator_Addon_Mailchimp_Exception(
|
326 |
__(
|
327 |
+
'Forminator Addon Mailchimp was not sending subscriber to mailchimp as GDPR field is not checked on input',
|
328 |
Forminator::DOMAIN
|
329 |
)
|
330 |
);
|
334 |
}
|
335 |
}
|
336 |
|
|
|
337 |
// EMAIL : super required**
|
338 |
if ( ! isset( $addon_setting_values['fields_map']['EMAIL'] ) ) {
|
339 |
+
throw new Forminator_Addon_Mailchimp_Exception(/* translators: ... */
|
340 |
+
sprintf( __( 'Required Field %1$s not mapped yet to Forminator Form Field, Please check your Mailchimp Configuration on Form Settings', Forminator::DOMAIN ), 'EMAIL' )
|
|
|
|
|
|
|
|
|
|
|
|
|
341 |
);
|
342 |
}
|
343 |
|
344 |
if ( ! isset( $submitted_data[ $addon_setting_values['fields_map']['EMAIL'] ] ) || empty( $submitted_data[ $addon_setting_values['fields_map']['EMAIL'] ] ) ) {
|
345 |
+
throw new Forminator_Addon_Mailchimp_Exception(/* translators: ... */
|
346 |
+
sprintf( __( 'Required Field %1$s is not filled by user', Forminator::DOMAIN ), 'EMAIL' )
|
|
|
|
|
|
|
|
|
|
|
|
|
347 |
);
|
348 |
}
|
349 |
|
369 |
$address_fields = $this->form_settings_instance->mail_address_fields();
|
370 |
foreach ( $address_fields as $addr => $address ) {
|
371 |
if ( ! isset( $addon_setting_values['fields_map'][ $mailchimp_required_field->tag ][ $addr ] ) ) {
|
372 |
+
throw new Forminator_Addon_Mailchimp_Exception(/* translators: ... */
|
373 |
+
sprintf( __( 'Required Field %1$s not mapped yet to Forminator Form Field, Please check your Mailchimp Configuration on Form Settings', Forminator::DOMAIN ), $mailchimp_required_field->name )
|
|
|
|
|
|
|
|
|
|
|
|
|
374 |
);
|
375 |
}
|
376 |
|
377 |
if ( ! isset( $submitted_data[ $addon_setting_values['fields_map'][ $mailchimp_required_field->tag ][ $addr ] ] )
|
378 |
+
|| empty( $submitted_data[ $addon_setting_values['fields_map'][ $mailchimp_required_field->tag ][ $addr ] ] ) ) {
|
379 |
+
throw new Forminator_Addon_Mailchimp_Exception(/* translators: ... */
|
380 |
+
sprintf( __( 'Required Field %1$s not filled by user', Forminator::DOMAIN ), $mailchimp_required_field->name )
|
|
|
|
|
|
|
|
|
|
|
|
|
381 |
);
|
382 |
}
|
383 |
}
|
384 |
} else {
|
385 |
|
386 |
if ( ! isset( $addon_setting_values['fields_map'][ $mailchimp_required_field->tag ] ) ) {
|
387 |
+
throw new Forminator_Addon_Mailchimp_Exception(/* translators: ... */
|
388 |
+
sprintf( __( 'Required Field %1$s not mapped yet to Forminator Form Field, Please check your Mailchimp Configuration on Form Settings', Forminator::DOMAIN ), $mailchimp_required_field->name )
|
|
|
|
|
|
|
|
|
|
|
|
|
389 |
);
|
390 |
}
|
391 |
|
394 |
$is_stripe = self::element_is_stripe( $element_id );
|
395 |
$has_submit_data = isset( $submitted_data[ $element_id ] ) && ! empty( $submitted_data[ $element_id ] );
|
396 |
|
|
|
397 |
if ( ! $is_calculation && ! $is_stripe && ! $has_submit_data ) {
|
398 |
+
throw new Forminator_Addon_Mailchimp_Exception(/* translators: ... */
|
399 |
+
sprintf( __( 'Required Field %1$s not filled by user', Forminator::DOMAIN ), $mailchimp_required_field->name )
|
|
|
|
|
|
|
|
|
|
|
|
|
400 |
);
|
401 |
}
|
402 |
}
|
427 |
}
|
428 |
}
|
429 |
|
|
|
430 |
$args = array(
|
431 |
'status' => $status,
|
432 |
'status_if_new' => $status,
|
436 |
$merge_fields = array();
|
437 |
foreach ( $mailchimp_fields_list as $item ) {
|
438 |
// its mapped ?
|
439 |
+
if ( 'address' === $item->type ) {
|
440 |
$address_fields = $this->form_settings_instance->mail_address_fields();
|
441 |
foreach ( $address_fields as $addr => $address ) {
|
442 |
if ( isset( $addon_setting_values['fields_map'][ $item->tag ] ) && ! empty( $addon_setting_values['fields_map'][ $item->tag ] ) ) {
|
464 |
}
|
465 |
}
|
466 |
}
|
|
|
467 |
}
|
468 |
|
469 |
forminator_addon_maybe_log( __METHOD__, $mailchimp_fields_list, $addon_setting_values, $submitted_data, $merge_fields );
|
541 |
if ( ! isset( $add_member_request->id ) || ! $add_member_request->id ) {
|
542 |
throw new Forminator_Addon_Mailchimp_Exception(
|
543 |
__(
|
544 |
+
'Failed adding or updating member on Mailchimp list',
|
545 |
Forminator::DOMAIN
|
546 |
)
|
547 |
);
|
554 |
'name' => 'status',
|
555 |
'value' => array(
|
556 |
'is_sent' => true,
|
557 |
+
'description' => __( 'Successfully added or updated member on Mailchimp list', Forminator::DOMAIN ),
|
558 |
'data_sent' => $mailchimp_api->get_last_data_sent(),
|
559 |
'data_received' => $mailchimp_api->get_last_data_received(),
|
560 |
'url_request' => $mailchimp_api->get_last_url_request(),
|
696 |
}
|
697 |
|
698 |
$additional_entry_item = array(
|
699 |
+
'label' => __( 'Mailchimp Integration', Forminator::DOMAIN ),
|
700 |
'value' => '',
|
701 |
);
|
702 |
|
705 |
if ( isset( $status['is_sent'] ) ) {
|
706 |
$is_sent = true === $status['is_sent'] ? __( 'Yes', Forminator::DOMAIN ) : __( 'No', Forminator::DOMAIN );
|
707 |
$sub_entries[] = array(
|
708 |
+
'label' => __( 'Sent To Mailchimp', Forminator::DOMAIN ),
|
709 |
'value' => $is_sent,
|
710 |
);
|
711 |
}
|
738 |
|
739 |
if ( isset( $status['data_sent'] ) ) {
|
740 |
$sub_entries[] = array(
|
741 |
+
'label' => __( 'Data sent to Mailchimp', Forminator::DOMAIN ),
|
742 |
'value' => '<pre class="sui-code-snippet">' . wp_json_encode( $status['data_sent'], JSON_PRETTY_PRINT ) . '</pre>',
|
743 |
);
|
744 |
}
|
745 |
|
746 |
if ( isset( $status['data_received'] ) ) {
|
747 |
$sub_entries[] = array(
|
748 |
+
'label' => __( 'Data received from Mailchimp', Forminator::DOMAIN ),
|
749 |
'value' => '<pre class="sui-code-snippet">' . wp_json_encode( $status['data_received'], JSON_PRETTY_PRINT ) . '</pre>',
|
750 |
);
|
751 |
}
|
752 |
}
|
753 |
|
|
|
754 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
755 |
|
756 |
// return single array
|
765 |
*/
|
766 |
public function on_export_render_title_row() {
|
767 |
$export_headers = array(
|
768 |
+
'info' => 'Mailchimp Info',
|
769 |
);
|
770 |
|
771 |
$form_id = $this->form_id;
|
addons/pro/mailchimp/{forminator-addon-mailchimp-form-settings-exception.php → class-forminator-addon-mailchimp-form-settings-exception.php}
RENAMED
File without changes
|
addons/pro/mailchimp/{forminator-addon-mailchimp-form-settings.php → class-forminator-addon-mailchimp-form-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-mailchimp-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Mailchimp_Form_Settings
|
@@ -83,7 +83,7 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
83 |
$current_data['mail_list_limit'] = $this->addon_form_settings['mail_list_limit'];
|
84 |
} else {
|
85 |
$current_data['mail_list_limit'] = 10;
|
86 |
-
|
87 |
|
88 |
forminator_addon_maybe_log( __METHOD__, 'current_data', $current_data );
|
89 |
|
@@ -99,15 +99,16 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
99 |
$buttons = array();
|
100 |
// add disconnect button if already is_form_connected
|
101 |
if ( $this->addon->is_form_connected( $this->form_id ) ) {
|
102 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Mailchimp::get_button_markup(
|
|
|
103 |
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
104 |
-
esc_html__( 'Disconnect
|
105 |
);
|
106 |
}
|
107 |
|
108 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
109 |
-
|
110 |
-
|
111 |
|
112 |
return array(
|
113 |
'html' => '<div class="sui-box-content integration-header"><h3 class="sui-box-title" id="dialogTitle2">' . __( 'Enter list limit', Forminator::DOMAIN ) . '</h3></div>
|
@@ -116,7 +117,7 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
116 |
<label class="sui-label">' . __( 'List limit', Forminator::DOMAIN ) . '</label>
|
117 |
<div class="sui-form-field">
|
118 |
<input name="mail_list_limit"
|
119 |
-
placeholder="' . sprintf( __( 'Example: 10', Forminator::DOMAIN ), '
|
120 |
value="' . esc_attr( $current_data['mail_list_limit'] ) . '"
|
121 |
class="sui-form-control" />
|
122 |
<span class="sui-description">' . __( 'By default list limit will be 10.', Forminator::DOMAIN ) . '</spna>
|
@@ -171,20 +172,20 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
171 |
$list_array = array();
|
172 |
|
173 |
try {
|
174 |
-
$api
|
175 |
-
if( ! empty( $this->addon_form_settings['mail_list_limit'] ) ) {
|
176 |
$list_array['count'] = $this->addon_form_settings['mail_list_limit'];
|
177 |
}
|
178 |
$request_mail_lists = $api->get_lists( $list_array );
|
179 |
|
180 |
// Get mailchimp list to be selected, bail on empty
|
181 |
if ( ! isset( $request_mail_lists->lists ) || empty( $request_mail_lists->lists ) || ! is_array( $request_mail_lists->lists ) ) {
|
182 |
-
throw new Forminator_Addon_Mailchimp_Exception( 'Your
|
183 |
}
|
184 |
$mail_lists = $request_mail_lists->lists;
|
185 |
|
186 |
// build html select for mail list
|
187 |
-
$html_select_mail_list
|
188 |
$html_select_mail_list .= '<option value="">' . __( 'None', Forminator::DOMAIN ) . '</option>';
|
189 |
|
190 |
foreach ( $mail_lists as $mail_list ) {
|
@@ -226,7 +227,6 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
226 |
}
|
227 |
}
|
228 |
|
229 |
-
|
230 |
$this->save_form_settings_values( $this->addon_form_settings );
|
231 |
}
|
232 |
|
@@ -236,7 +236,6 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
236 |
' . $html_select_mail_list . '
|
237 |
</div>';
|
238 |
|
239 |
-
|
240 |
} catch ( Forminator_Addon_Mailchimp_Form_Settings_Exception $e ) {
|
241 |
// send errors with related input
|
242 |
$input_error_messages = $e->get_input_exceptions();
|
@@ -256,21 +255,21 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
256 |
$buttons = array();
|
257 |
// add disconnect button if already is_form_connected
|
258 |
if ( $this->addon->is_form_connected( $this->form_id ) ) {
|
259 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Mailchimp::get_button_markup(
|
260 |
-
|
261 |
-
|
|
|
262 |
);
|
263 |
}
|
264 |
|
265 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
266 |
-
|
267 |
-
|
268 |
-
|
269 |
|
270 |
$gdpr_fields = '';
|
271 |
if ( Forminator_Addon_Mailchimp::is_enable_gdpr() ) {
|
272 |
$gdpr_fields = '<div class="sui-form-field">' .
|
273 |
-
|
274 |
<input type="checkbox" name="enable_gdpr" value="1" ' . checked( 1, $current_data['enable_double_opt_in'], false ) . '>
|
275 |
</div>
|
276 |
|
@@ -342,9 +341,9 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
342 |
$mailchimp_required_fields [] = $item;
|
343 |
$mailchimp_required_fields_ids[] = $item->merge_id;
|
344 |
}
|
345 |
-
if( 'address' === $item->type ) {
|
346 |
$address_fields = $this->mail_address_fields();
|
347 |
-
foreach ( $address_fields as $addr
|
348 |
$current_data['fields_map'][ $item->tag ][ $addr ] = '';
|
349 |
}
|
350 |
} else {
|
@@ -369,15 +368,14 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
369 |
}
|
370 |
|
371 |
foreach ( $current_data['fields_map'] as $key => $current_field ) {
|
372 |
-
if( is_array( $current_field ) ) {
|
373 |
-
foreach ( $current_field as $a
|
374 |
if ( isset( $submitted_data['fields_map'][ $key ][ $a ] ) ) {
|
375 |
$current_data['fields_map'][ $key ][ $a ] = $submitted_data['fields_map'][ $key ][ $a ];
|
376 |
} elseif ( isset( $this->addon_form_settings['fields_map'][ $key ] ) ) {
|
377 |
$current_data['fields_map'][ $key ][ $a ] = $this->addon_form_settings['fields_map'][ $key ][ $a ];
|
378 |
}
|
379 |
}
|
380 |
-
|
381 |
} else {
|
382 |
if ( isset( $submitted_data['fields_map'][ $key ] ) ) {
|
383 |
$current_data['fields_map'][ $key ] = $submitted_data['fields_map'][ $key ];
|
@@ -397,16 +395,14 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
397 |
$this->save_form_settings_values( $this->addon_form_settings );
|
398 |
$is_close = true;
|
399 |
}
|
400 |
-
|
401 |
-
|
402 |
} catch ( Forminator_Addon_Mailchimp_Form_Settings_Exception $e ) {
|
403 |
$input_error_messages = $e->get_input_exceptions();
|
404 |
if ( ! empty( $html_input_map_fields ) ) {
|
405 |
foreach ( $input_error_messages as $input_id => $message ) {
|
406 |
-
if( is_array( $message ) ) {
|
407 |
-
foreach ( $message as $addr => $m ){
|
408 |
$html_input_map_fields = str_replace( '{{$error_css_class_' . $input_id . '_' . $addr . '}}', 'sui-form-field-error', $html_input_map_fields );
|
409 |
-
$html_input_map_fields = str_replace( '{{$error_message_' . $input_id . '_' . $addr .'}}', '<span class="sui-error-message">' . esc_html( $m ) . '</span>', $html_input_map_fields );
|
410 |
}
|
411 |
} else {
|
412 |
$html_input_map_fields = str_replace( '{{$error_css_class_' . $input_id . '}}', 'sui-form-field-error', $html_input_map_fields );
|
@@ -414,7 +410,6 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
414 |
}
|
415 |
}
|
416 |
}
|
417 |
-
|
418 |
} catch ( Forminator_Addon_Mailchimp_Exception $e ) {
|
419 |
$error_message = '<div class="sui-notice sui-notice-error"><p>' . $e->getMessage() . '</p></div>';
|
420 |
}
|
@@ -431,15 +426,16 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
431 |
|
432 |
$buttons = array();
|
433 |
if ( $this->addon->is_form_connected( $this->form_id ) ) {
|
434 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Mailchimp::get_button_markup(
|
435 |
-
|
436 |
-
|
|
|
437 |
);
|
438 |
}
|
439 |
|
440 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
441 |
-
|
442 |
-
|
443 |
|
444 |
$notification = array();
|
445 |
|
@@ -482,7 +478,7 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
482 |
<table class="sui-table">
|
483 |
<thead>
|
484 |
<tr>
|
485 |
-
<th>
|
486 |
<th>Forminator Field</th>
|
487 |
</tr>
|
488 |
</thead>
|
@@ -509,14 +505,14 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
509 |
</tr>
|
510 |
<?php
|
511 |
foreach ( $mailchimp_fields_list as $item ) {
|
512 |
-
$require_sign =
|
513 |
-
if( 'address' === $item->type ) {
|
514 |
$address_fields = $this->mail_address_fields();
|
515 |
foreach ( $address_fields as $addr => $address ) {
|
516 |
$address_require_sign = 'addr2' === $addr ? '' : $require_sign;
|
517 |
?>
|
518 |
<tr>
|
519 |
-
<td><?php echo esc_html( $item->name . ' - ' . $address ); ?> <?php echo $address_require_sign; ?></td>
|
520 |
<td>
|
521 |
<div class="sui-form-field {{$error_css_class_<?php echo esc_attr( $item->tag ); ?>_<?php echo esc_attr( $addr ); ?>}}">
|
522 |
<select class="sui-select" name="fields_map[<?php echo esc_attr( $item->tag ); ?>][<?php echo esc_attr( $addr ); ?>]">
|
@@ -532,10 +528,12 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
532 |
</div>
|
533 |
</td>
|
534 |
</tr>
|
535 |
-
|
536 |
-
|
|
|
|
|
537 |
<tr>
|
538 |
-
<td><?php echo esc_html( $item->name ); ?> <?php echo $require_sign; ?></td>
|
539 |
<td>
|
540 |
<div class="sui-form-field {{$error_css_class_<?php echo esc_attr( $item->tag ); ?>}}">
|
541 |
<select class="sui-select" name="fields_map[<?php echo esc_attr( $item->tag ); ?>]">
|
@@ -551,8 +549,10 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
551 |
</div>
|
552 |
</td>
|
553 |
</tr>
|
554 |
-
|
555 |
-
|
|
|
|
|
556 |
</tbody>
|
557 |
</table>
|
558 |
<?php
|
@@ -598,7 +598,7 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
598 |
public function step_map_fields_validate( $mailchimp_fields_list, $mailchimp_required_fields, $post_data ) {
|
599 |
|
600 |
$forminator_field_element_ids = array();
|
601 |
-
$address_value
|
602 |
foreach ( $this->form_fields as $form_field ) {
|
603 |
$forminator_field_element_ids[] = $form_field['element_id'];
|
604 |
}
|
@@ -633,19 +633,23 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
633 |
|
634 |
//check required fields fulfilled
|
635 |
foreach ( $mailchimp_required_fields as $mailchimp_required_field ) {
|
636 |
-
if( 'address' === $mailchimp_required_field->type ) {
|
637 |
$address_fields = $this->mail_address_fields();
|
638 |
-
foreach ( $address_fields as $addr => $address ){
|
639 |
-
if( 'addr2' !== $addr ) {
|
640 |
if ( ! isset( $post_data[ $mailchimp_required_field->tag ][ $addr ] ) || empty( $post_data[ $mailchimp_required_field->tag ][ $addr ] ) ) {
|
641 |
-
$this->_update_form_settings_error_message =
|
|
|
|
|
642 |
$input_exceptions->add_sub_input_exception( $this->_update_form_settings_error_message, $mailchimp_required_field->tag, $addr );
|
643 |
}
|
644 |
}
|
645 |
}
|
646 |
}
|
647 |
if ( ! isset( $post_data[ $mailchimp_required_field->tag ] ) || empty( $post_data[ $mailchimp_required_field->tag ] ) ) {
|
648 |
-
$this->_update_form_settings_error_message =
|
|
|
|
|
649 |
$input_exceptions->add_input_exception( $this->_update_form_settings_error_message, $mailchimp_required_field->tag );
|
650 |
}
|
651 |
}
|
@@ -655,10 +659,10 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
655 |
if ( empty( $forminator_field_id ) ) {
|
656 |
continue;
|
657 |
}
|
658 |
-
if( is_array( $forminator_field_id ) ) {
|
659 |
foreach ( $forminator_field_id as $addr => $field_id ) {
|
660 |
-
if( ! empty( $field_id ) ) {
|
661 |
-
$address_value[ $mailchimp_field_tag ][ $addr ] =
|
662 |
}
|
663 |
}
|
664 |
foreach ( $forminator_field_id as $addr => $field_id ) {
|
@@ -669,7 +673,9 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
669 |
$mailchimp_field = $tag_maped_mailchimp_fields[ $mailchimp_field_tag ];
|
670 |
$mailchimp_field_name = $mailchimp_field->name;
|
671 |
|
672 |
-
$this->_update_form_settings_error_message =
|
|
|
|
|
673 |
$input_exceptions->add_sub_input_exception( $this->_update_form_settings_error_message, $mailchimp_field_tag, $addr );
|
674 |
}
|
675 |
}
|
@@ -682,7 +688,9 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
682 |
$mailchimp_field_name = $mailchimp_field->name;
|
683 |
}
|
684 |
|
685 |
-
$this->_update_form_settings_error_message =
|
|
|
|
|
686 |
$input_exceptions->add_input_exception( $this->_update_form_settings_error_message, $mailchimp_field_tag );
|
687 |
}
|
688 |
}
|
@@ -728,7 +736,6 @@ class Forminator_Addon_Mailchimp_Form_Settings extends Forminator_Addon_Form_Set
|
|
728 |
* save_force_form_disconnect_reason();
|
729 |
*/
|
730 |
|
731 |
-
|
732 |
return true;
|
733 |
|
734 |
}
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-mailchimp-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Mailchimp_Form_Settings
|
83 |
$current_data['mail_list_limit'] = $this->addon_form_settings['mail_list_limit'];
|
84 |
} else {
|
85 |
$current_data['mail_list_limit'] = 10;
|
86 |
+
}
|
87 |
|
88 |
forminator_addon_maybe_log( __METHOD__, 'current_data', $current_data );
|
89 |
|
99 |
$buttons = array();
|
100 |
// add disconnect button if already is_form_connected
|
101 |
if ( $this->addon->is_form_connected( $this->form_id ) ) {
|
102 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Mailchimp::get_button_markup(
|
103 |
+
esc_html__( 'DISCONNECT', Forminator::DOMAIN ),
|
104 |
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
105 |
+
esc_html__( 'Disconnect Mailchimp from this Form.', Forminator::DOMAIN )
|
106 |
);
|
107 |
}
|
108 |
|
109 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
110 |
+
Forminator_Addon_Mailchimp::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
111 |
+
'</div>';
|
112 |
|
113 |
return array(
|
114 |
'html' => '<div class="sui-box-content integration-header"><h3 class="sui-box-title" id="dialogTitle2">' . __( 'Enter list limit', Forminator::DOMAIN ) . '</h3></div>
|
117 |
<label class="sui-label">' . __( 'List limit', Forminator::DOMAIN ) . '</label>
|
118 |
<div class="sui-form-field">
|
119 |
<input name="mail_list_limit"
|
120 |
+
placeholder="' . sprintf( __( 'Example: 10', Forminator::DOMAIN ), 'Mailchimp' ) . '"
|
121 |
value="' . esc_attr( $current_data['mail_list_limit'] ) . '"
|
122 |
class="sui-form-control" />
|
123 |
<span class="sui-description">' . __( 'By default list limit will be 10.', Forminator::DOMAIN ) . '</spna>
|
172 |
$list_array = array();
|
173 |
|
174 |
try {
|
175 |
+
$api = $this->addon->get_api();
|
176 |
+
if ( ! empty( $this->addon_form_settings['mail_list_limit'] ) ) {
|
177 |
$list_array['count'] = $this->addon_form_settings['mail_list_limit'];
|
178 |
}
|
179 |
$request_mail_lists = $api->get_lists( $list_array );
|
180 |
|
181 |
// Get mailchimp list to be selected, bail on empty
|
182 |
if ( ! isset( $request_mail_lists->lists ) || empty( $request_mail_lists->lists ) || ! is_array( $request_mail_lists->lists ) ) {
|
183 |
+
throw new Forminator_Addon_Mailchimp_Exception( 'Your Mailchimp Lists is empty, please create one.' );
|
184 |
}
|
185 |
$mail_lists = $request_mail_lists->lists;
|
186 |
|
187 |
// build html select for mail list
|
188 |
+
$html_select_mail_list = '<select name="mail_list_id" class="sui-select sui-form-control">';
|
189 |
$html_select_mail_list .= '<option value="">' . __( 'None', Forminator::DOMAIN ) . '</option>';
|
190 |
|
191 |
foreach ( $mail_lists as $mail_list ) {
|
227 |
}
|
228 |
}
|
229 |
|
|
|
230 |
$this->save_form_settings_values( $this->addon_form_settings );
|
231 |
}
|
232 |
|
236 |
' . $html_select_mail_list . '
|
237 |
</div>';
|
238 |
|
|
|
239 |
} catch ( Forminator_Addon_Mailchimp_Form_Settings_Exception $e ) {
|
240 |
// send errors with related input
|
241 |
$input_error_messages = $e->get_input_exceptions();
|
255 |
$buttons = array();
|
256 |
// add disconnect button if already is_form_connected
|
257 |
if ( $this->addon->is_form_connected( $this->form_id ) ) {
|
258 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Mailchimp::get_button_markup(
|
259 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
260 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
261 |
+
esc_html__( 'Deactivate Mailchimp from this Form.', Forminator::DOMAIN )
|
262 |
);
|
263 |
}
|
264 |
|
265 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
266 |
+
Forminator_Addon_Mailchimp::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
267 |
+
'</div>';
|
|
|
268 |
|
269 |
$gdpr_fields = '';
|
270 |
if ( Forminator_Addon_Mailchimp::is_enable_gdpr() ) {
|
271 |
$gdpr_fields = '<div class="sui-form-field">' .
|
272 |
+
'<label class="sui-label">' . __( 'Enable GDPR', Forminator::DOMAIN ) . '</label>
|
273 |
<input type="checkbox" name="enable_gdpr" value="1" ' . checked( 1, $current_data['enable_double_opt_in'], false ) . '>
|
274 |
</div>
|
275 |
|
341 |
$mailchimp_required_fields [] = $item;
|
342 |
$mailchimp_required_fields_ids[] = $item->merge_id;
|
343 |
}
|
344 |
+
if ( 'address' === $item->type ) {
|
345 |
$address_fields = $this->mail_address_fields();
|
346 |
+
foreach ( $address_fields as $addr => $address ) {
|
347 |
$current_data['fields_map'][ $item->tag ][ $addr ] = '';
|
348 |
}
|
349 |
} else {
|
368 |
}
|
369 |
|
370 |
foreach ( $current_data['fields_map'] as $key => $current_field ) {
|
371 |
+
if ( is_array( $current_field ) ) {
|
372 |
+
foreach ( $current_field as $a => $current ) {
|
373 |
if ( isset( $submitted_data['fields_map'][ $key ][ $a ] ) ) {
|
374 |
$current_data['fields_map'][ $key ][ $a ] = $submitted_data['fields_map'][ $key ][ $a ];
|
375 |
} elseif ( isset( $this->addon_form_settings['fields_map'][ $key ] ) ) {
|
376 |
$current_data['fields_map'][ $key ][ $a ] = $this->addon_form_settings['fields_map'][ $key ][ $a ];
|
377 |
}
|
378 |
}
|
|
|
379 |
} else {
|
380 |
if ( isset( $submitted_data['fields_map'][ $key ] ) ) {
|
381 |
$current_data['fields_map'][ $key ] = $submitted_data['fields_map'][ $key ];
|
395 |
$this->save_form_settings_values( $this->addon_form_settings );
|
396 |
$is_close = true;
|
397 |
}
|
|
|
|
|
398 |
} catch ( Forminator_Addon_Mailchimp_Form_Settings_Exception $e ) {
|
399 |
$input_error_messages = $e->get_input_exceptions();
|
400 |
if ( ! empty( $html_input_map_fields ) ) {
|
401 |
foreach ( $input_error_messages as $input_id => $message ) {
|
402 |
+
if ( is_array( $message ) ) {
|
403 |
+
foreach ( $message as $addr => $m ) {
|
404 |
$html_input_map_fields = str_replace( '{{$error_css_class_' . $input_id . '_' . $addr . '}}', 'sui-form-field-error', $html_input_map_fields );
|
405 |
+
$html_input_map_fields = str_replace( '{{$error_message_' . $input_id . '_' . $addr . '}}', '<span class="sui-error-message">' . esc_html( $m ) . '</span>', $html_input_map_fields );
|
406 |
}
|
407 |
} else {
|
408 |
$html_input_map_fields = str_replace( '{{$error_css_class_' . $input_id . '}}', 'sui-form-field-error', $html_input_map_fields );
|
410 |
}
|
411 |
}
|
412 |
}
|
|
|
413 |
} catch ( Forminator_Addon_Mailchimp_Exception $e ) {
|
414 |
$error_message = '<div class="sui-notice sui-notice-error"><p>' . $e->getMessage() . '</p></div>';
|
415 |
}
|
426 |
|
427 |
$buttons = array();
|
428 |
if ( $this->addon->is_form_connected( $this->form_id ) ) {
|
429 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Mailchimp::get_button_markup(
|
430 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
431 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
432 |
+
esc_html__( 'Deactivate Mailchimp from this Form.', Forminator::DOMAIN )
|
433 |
);
|
434 |
}
|
435 |
|
436 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
437 |
+
Forminator_Addon_Mailchimp::get_button_markup( esc_html__( 'Save', Forminator::DOMAIN ), 'sui-button-primary forminator-addon-finish' ) .
|
438 |
+
'</div>';
|
439 |
|
440 |
$notification = array();
|
441 |
|
478 |
<table class="sui-table">
|
479 |
<thead>
|
480 |
<tr>
|
481 |
+
<th>Mailchimp Field</th>
|
482 |
<th>Forminator Field</th>
|
483 |
</tr>
|
484 |
</thead>
|
505 |
</tr>
|
506 |
<?php
|
507 |
foreach ( $mailchimp_fields_list as $item ) {
|
508 |
+
$require_sign = $item->required ? '<span class="integrations-required-field">*</span>' : '';
|
509 |
+
if ( 'address' === $item->type ) {
|
510 |
$address_fields = $this->mail_address_fields();
|
511 |
foreach ( $address_fields as $addr => $address ) {
|
512 |
$address_require_sign = 'addr2' === $addr ? '' : $require_sign;
|
513 |
?>
|
514 |
<tr>
|
515 |
+
<td><?php echo esc_html( $item->name . ' - ' . $address ); ?> <?php echo esc_html( $address_require_sign ); ?></td>
|
516 |
<td>
|
517 |
<div class="sui-form-field {{$error_css_class_<?php echo esc_attr( $item->tag ); ?>_<?php echo esc_attr( $addr ); ?>}}">
|
518 |
<select class="sui-select" name="fields_map[<?php echo esc_attr( $item->tag ); ?>][<?php echo esc_attr( $addr ); ?>]">
|
528 |
</div>
|
529 |
</td>
|
530 |
</tr>
|
531 |
+
<?php
|
532 |
+
}
|
533 |
+
} else {
|
534 |
+
?>
|
535 |
<tr>
|
536 |
+
<td><?php echo esc_html( $item->name ); ?> <?php echo esc_html( $require_sign ); ?></td>
|
537 |
<td>
|
538 |
<div class="sui-form-field {{$error_css_class_<?php echo esc_attr( $item->tag ); ?>}}">
|
539 |
<select class="sui-select" name="fields_map[<?php echo esc_attr( $item->tag ); ?>]">
|
549 |
</div>
|
550 |
</td>
|
551 |
</tr>
|
552 |
+
<?php
|
553 |
+
}
|
554 |
+
}
|
555 |
+
?>
|
556 |
</tbody>
|
557 |
</table>
|
558 |
<?php
|
598 |
public function step_map_fields_validate( $mailchimp_fields_list, $mailchimp_required_fields, $post_data ) {
|
599 |
|
600 |
$forminator_field_element_ids = array();
|
601 |
+
$address_value = array();
|
602 |
foreach ( $this->form_fields as $form_field ) {
|
603 |
$forminator_field_element_ids[] = $form_field['element_id'];
|
604 |
}
|
633 |
|
634 |
//check required fields fulfilled
|
635 |
foreach ( $mailchimp_required_fields as $mailchimp_required_field ) {
|
636 |
+
if ( 'address' === $mailchimp_required_field->type ) {
|
637 |
$address_fields = $this->mail_address_fields();
|
638 |
+
foreach ( $address_fields as $addr => $address ) {
|
639 |
+
if ( 'addr2' !== $addr ) {
|
640 |
if ( ! isset( $post_data[ $mailchimp_required_field->tag ][ $addr ] ) || empty( $post_data[ $mailchimp_required_field->tag ][ $addr ] ) ) {
|
641 |
+
$this->_update_form_settings_error_message =
|
642 |
+
/* translators: ... */
|
643 |
+
sprintf( __( '%s is required by Mailchimp, please choose valid Forminator field.', Forminator::DOMAIN ), $mailchimp_required_field->name );
|
644 |
$input_exceptions->add_sub_input_exception( $this->_update_form_settings_error_message, $mailchimp_required_field->tag, $addr );
|
645 |
}
|
646 |
}
|
647 |
}
|
648 |
}
|
649 |
if ( ! isset( $post_data[ $mailchimp_required_field->tag ] ) || empty( $post_data[ $mailchimp_required_field->tag ] ) ) {
|
650 |
+
$this->_update_form_settings_error_message =
|
651 |
+
/* translators: ... */
|
652 |
+
sprintf( __( '%s is required by Mailchimp, please choose valid Forminator field.', Forminator::DOMAIN ), $mailchimp_required_field->name );
|
653 |
$input_exceptions->add_input_exception( $this->_update_form_settings_error_message, $mailchimp_required_field->tag );
|
654 |
}
|
655 |
}
|
659 |
if ( empty( $forminator_field_id ) ) {
|
660 |
continue;
|
661 |
}
|
662 |
+
if ( is_array( $forminator_field_id ) ) {
|
663 |
foreach ( $forminator_field_id as $addr => $field_id ) {
|
664 |
+
if ( ! empty( $field_id ) ) {
|
665 |
+
$address_value[ $mailchimp_field_tag ][ $addr ] = $field_id;
|
666 |
}
|
667 |
}
|
668 |
foreach ( $forminator_field_id as $addr => $field_id ) {
|
673 |
$mailchimp_field = $tag_maped_mailchimp_fields[ $mailchimp_field_tag ];
|
674 |
$mailchimp_field_name = $mailchimp_field->name;
|
675 |
|
676 |
+
$this->_update_form_settings_error_message =
|
677 |
+
/* translators: ... */
|
678 |
+
sprintf( __( 'Please choose valid Forminator field for %s.', Forminator::DOMAIN ), $mailchimp_field_name );
|
679 |
$input_exceptions->add_sub_input_exception( $this->_update_form_settings_error_message, $mailchimp_field_tag, $addr );
|
680 |
}
|
681 |
}
|
688 |
$mailchimp_field_name = $mailchimp_field->name;
|
689 |
}
|
690 |
|
691 |
+
$this->_update_form_settings_error_message =
|
692 |
+
/* translators: ... */
|
693 |
+
sprintf( __( 'Please choose valid Forminator field for %s.', Forminator::DOMAIN ), $mailchimp_field_name );
|
694 |
$input_exceptions->add_input_exception( $this->_update_form_settings_error_message, $mailchimp_field_tag );
|
695 |
}
|
696 |
}
|
736 |
* save_force_form_disconnect_reason();
|
737 |
*/
|
738 |
|
|
|
739 |
return true;
|
740 |
|
741 |
}
|
addons/pro/mailchimp/{forminator-addon-mailchimp.php → class-forminator-addon-mailchimp.php}
RENAMED
@@ -1,8 +1,8 @@
|
|
1 |
<?php
|
2 |
/** @noinspection HtmlUnknownTarget */
|
3 |
|
4 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-mailchimp-exception.php';
|
5 |
-
require_once dirname( __FILE__ ) . '/lib/class-
|
6 |
|
7 |
/**
|
8 |
* Class Forminator_Addon_Mailchimp
|
@@ -51,13 +51,13 @@ class Forminator_Addon_Mailchimp extends Forminator_Addon_Abstract {
|
|
51 |
* @since 1.0 Mailchimp Addon
|
52 |
* @var string
|
53 |
*/
|
54 |
-
protected $_short_title = '
|
55 |
|
56 |
/**
|
57 |
* @since 1.0 Mailchimp Addon
|
58 |
* @var string
|
59 |
*/
|
60 |
-
protected $_title = '
|
61 |
|
62 |
/**
|
63 |
* @since 1.0 Mailchimp Addon
|
@@ -97,7 +97,7 @@ class Forminator_Addon_Mailchimp extends Forminator_Addon_Abstract {
|
|
97 |
*/
|
98 |
private $_connected_account = array();
|
99 |
|
100 |
-
protected $_position
|
101 |
|
102 |
/**
|
103 |
* Forminator_Addon_Mailchimp constructor.
|
@@ -108,9 +108,9 @@ class Forminator_Addon_Mailchimp extends Forminator_Addon_Abstract {
|
|
108 |
*/
|
109 |
public function __construct() {
|
110 |
// late init to allow translation
|
111 |
-
$this->_description = __( 'Make form data as
|
112 |
-
$this->_activation_error_message = __( 'Sorry but we failed to activate
|
113 |
-
$this->_deactivation_error_message = __( 'Sorry but we failed to deactivate
|
114 |
|
115 |
$this->_update_settings_error_message = __(
|
116 |
'Sorry, we failed to update settings, please check your form and try again',
|
@@ -168,7 +168,7 @@ class Forminator_Addon_Mailchimp extends Forminator_Addon_Abstract {
|
|
168 |
try {
|
169 |
// check if its active
|
170 |
if ( ! $this->is_active() ) {
|
171 |
-
throw new Forminator_Addon_Mailchimp_Exception( __( '
|
172 |
}
|
173 |
|
174 |
// if user completed settings
|
@@ -219,7 +219,7 @@ class Forminator_Addon_Mailchimp extends Forminator_Addon_Abstract {
|
|
219 |
// initialize with null
|
220 |
$form_settings_instance = null;
|
221 |
if ( ! $this->is_connected() ) {
|
222 |
-
throw new Forminator_Addon_Mailchimp_Exception( __( '
|
223 |
}
|
224 |
|
225 |
$form_settings_instance = $this->get_addon_form_settings( $form_id );
|
@@ -270,7 +270,7 @@ class Forminator_Addon_Mailchimp extends Forminator_Addon_Abstract {
|
|
270 |
*/
|
271 |
protected function validate_api_key( $api_key ) {
|
272 |
if ( empty( $api_key ) ) {
|
273 |
-
$this->_update_settings_error_message = __( 'Please add valid
|
274 |
|
275 |
return false;
|
276 |
}
|
@@ -343,7 +343,7 @@ class Forminator_Addon_Mailchimp extends Forminator_Addon_Abstract {
|
|
343 |
|
344 |
// Display how to get mailchimp API Key by default
|
345 |
/* translators: placeholder is URL to get API Key of MailChimp */
|
346 |
-
$help = sprintf( __( 'Please get your
|
347 |
|
348 |
$help = '<span class="sui-description" style="margin-top: 20px;">' . $help . '</span>';
|
349 |
|
@@ -360,7 +360,7 @@ class Forminator_Addon_Mailchimp extends Forminator_Addon_Abstract {
|
|
360 |
|
361 |
// Show currently connected mailchimp account if its already connected
|
362 |
/* translators: placeholder is Name and Email of Connected MailChimp Account */
|
363 |
-
$help = '<span class="sui-description" style="margin-top: 20px;">' . __( 'Change your API Key or disconnect this
|
364 |
|
365 |
}
|
366 |
|
@@ -409,9 +409,9 @@ class Forminator_Addon_Mailchimp extends Forminator_Addon_Abstract {
|
|
409 |
$connected_account = $setting_values['connected_account'];
|
410 |
|
411 |
// Show currently connected mailchimp account if its already connected
|
412 |
-
/* translators: placeholder is Name and Email of Connected MailChimp Account */
|
413 |
$myaccount .= sprintf(
|
414 |
-
|
|
|
415 |
'<strong>' . $connected_account['account_name'] . '</strong>',
|
416 |
$connected_account['email']
|
417 |
);
|
@@ -543,7 +543,10 @@ class Forminator_Addon_Mailchimp extends Forminator_Addon_Abstract {
|
|
543 |
}
|
544 |
|
545 |
return array(
|
546 |
-
'html' => '<div class="integration-header"><h3 class="sui-box-title" id="dialogTitle2">' .
|
|
|
|
|
|
|
547 |
<div class="sui-block-content-center">
|
548 |
<p><small style="color: #666;">' . __( 'You can now go to your forms and assign them to this integration.' ) . '</small></p>
|
549 |
</div>',
|
@@ -560,7 +563,6 @@ class Forminator_Addon_Mailchimp extends Forminator_Addon_Abstract {
|
|
560 |
),
|
561 |
);
|
562 |
}
|
563 |
-
|
564 |
}
|
565 |
}
|
566 |
|
@@ -578,18 +580,21 @@ class Forminator_Addon_Mailchimp extends Forminator_Addon_Abstract {
|
|
578 |
|
579 |
$buttons['submit'] = array(
|
580 |
'markup' => '<div class="sui-actions-right">' .
|
581 |
-
|
582 |
-
|
583 |
);
|
584 |
} else {
|
585 |
$buttons['submit'] = array(
|
586 |
-
'markup' => self::get_button_markup( esc_html__( 'Connect', Forminator::DOMAIN ), 'forminator-addon-connect' )
|
587 |
);
|
588 |
}
|
589 |
|
590 |
return array(
|
591 |
'html' => '<div class="integration-header">
|
592 |
-
<h3 class="sui-box-title" id="dialogTitle2">' .
|
|
|
|
|
|
|
593 |
' . $this->settings_help() . '
|
594 |
' . $error_message . '
|
595 |
</div>
|
@@ -598,7 +603,10 @@ class Forminator_Addon_Mailchimp extends Forminator_Addon_Abstract {
|
|
598 |
<label class="sui-label">' . __( 'API Key', Forminator::DOMAIN ) . '</label>
|
599 |
<div class="sui-control-with-icon">
|
600 |
<input name="api_key"
|
601 |
-
placeholder="' .
|
|
|
|
|
|
|
602 |
value="' . esc_attr( $api_key ) . '"
|
603 |
class="sui-form-control" />
|
604 |
<i class="sui-icon-key" aria-hidden="true"></i>
|
1 |
<?php
|
2 |
/** @noinspection HtmlUnknownTarget */
|
3 |
|
4 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-mailchimp-exception.php';
|
5 |
+
require_once dirname( __FILE__ ) . '/lib/class-forminator-addon-mailchimp-wp-api.php';
|
6 |
|
7 |
/**
|
8 |
* Class Forminator_Addon_Mailchimp
|
51 |
* @since 1.0 Mailchimp Addon
|
52 |
* @var string
|
53 |
*/
|
54 |
+
protected $_short_title = 'Mailchimp';
|
55 |
|
56 |
/**
|
57 |
* @since 1.0 Mailchimp Addon
|
58 |
* @var string
|
59 |
*/
|
60 |
+
protected $_title = 'Mailchimp';
|
61 |
|
62 |
/**
|
63 |
* @since 1.0 Mailchimp Addon
|
97 |
*/
|
98 |
private $_connected_account = array();
|
99 |
|
100 |
+
protected $_position = 2;
|
101 |
|
102 |
/**
|
103 |
* Forminator_Addon_Mailchimp constructor.
|
108 |
*/
|
109 |
public function __construct() {
|
110 |
// late init to allow translation
|
111 |
+
$this->_description = __( 'Make form data as Mailchimp List', Forminator::DOMAIN );
|
112 |
+
$this->_activation_error_message = __( 'Sorry but we failed to activate Mailchimp Integration, don\'t hesitate to contact us', Forminator::DOMAIN );
|
113 |
+
$this->_deactivation_error_message = __( 'Sorry but we failed to deactivate Mailchimp Integration, plese try again', Forminator::DOMAIN );
|
114 |
|
115 |
$this->_update_settings_error_message = __(
|
116 |
'Sorry, we failed to update settings, please check your form and try again',
|
168 |
try {
|
169 |
// check if its active
|
170 |
if ( ! $this->is_active() ) {
|
171 |
+
throw new Forminator_Addon_Mailchimp_Exception( __( 'Mailchimp is not active', Forminator::DOMAIN ) );
|
172 |
}
|
173 |
|
174 |
// if user completed settings
|
219 |
// initialize with null
|
220 |
$form_settings_instance = null;
|
221 |
if ( ! $this->is_connected() ) {
|
222 |
+
throw new Forminator_Addon_Mailchimp_Exception( __( 'Mailchimp addon not connected.', Forminator::DOMAIN ) );
|
223 |
}
|
224 |
|
225 |
$form_settings_instance = $this->get_addon_form_settings( $form_id );
|
270 |
*/
|
271 |
protected function validate_api_key( $api_key ) {
|
272 |
if ( empty( $api_key ) ) {
|
273 |
+
$this->_update_settings_error_message = __( 'Please add valid Mailchimp API Key.', Forminator::DOMAIN );
|
274 |
|
275 |
return false;
|
276 |
}
|
343 |
|
344 |
// Display how to get mailchimp API Key by default
|
345 |
/* translators: placeholder is URL to get API Key of MailChimp */
|
346 |
+
$help = sprintf( __( 'Please get your Mailchimp API key %1$s', Forminator::DOMAIN ), '<a href="https://admin.mailchimp.com/account/api-key-popup" target="_blank">here</a>' );
|
347 |
|
348 |
$help = '<span class="sui-description" style="margin-top: 20px;">' . $help . '</span>';
|
349 |
|
360 |
|
361 |
// Show currently connected mailchimp account if its already connected
|
362 |
/* translators: placeholder is Name and Email of Connected MailChimp Account */
|
363 |
+
$help = '<span class="sui-description" style="margin-top: 20px;">' . __( 'Change your API Key or disconnect this Mailchimp Integration below.' ) . '</span>';
|
364 |
|
365 |
}
|
366 |
|
409 |
$connected_account = $setting_values['connected_account'];
|
410 |
|
411 |
// Show currently connected mailchimp account if its already connected
|
|
|
412 |
$myaccount .= sprintf(
|
413 |
+
/* translators: placeholder is Name and Email of Connected MailChimp Account */
|
414 |
+
__( 'Your Mailchimp is connected to %1$s: %2$s.', Forminator::DOMAIN ),
|
415 |
'<strong>' . $connected_account['account_name'] . '</strong>',
|
416 |
$connected_account['email']
|
417 |
);
|
543 |
}
|
544 |
|
545 |
return array(
|
546 |
+
'html' => '<div class="integration-header"><h3 class="sui-box-title" id="dialogTitle2">' .
|
547 |
+
/* translators: ... */
|
548 |
+
sprintf( __( '%1$s Added', Forminator::DOMAIN ), 'Mailchimp' ) .
|
549 |
+
'</h3></div>
|
550 |
<div class="sui-block-content-center">
|
551 |
<p><small style="color: #666;">' . __( 'You can now go to your forms and assign them to this integration.' ) . '</small></p>
|
552 |
</div>',
|
563 |
),
|
564 |
);
|
565 |
}
|
|
|
566 |
}
|
567 |
}
|
568 |
|
580 |
|
581 |
$buttons['submit'] = array(
|
582 |
'markup' => '<div class="sui-actions-right">' .
|
583 |
+
self::get_button_markup( esc_html__( 'Save', Forminator::DOMAIN ), 'forminator-addon-connect' ) .
|
584 |
+
'</div>',
|
585 |
);
|
586 |
} else {
|
587 |
$buttons['submit'] = array(
|
588 |
+
'markup' => self::get_button_markup( esc_html__( 'Connect', Forminator::DOMAIN ), 'forminator-addon-connect' ),
|
589 |
);
|
590 |
}
|
591 |
|
592 |
return array(
|
593 |
'html' => '<div class="integration-header">
|
594 |
+
<h3 class="sui-box-title" id="dialogTitle2">' .
|
595 |
+
/* translators: ... */
|
596 |
+
sprintf( __( 'Configure %1$s', Forminator::DOMAIN ), 'Mailchimp' ) .
|
597 |
+
'</h3>
|
598 |
' . $this->settings_help() . '
|
599 |
' . $error_message . '
|
600 |
</div>
|
603 |
<label class="sui-label">' . __( 'API Key', Forminator::DOMAIN ) . '</label>
|
604 |
<div class="sui-control-with-icon">
|
605 |
<input name="api_key"
|
606 |
+
placeholder="' .
|
607 |
+
/* translators: ... */
|
608 |
+
sprintf( __( 'Enter %1$s API Key', Forminator::DOMAIN ), 'Mailchimp' ) .
|
609 |
+
'"
|
610 |
value="' . esc_attr( $api_key ) . '"
|
611 |
class="sui-form-control" />
|
612 |
<i class="sui-icon-key" aria-hidden="true"></i>
|
addons/pro/mailchimp/lib/{class-wp-mailchimp-api-exception.php → class-forminator-addon-mailchimp-wp-api-exception.php}
RENAMED
File without changes
|
addons/pro/mailchimp/lib/{class-wp-mailchimp-api-not-found-exception.php → class-forminator-addon-mailchimp-wp-api-not-found-exception.php}
RENAMED
File without changes
|
addons/pro/mailchimp/lib/{class-wp-mailchimp-api.php → class-forminator-addon-mailchimp-wp-api.php}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/class-
|
4 |
-
require_once dirname( __FILE__ ) . '/class-
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Mailchimp_Wp_Api
|
@@ -139,12 +139,11 @@ class Forminator_Addon_Mailchimp_Wp_Api {
|
|
139 |
* @throws Forminator_Addon_Mailchimp_Wp_Api_Exception
|
140 |
* @throws Forminator_Addon_Mailchimp_Wp_Api_Not_Found_Exception
|
141 |
*/
|
142 |
-
private function
|
143 |
// Adding extra user agent for wp remote request
|
144 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
145 |
$url = trailingslashit( $this->_endpoint ) . $path;
|
146 |
|
147 |
-
|
148 |
/**
|
149 |
* Filter mailchimp url to be used on sending api request
|
150 |
*
|
@@ -218,8 +217,12 @@ class Forminator_Addon_Mailchimp_Wp_Api {
|
|
218 |
// Got no response from API
|
219 |
if ( empty( $body ) ) {
|
220 |
forminator_addon_maybe_log( __METHOD__, $res );
|
221 |
-
throw new Forminator_Addon_Mailchimp_Wp_Api_Exception(
|
222 |
-
|
|
|
|
|
|
|
|
|
223 |
}
|
224 |
}
|
225 |
|
@@ -237,6 +240,7 @@ class Forminator_Addon_Mailchimp_Wp_Api {
|
|
237 |
}
|
238 |
$this->_last_data_received = $response;
|
239 |
if ( 404 === $response->status ) {
|
|
|
240 |
throw new Forminator_Addon_Mailchimp_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
241 |
}
|
242 |
/* translators: ... */
|
@@ -290,7 +294,7 @@ class Forminator_Addon_Mailchimp_Wp_Api {
|
|
290 |
$fields = array( 'account_id', 'account_name', 'email' );
|
291 |
}
|
292 |
|
293 |
-
return $this->
|
294 |
'GET',
|
295 |
'',
|
296 |
array(
|
@@ -319,7 +323,7 @@ class Forminator_Addon_Mailchimp_Wp_Api {
|
|
319 |
|
320 |
$args = array_merge( $default_args, $args );
|
321 |
|
322 |
-
return $this->
|
323 |
'GET',
|
324 |
'lists',
|
325 |
$args
|
@@ -347,7 +351,7 @@ class Forminator_Addon_Mailchimp_Wp_Api {
|
|
347 |
|
348 |
$args = array_merge( $default_args, $args );
|
349 |
|
350 |
-
return $this->
|
351 |
'GET',
|
352 |
'lists/' . $list_id . '/merge-fields/',
|
353 |
$args
|
@@ -390,7 +394,7 @@ class Forminator_Addon_Mailchimp_Wp_Api {
|
|
390 |
throw new Forminator_Addon_Mailchimp_Wp_Api_Exception( __( 'Invalid Field Type', Forminator::DOMAIN ) );
|
391 |
}
|
392 |
|
393 |
-
return $this->
|
394 |
'POST',
|
395 |
'lists/' . $list_id . '/merge-fields/',
|
396 |
$args
|
@@ -418,7 +422,7 @@ class Forminator_Addon_Mailchimp_Wp_Api {
|
|
418 |
|
419 |
$args = array_merge( $default_args, $args );
|
420 |
|
421 |
-
return $this->
|
422 |
'GET',
|
423 |
'lists/' . $list_id . '/interest-categories',
|
424 |
$args
|
@@ -447,7 +451,7 @@ class Forminator_Addon_Mailchimp_Wp_Api {
|
|
447 |
|
448 |
$args = array_merge( $default_args, $args );
|
449 |
|
450 |
-
return $this->
|
451 |
'GET',
|
452 |
'lists/' . $list_id . '/interest-categories/' . $category_id . '/interests',
|
453 |
$args
|
@@ -474,8 +478,7 @@ class Forminator_Addon_Mailchimp_Wp_Api {
|
|
474 |
|
475 |
$args = array_merge( $default_args, $args );
|
476 |
|
477 |
-
|
478 |
-
return $this->_request(
|
479 |
'GET',
|
480 |
'lists/' . $list_id . '/members/' . $subscriber_hash,
|
481 |
$args
|
@@ -506,7 +509,7 @@ class Forminator_Addon_Mailchimp_Wp_Api {
|
|
506 |
throw new Forminator_Addon_Mailchimp_Wp_Api_Exception( __( 'email_address are required for mailchimp', Forminator::DOMAIN ) );
|
507 |
}
|
508 |
|
509 |
-
return $this->
|
510 |
'POST',
|
511 |
'lists/' . $list_id . '/members/',
|
512 |
$args
|
@@ -554,7 +557,7 @@ class Forminator_Addon_Mailchimp_Wp_Api {
|
|
554 |
unset( $args['interests'] );
|
555 |
}
|
556 |
|
557 |
-
return $this->
|
558 |
'PUT',
|
559 |
'lists/' . $list_id . '/members/' . $subscriber_hash,
|
560 |
$args
|
@@ -574,7 +577,7 @@ class Forminator_Addon_Mailchimp_Wp_Api {
|
|
574 |
* @throws Forminator_Addon_Mailchimp_Wp_Api_Not_Found_Exception
|
575 |
*/
|
576 |
public function delete_member( $list_id, $subscriber_hash ) {
|
577 |
-
return $this->
|
578 |
'DELETE',
|
579 |
'lists/' . $list_id . '/members/' . $subscriber_hash,
|
580 |
array()
|
@@ -597,7 +600,7 @@ class Forminator_Addon_Mailchimp_Wp_Api {
|
|
597 |
public function delete_( $url ) {
|
598 |
$path = str_ireplace( $this->_endpoint, '', $url );
|
599 |
|
600 |
-
return $this->
|
601 |
}
|
602 |
|
603 |
/**
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-mailchimp-wp-api-exception.php';
|
4 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-mailchimp-wp-api-not-found-exception.php';
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Mailchimp_Wp_Api
|
139 |
* @throws Forminator_Addon_Mailchimp_Wp_Api_Exception
|
140 |
* @throws Forminator_Addon_Mailchimp_Wp_Api_Not_Found_Exception
|
141 |
*/
|
142 |
+
private function request( $verb = 'GET', $path, $args = array() ) {
|
143 |
// Adding extra user agent for wp remote request
|
144 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
145 |
$url = trailingslashit( $this->_endpoint ) . $path;
|
146 |
|
|
|
147 |
/**
|
148 |
* Filter mailchimp url to be used on sending api request
|
149 |
*
|
217 |
// Got no response from API
|
218 |
if ( empty( $body ) ) {
|
219 |
forminator_addon_maybe_log( __METHOD__, $res );
|
220 |
+
throw new Forminator_Addon_Mailchimp_Wp_Api_Exception(
|
221 |
+
__(
|
222 |
+
'Failed to process request, make sure API KEY is correct and your server has internet connection.',
|
223 |
+
Forminator::DOMAIN
|
224 |
+
)
|
225 |
+
);
|
226 |
}
|
227 |
}
|
228 |
|
240 |
}
|
241 |
$this->_last_data_received = $response;
|
242 |
if ( 404 === $response->status ) {
|
243 |
+
/* translators: ... */
|
244 |
throw new Forminator_Addon_Mailchimp_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
245 |
}
|
246 |
/* translators: ... */
|
294 |
$fields = array( 'account_id', 'account_name', 'email' );
|
295 |
}
|
296 |
|
297 |
+
return $this->request(
|
298 |
'GET',
|
299 |
'',
|
300 |
array(
|
323 |
|
324 |
$args = array_merge( $default_args, $args );
|
325 |
|
326 |
+
return $this->request(
|
327 |
'GET',
|
328 |
'lists',
|
329 |
$args
|
351 |
|
352 |
$args = array_merge( $default_args, $args );
|
353 |
|
354 |
+
return $this->request(
|
355 |
'GET',
|
356 |
'lists/' . $list_id . '/merge-fields/',
|
357 |
$args
|
394 |
throw new Forminator_Addon_Mailchimp_Wp_Api_Exception( __( 'Invalid Field Type', Forminator::DOMAIN ) );
|
395 |
}
|
396 |
|
397 |
+
return $this->request(
|
398 |
'POST',
|
399 |
'lists/' . $list_id . '/merge-fields/',
|
400 |
$args
|
422 |
|
423 |
$args = array_merge( $default_args, $args );
|
424 |
|
425 |
+
return $this->request(
|
426 |
'GET',
|
427 |
'lists/' . $list_id . '/interest-categories',
|
428 |
$args
|
451 |
|
452 |
$args = array_merge( $default_args, $args );
|
453 |
|
454 |
+
return $this->request(
|
455 |
'GET',
|
456 |
'lists/' . $list_id . '/interest-categories/' . $category_id . '/interests',
|
457 |
$args
|
478 |
|
479 |
$args = array_merge( $default_args, $args );
|
480 |
|
481 |
+
return $this->request(
|
|
|
482 |
'GET',
|
483 |
'lists/' . $list_id . '/members/' . $subscriber_hash,
|
484 |
$args
|
509 |
throw new Forminator_Addon_Mailchimp_Wp_Api_Exception( __( 'email_address are required for mailchimp', Forminator::DOMAIN ) );
|
510 |
}
|
511 |
|
512 |
+
return $this->request(
|
513 |
'POST',
|
514 |
'lists/' . $list_id . '/members/',
|
515 |
$args
|
557 |
unset( $args['interests'] );
|
558 |
}
|
559 |
|
560 |
+
return $this->request(
|
561 |
'PUT',
|
562 |
'lists/' . $list_id . '/members/' . $subscriber_hash,
|
563 |
$args
|
577 |
* @throws Forminator_Addon_Mailchimp_Wp_Api_Not_Found_Exception
|
578 |
*/
|
579 |
public function delete_member( $list_id, $subscriber_hash ) {
|
580 |
+
return $this->request(
|
581 |
'DELETE',
|
582 |
'lists/' . $list_id . '/members/' . $subscriber_hash,
|
583 |
array()
|
600 |
public function delete_( $url ) {
|
601 |
$path = str_ireplace( $this->_endpoint, '', $url );
|
602 |
|
603 |
+
return $this->request( 'DELETE', $path );
|
604 |
}
|
605 |
|
606 |
/**
|
addons/pro/mailchimp/mailchimp.php
CHANGED
@@ -18,8 +18,8 @@ function forminator_addon_mailchimp_assets_url() {
|
|
18 |
return trailingslashit( forminator_addon_mailchimp_url() . 'assets' );
|
19 |
}
|
20 |
|
21 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-mailchimp.php';
|
22 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-mailchimp-form-settings.php';
|
23 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-mailchimp-form-hooks.php';
|
24 |
//Direct Load
|
25 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Mailchimp' );
|
18 |
return trailingslashit( forminator_addon_mailchimp_url() . 'assets' );
|
19 |
}
|
20 |
|
21 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-mailchimp.php';
|
22 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-mailchimp-form-settings.php';
|
23 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-mailchimp-form-hooks.php';
|
24 |
//Direct Load
|
25 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Mailchimp' );
|
addons/pro/slack/{forminator-addon-slack-exception.php → class-forminator-addon-slack-exception.php}
RENAMED
File without changes
|
addons/pro/slack/{forminator-addon-slack-form-hooks.php → class-forminator-addon-slack-form-hooks.php}
RENAMED
@@ -97,7 +97,6 @@ class Forminator_Addon_Slack_Form_Hooks extends Forminator_Addon_Form_Hooks_Abst
|
|
97 |
'value' => $this->get_status_on_send_message( $key, $submitted_data, $addon_setting_value, $form_entry_fields ),
|
98 |
);
|
99 |
}
|
100 |
-
|
101 |
}
|
102 |
|
103 |
$entry_fields = $data;
|
@@ -267,7 +266,7 @@ class Forminator_Addon_Slack_Form_Hooks extends Forminator_Addon_Form_Hooks_Abst
|
|
267 |
$all_fields_attachments_fields = array();
|
268 |
$form_fields = $this->form_settings_instance->get_form_fields();
|
269 |
$field_format = array();
|
270 |
-
$post_element_ids
|
271 |
foreach ( $form_fields as $form_field ) {
|
272 |
$element_id = $form_field['element_id'];
|
273 |
$field_type = $form_field['type'];
|
@@ -275,12 +274,12 @@ class Forminator_Addon_Slack_Form_Hooks extends Forminator_Addon_Form_Hooks_Abst
|
|
275 |
|
276 |
$post_element_id = $element_id;
|
277 |
if ( stripos( $field_type, 'postdata' ) !== false ) {
|
278 |
-
$post_type
|
279 |
-
$category_list
|
280 |
$post_element_id = str_ireplace( '-post-title', '', $post_element_id );
|
281 |
$post_element_id = str_ireplace( '-post-content', '', $post_element_id );
|
282 |
$post_element_id = str_ireplace( '-post-excerpt', '', $post_element_id );
|
283 |
-
if( ! empty
|
284 |
foreach ( $category_list as $category ) {
|
285 |
$post_element_id = str_ireplace( '-' . $category['value'], '', $post_element_id );
|
286 |
$field_format[] = 'postdata-' . $category['value'];
|
@@ -320,7 +319,7 @@ class Forminator_Addon_Slack_Form_Hooks extends Forminator_Addon_Form_Hooks_Abst
|
|
320 |
break;
|
321 |
}
|
322 |
|
323 |
-
if( in_array( $field_type, $field_format, true ) ) {
|
324 |
|
325 |
$field_value = '{' . $post_element_id . '}';
|
326 |
$field_value = forminator_addon_replace_custom_vars( $field_value, $submitted_data, $this->custom_form, $form_entry_fields, false );
|
@@ -372,7 +371,6 @@ class Forminator_Addon_Slack_Form_Hooks extends Forminator_Addon_Form_Hooks_Abst
|
|
372 |
$form_settings_instance
|
373 |
);
|
374 |
|
375 |
-
|
376 |
$addon_meta_datas = $addon_meta_data;
|
377 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
378 |
return array();
|
@@ -428,7 +426,6 @@ class Forminator_Addon_Slack_Form_Hooks extends Forminator_Addon_Form_Hooks_Abst
|
|
428 |
'value' => '',
|
429 |
);
|
430 |
|
431 |
-
|
432 |
$sub_entries = array();
|
433 |
if ( isset( $status['connection_name'] ) ) {
|
434 |
$sub_entries[] = array(
|
@@ -476,7 +473,6 @@ class Forminator_Addon_Slack_Form_Hooks extends Forminator_Addon_Form_Hooks_Abst
|
|
476 |
}
|
477 |
}
|
478 |
|
479 |
-
|
480 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
481 |
|
482 |
// return single array
|
97 |
'value' => $this->get_status_on_send_message( $key, $submitted_data, $addon_setting_value, $form_entry_fields ),
|
98 |
);
|
99 |
}
|
|
|
100 |
}
|
101 |
|
102 |
$entry_fields = $data;
|
266 |
$all_fields_attachments_fields = array();
|
267 |
$form_fields = $this->form_settings_instance->get_form_fields();
|
268 |
$field_format = array();
|
269 |
+
$post_element_ids = array();
|
270 |
foreach ( $form_fields as $form_field ) {
|
271 |
$element_id = $form_field['element_id'];
|
272 |
$field_type = $form_field['type'];
|
274 |
|
275 |
$post_element_id = $element_id;
|
276 |
if ( stripos( $field_type, 'postdata' ) !== false ) {
|
277 |
+
$post_type = $form_field['post_type'];
|
278 |
+
$category_list = forminator_post_categories( $post_type );
|
279 |
$post_element_id = str_ireplace( '-post-title', '', $post_element_id );
|
280 |
$post_element_id = str_ireplace( '-post-content', '', $post_element_id );
|
281 |
$post_element_id = str_ireplace( '-post-excerpt', '', $post_element_id );
|
282 |
+
if ( ! empty( $category_list ) ) {
|
283 |
foreach ( $category_list as $category ) {
|
284 |
$post_element_id = str_ireplace( '-' . $category['value'], '', $post_element_id );
|
285 |
$field_format[] = 'postdata-' . $category['value'];
|
319 |
break;
|
320 |
}
|
321 |
|
322 |
+
if ( in_array( $field_type, $field_format, true ) ) {
|
323 |
|
324 |
$field_value = '{' . $post_element_id . '}';
|
325 |
$field_value = forminator_addon_replace_custom_vars( $field_value, $submitted_data, $this->custom_form, $form_entry_fields, false );
|
371 |
$form_settings_instance
|
372 |
);
|
373 |
|
|
|
374 |
$addon_meta_datas = $addon_meta_data;
|
375 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
376 |
return array();
|
426 |
'value' => '',
|
427 |
);
|
428 |
|
|
|
429 |
$sub_entries = array();
|
430 |
if ( isset( $status['connection_name'] ) ) {
|
431 |
$sub_entries[] = array(
|
473 |
}
|
474 |
}
|
475 |
|
|
|
476 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
477 |
|
478 |
// return single array
|
addons/pro/slack/{forminator-addon-slack-form-settings-exception.php → class-forminator-addon-slack-form-settings-exception.php}
RENAMED
File without changes
|
addons/pro/slack/{forminator-addon-slack-form-settings.php → class-forminator-addon-slack-form-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-slack-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Slack_Form_Settings
|
@@ -125,15 +125,16 @@ class Forminator_Addon_Slack_Form_Settings extends Forminator_Addon_Form_Setting
|
|
125 |
|
126 |
$buttons = array();
|
127 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
128 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
129 |
-
|
130 |
-
|
|
|
131 |
);
|
132 |
}
|
133 |
|
134 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
135 |
-
|
136 |
-
|
137 |
|
138 |
return array(
|
139 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -197,7 +198,6 @@ class Forminator_Addon_Slack_Form_Settings extends Forminator_Addon_Form_Setting
|
|
197 |
'error_message' => '',
|
198 |
);
|
199 |
|
200 |
-
|
201 |
$is_submit = ! empty( $submitted_data );
|
202 |
$has_errors = false;
|
203 |
|
@@ -233,15 +233,16 @@ class Forminator_Addon_Slack_Form_Settings extends Forminator_Addon_Form_Setting
|
|
233 |
|
234 |
$buttons = array();
|
235 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
236 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
237 |
-
|
238 |
-
|
|
|
239 |
);
|
240 |
}
|
241 |
|
242 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
243 |
-
|
244 |
-
|
245 |
|
246 |
return array(
|
247 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -312,7 +313,6 @@ class Forminator_Addon_Slack_Form_Settings extends Forminator_Addon_Form_Setting
|
|
312 |
'help_message' => '',
|
313 |
);
|
314 |
|
315 |
-
|
316 |
$type = $this->get_multi_id_form_settings_value( $multi_id, 'type', '' );
|
317 |
switch ( $type ) {
|
318 |
case Forminator_Addon_Slack::TARGET_TYPE_PRIVATE_CHANNEL:
|
@@ -332,7 +332,6 @@ class Forminator_Addon_Slack_Form_Settings extends Forminator_Addon_Form_Setting
|
|
332 |
break;
|
333 |
}
|
334 |
|
335 |
-
|
336 |
$is_submit = ! empty( $submitted_data );
|
337 |
$has_errors = false;
|
338 |
|
@@ -389,15 +388,16 @@ class Forminator_Addon_Slack_Form_Settings extends Forminator_Addon_Form_Setting
|
|
389 |
|
390 |
$buttons = array();
|
391 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
392 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
393 |
-
|
394 |
-
|
|
|
395 |
);
|
396 |
}
|
397 |
|
398 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
399 |
-
|
400 |
-
|
401 |
|
402 |
return array(
|
403 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -499,15 +499,16 @@ class Forminator_Addon_Slack_Form_Settings extends Forminator_Addon_Form_Setting
|
|
499 |
|
500 |
$buttons = array();
|
501 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
502 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
503 |
-
|
504 |
-
|
|
|
505 |
);
|
506 |
}
|
507 |
|
508 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
509 |
-
|
510 |
-
|
511 |
|
512 |
return array(
|
513 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-slack-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Slack_Form_Settings
|
125 |
|
126 |
$buttons = array();
|
127 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
128 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
129 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
130 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
131 |
+
esc_html__( 'Deactivate this Slack Integration from this Form.', Forminator::DOMAIN )
|
132 |
);
|
133 |
}
|
134 |
|
135 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
136 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
137 |
+
'</div>';
|
138 |
|
139 |
return array(
|
140 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
198 |
'error_message' => '',
|
199 |
);
|
200 |
|
|
|
201 |
$is_submit = ! empty( $submitted_data );
|
202 |
$has_errors = false;
|
203 |
|
233 |
|
234 |
$buttons = array();
|
235 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
236 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
237 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
238 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
239 |
+
esc_html__( 'Deactivate this Slack Integration from this Form.', Forminator::DOMAIN )
|
240 |
);
|
241 |
}
|
242 |
|
243 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
244 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
245 |
+
'</div>';
|
246 |
|
247 |
return array(
|
248 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
313 |
'help_message' => '',
|
314 |
);
|
315 |
|
|
|
316 |
$type = $this->get_multi_id_form_settings_value( $multi_id, 'type', '' );
|
317 |
switch ( $type ) {
|
318 |
case Forminator_Addon_Slack::TARGET_TYPE_PRIVATE_CHANNEL:
|
332 |
break;
|
333 |
}
|
334 |
|
|
|
335 |
$is_submit = ! empty( $submitted_data );
|
336 |
$has_errors = false;
|
337 |
|
388 |
|
389 |
$buttons = array();
|
390 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
391 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
392 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
393 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
394 |
+
esc_html__( 'Deactivate this Slack Integration from this Form.', Forminator::DOMAIN )
|
395 |
);
|
396 |
}
|
397 |
|
398 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
399 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
400 |
+
'</div>';
|
401 |
|
402 |
return array(
|
403 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
499 |
|
500 |
$buttons = array();
|
501 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
502 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
503 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
504 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
505 |
+
esc_html__( 'Deactivate this Slack Integration from this Form.', Forminator::DOMAIN )
|
506 |
);
|
507 |
}
|
508 |
|
509 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
510 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'CONNECT', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
511 |
+
'</div>';
|
512 |
|
513 |
return array(
|
514 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
addons/pro/slack/{forminator-addon-slack-poll-hooks.php → class-forminator-addon-slack-poll-hooks.php}
RENAMED
@@ -82,7 +82,6 @@ class Forminator_Addon_Slack_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abst
|
|
82 |
'value' => $this->get_status_on_send_message( $key, $submitted_data, $addon_setting_value, $form_entry_fields ),
|
83 |
);
|
84 |
}
|
85 |
-
|
86 |
}
|
87 |
|
88 |
$entry_fields = $data;
|
@@ -143,7 +142,7 @@ class Forminator_Addon_Slack_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abst
|
|
143 |
$text_message = $connection_settings['message'];
|
144 |
$text_message = forminator_replace_variables( $text_message );
|
145 |
|
146 |
-
// {poll_name_replace}
|
147 |
$text_message = str_ireplace( '{poll_name}', forminator_get_name_from_model( $this->poll ), $text_message );
|
148 |
|
149 |
$attachments = $this->get_poll_data_as_attachments( $submitted_data, $poll_entry_fields );
|
@@ -321,7 +320,6 @@ class Forminator_Addon_Slack_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abst
|
|
321 |
'short' => false,
|
322 |
);
|
323 |
}
|
324 |
-
|
325 |
}
|
326 |
|
327 |
$attachments[] = array(
|
@@ -329,7 +327,6 @@ class Forminator_Addon_Slack_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abst
|
|
329 |
'fields' => $attachment_fields,
|
330 |
);
|
331 |
|
332 |
-
|
333 |
return $attachments;
|
334 |
}
|
335 |
|
82 |
'value' => $this->get_status_on_send_message( $key, $submitted_data, $addon_setting_value, $form_entry_fields ),
|
83 |
);
|
84 |
}
|
|
|
85 |
}
|
86 |
|
87 |
$entry_fields = $data;
|
142 |
$text_message = $connection_settings['message'];
|
143 |
$text_message = forminator_replace_variables( $text_message );
|
144 |
|
145 |
+
// {poll_name_replace} //phpcs:ignore
|
146 |
$text_message = str_ireplace( '{poll_name}', forminator_get_name_from_model( $this->poll ), $text_message );
|
147 |
|
148 |
$attachments = $this->get_poll_data_as_attachments( $submitted_data, $poll_entry_fields );
|
320 |
'short' => false,
|
321 |
);
|
322 |
}
|
|
|
323 |
}
|
324 |
|
325 |
$attachments[] = array(
|
327 |
'fields' => $attachment_fields,
|
328 |
);
|
329 |
|
|
|
330 |
return $attachments;
|
331 |
}
|
332 |
|
addons/pro/slack/{forminator-addon-slack-poll-settings-exception.php → class-forminator-addon-slack-poll-settings-exception.php}
RENAMED
File without changes
|
addons/pro/slack/{forminator-addon-slack-poll-settings.php → class-forminator-addon-slack-poll-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-slack-poll-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Slack_Poll_Settings
|
@@ -124,15 +124,16 @@ class Forminator_Addon_Slack_Poll_Settings extends Forminator_Addon_Poll_Setting
|
|
124 |
|
125 |
$buttons = array();
|
126 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
127 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
128 |
-
|
129 |
-
|
|
|
130 |
);
|
131 |
}
|
132 |
|
133 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
134 |
-
|
135 |
-
|
136 |
|
137 |
return array(
|
138 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -196,7 +197,6 @@ class Forminator_Addon_Slack_Poll_Settings extends Forminator_Addon_Poll_Setting
|
|
196 |
'error_message' => '',
|
197 |
);
|
198 |
|
199 |
-
|
200 |
$is_submit = ! empty( $submitted_data );
|
201 |
$has_errors = false;
|
202 |
|
@@ -232,15 +232,16 @@ class Forminator_Addon_Slack_Poll_Settings extends Forminator_Addon_Poll_Setting
|
|
232 |
|
233 |
$buttons = array();
|
234 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
235 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
236 |
-
|
237 |
-
|
|
|
238 |
);
|
239 |
}
|
240 |
|
241 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
242 |
-
|
243 |
-
|
244 |
|
245 |
return array(
|
246 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -311,7 +312,6 @@ class Forminator_Addon_Slack_Poll_Settings extends Forminator_Addon_Poll_Setting
|
|
311 |
'help_message' => '',
|
312 |
);
|
313 |
|
314 |
-
|
315 |
$type = $this->get_multi_id_poll_settings_value( $multi_id, 'type', '' );
|
316 |
switch ( $type ) {
|
317 |
case Forminator_Addon_Slack::TARGET_TYPE_PRIVATE_CHANNEL:
|
@@ -331,7 +331,6 @@ class Forminator_Addon_Slack_Poll_Settings extends Forminator_Addon_Poll_Setting
|
|
331 |
break;
|
332 |
}
|
333 |
|
334 |
-
|
335 |
$is_submit = ! empty( $submitted_data );
|
336 |
$has_errors = false;
|
337 |
|
@@ -388,15 +387,16 @@ class Forminator_Addon_Slack_Poll_Settings extends Forminator_Addon_Poll_Setting
|
|
388 |
|
389 |
$buttons = array();
|
390 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
391 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
392 |
-
|
393 |
-
|
|
|
394 |
);
|
395 |
}
|
396 |
|
397 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
398 |
-
|
399 |
-
|
400 |
|
401 |
return array(
|
402 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -501,15 +501,16 @@ class Forminator_Addon_Slack_Poll_Settings extends Forminator_Addon_Poll_Setting
|
|
501 |
|
502 |
$buttons = array();
|
503 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
504 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
505 |
-
|
506 |
-
|
|
|
507 |
);
|
508 |
}
|
509 |
|
510 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
511 |
-
|
512 |
-
|
513 |
|
514 |
return array(
|
515 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-slack-poll-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Slack_Poll_Settings
|
124 |
|
125 |
$buttons = array();
|
126 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
127 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
128 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
129 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
130 |
+
esc_html__( 'Deactivate this Slack Integration from this Poll.', Forminator::DOMAIN )
|
131 |
);
|
132 |
}
|
133 |
|
134 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
135 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
136 |
+
'</div>';
|
137 |
|
138 |
return array(
|
139 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
197 |
'error_message' => '',
|
198 |
);
|
199 |
|
|
|
200 |
$is_submit = ! empty( $submitted_data );
|
201 |
$has_errors = false;
|
202 |
|
232 |
|
233 |
$buttons = array();
|
234 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
235 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
236 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
237 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
238 |
+
esc_html__( 'Deactivate this Slack Integration from this Poll.', Forminator::DOMAIN )
|
239 |
);
|
240 |
}
|
241 |
|
242 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
243 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
244 |
+
'</div>';
|
245 |
|
246 |
return array(
|
247 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
312 |
'help_message' => '',
|
313 |
);
|
314 |
|
|
|
315 |
$type = $this->get_multi_id_poll_settings_value( $multi_id, 'type', '' );
|
316 |
switch ( $type ) {
|
317 |
case Forminator_Addon_Slack::TARGET_TYPE_PRIVATE_CHANNEL:
|
331 |
break;
|
332 |
}
|
333 |
|
|
|
334 |
$is_submit = ! empty( $submitted_data );
|
335 |
$has_errors = false;
|
336 |
|
387 |
|
388 |
$buttons = array();
|
389 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
390 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
391 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
392 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
393 |
+
esc_html__( 'Deactivate this Slack Integration from this Poll.', Forminator::DOMAIN )
|
394 |
);
|
395 |
}
|
396 |
|
397 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
398 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
399 |
+
'</div>';
|
400 |
|
401 |
return array(
|
402 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
501 |
|
502 |
$buttons = array();
|
503 |
if ( $this->pick_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
504 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
505 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
506 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
507 |
+
esc_html__( 'Deactivate this Slack Integration from this Poll.', Forminator::DOMAIN )
|
508 |
);
|
509 |
}
|
510 |
|
511 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
512 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'CONNECT', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
513 |
+
'</div>';
|
514 |
|
515 |
return array(
|
516 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
addons/pro/slack/{forminator-addon-slack-quiz-hooks.php → class-forminator-addon-slack-quiz-hooks.php}
RENAMED
@@ -82,7 +82,6 @@ class Forminator_Addon_Slack_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abst
|
|
82 |
'value' => $this->get_status_on_send_message( $key, $submitted_data, $addon_setting_value, $form_entry_fields ),
|
83 |
);
|
84 |
}
|
85 |
-
|
86 |
}
|
87 |
|
88 |
$entry_fields = $data;
|
@@ -143,7 +142,7 @@ class Forminator_Addon_Slack_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abst
|
|
143 |
$text_message = $connection_settings['message'];
|
144 |
$text_message = forminator_replace_variables( $text_message );
|
145 |
|
146 |
-
// {quiz_name_replace}
|
147 |
$text_message = str_ireplace( '{quiz_name}', forminator_get_name_from_model( $this->quiz ), $text_message );
|
148 |
|
149 |
$attachments = $this->get_quiz_data_as_attachments( $submitted_data, $quiz_entry_fields );
|
@@ -252,7 +251,6 @@ class Forminator_Addon_Slack_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abst
|
|
252 |
public function get_quiz_data_as_attachments( $submitted_data, $quiz_entry_fields ) {
|
253 |
$attachments = array();
|
254 |
|
255 |
-
|
256 |
/**
|
257 |
* Attachment 1
|
258 |
* Answers
|
@@ -288,9 +286,9 @@ class Forminator_Addon_Slack_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abst
|
|
288 |
}
|
289 |
} elseif ( 'nowrong' === $this->quiz->quiz_type ) {
|
290 |
if ( isset( $quiz_entry['value'][0] )
|
291 |
-
|
292 |
-
|
293 |
-
|
294 |
|
295 |
$quiz_entry = $quiz_entry['value'][0]['value'];
|
296 |
|
@@ -311,7 +309,6 @@ class Forminator_Addon_Slack_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abst
|
|
311 |
}
|
312 |
}
|
313 |
}
|
314 |
-
|
315 |
}
|
316 |
}
|
317 |
}
|
@@ -334,7 +331,6 @@ class Forminator_Addon_Slack_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abst
|
|
334 |
$attachments[] = $attachment;
|
335 |
}
|
336 |
|
337 |
-
|
338 |
/**
|
339 |
* Attachment 2
|
340 |
* Result
|
@@ -366,7 +362,6 @@ class Forminator_Addon_Slack_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abst
|
|
366 |
'color' => 'warning',
|
367 |
);
|
368 |
|
369 |
-
|
370 |
return $attachments;
|
371 |
}
|
372 |
|
@@ -499,7 +494,6 @@ class Forminator_Addon_Slack_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abst
|
|
499 |
$quiz_settings_instance
|
500 |
);
|
501 |
|
502 |
-
|
503 |
$addon_meta_datas = $addon_meta_data;
|
504 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
505 |
return array();
|
@@ -555,7 +549,6 @@ class Forminator_Addon_Slack_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abst
|
|
555 |
'value' => '',
|
556 |
);
|
557 |
|
558 |
-
|
559 |
$sub_entries = array();
|
560 |
if ( isset( $status['connection_name'] ) ) {
|
561 |
$sub_entries[] = array(
|
@@ -603,7 +596,6 @@ class Forminator_Addon_Slack_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abst
|
|
603 |
}
|
604 |
}
|
605 |
|
606 |
-
|
607 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
608 |
|
609 |
// return single array
|
82 |
'value' => $this->get_status_on_send_message( $key, $submitted_data, $addon_setting_value, $form_entry_fields ),
|
83 |
);
|
84 |
}
|
|
|
85 |
}
|
86 |
|
87 |
$entry_fields = $data;
|
142 |
$text_message = $connection_settings['message'];
|
143 |
$text_message = forminator_replace_variables( $text_message );
|
144 |
|
145 |
+
// {quiz_name_replace} //phpcs:ignore
|
146 |
$text_message = str_ireplace( '{quiz_name}', forminator_get_name_from_model( $this->quiz ), $text_message );
|
147 |
|
148 |
$attachments = $this->get_quiz_data_as_attachments( $submitted_data, $quiz_entry_fields );
|
251 |
public function get_quiz_data_as_attachments( $submitted_data, $quiz_entry_fields ) {
|
252 |
$attachments = array();
|
253 |
|
|
|
254 |
/**
|
255 |
* Attachment 1
|
256 |
* Answers
|
286 |
}
|
287 |
} elseif ( 'nowrong' === $this->quiz->quiz_type ) {
|
288 |
if ( isset( $quiz_entry['value'][0] )
|
289 |
+
&& is_array( $quiz_entry['value'][0] )
|
290 |
+
&& isset( $quiz_entry['value'][0]['value'] )
|
291 |
+
&& is_array( $quiz_entry['value'][0]['value'] ) ) {
|
292 |
|
293 |
$quiz_entry = $quiz_entry['value'][0]['value'];
|
294 |
|
309 |
}
|
310 |
}
|
311 |
}
|
|
|
312 |
}
|
313 |
}
|
314 |
}
|
331 |
$attachments[] = $attachment;
|
332 |
}
|
333 |
|
|
|
334 |
/**
|
335 |
* Attachment 2
|
336 |
* Result
|
362 |
'color' => 'warning',
|
363 |
);
|
364 |
|
|
|
365 |
return $attachments;
|
366 |
}
|
367 |
|
494 |
$quiz_settings_instance
|
495 |
);
|
496 |
|
|
|
497 |
$addon_meta_datas = $addon_meta_data;
|
498 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
499 |
return array();
|
549 |
'value' => '',
|
550 |
);
|
551 |
|
|
|
552 |
$sub_entries = array();
|
553 |
if ( isset( $status['connection_name'] ) ) {
|
554 |
$sub_entries[] = array(
|
596 |
}
|
597 |
}
|
598 |
|
|
|
599 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
600 |
|
601 |
// return single array
|
addons/pro/slack/{forminator-addon-slack-quiz-settings-exception.php → class-forminator-addon-slack-quiz-settings-exception.php}
RENAMED
File without changes
|
addons/pro/slack/{forminator-addon-slack-quiz-settings.php → class-forminator-addon-slack-quiz-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-slack-quiz-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Slack_Quiz_Settings
|
@@ -132,8 +132,8 @@ class Forminator_Addon_Slack_Quiz_Settings extends Forminator_Addon_Quiz_Setting
|
|
132 |
}
|
133 |
|
134 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
135 |
-
|
136 |
-
|
137 |
|
138 |
return array(
|
139 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -197,7 +197,6 @@ class Forminator_Addon_Slack_Quiz_Settings extends Forminator_Addon_Quiz_Setting
|
|
197 |
'error_message' => '',
|
198 |
);
|
199 |
|
200 |
-
|
201 |
$is_submit = ! empty( $submitted_data );
|
202 |
$has_errors = false;
|
203 |
|
@@ -241,8 +240,8 @@ class Forminator_Addon_Slack_Quiz_Settings extends Forminator_Addon_Quiz_Setting
|
|
241 |
}
|
242 |
|
243 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
244 |
-
|
245 |
-
|
246 |
|
247 |
return array(
|
248 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -313,7 +312,6 @@ class Forminator_Addon_Slack_Quiz_Settings extends Forminator_Addon_Quiz_Setting
|
|
313 |
'help_message' => '',
|
314 |
);
|
315 |
|
316 |
-
|
317 |
$type = $this->get_multi_id_quiz_settings_value( $multi_id, 'type', '' );
|
318 |
switch ( $type ) {
|
319 |
case Forminator_Addon_Slack::TARGET_TYPE_PRIVATE_CHANNEL:
|
@@ -333,7 +331,6 @@ class Forminator_Addon_Slack_Quiz_Settings extends Forminator_Addon_Quiz_Setting
|
|
333 |
break;
|
334 |
}
|
335 |
|
336 |
-
|
337 |
$is_submit = ! empty( $submitted_data );
|
338 |
$has_errors = false;
|
339 |
|
@@ -398,8 +395,8 @@ class Forminator_Addon_Slack_Quiz_Settings extends Forminator_Addon_Quiz_Setting
|
|
398 |
}
|
399 |
|
400 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
401 |
-
|
402 |
-
|
403 |
|
404 |
return array(
|
405 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -512,8 +509,8 @@ class Forminator_Addon_Slack_Quiz_Settings extends Forminator_Addon_Quiz_Setting
|
|
512 |
}
|
513 |
|
514 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
515 |
-
|
516 |
-
|
517 |
|
518 |
return array(
|
519 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-slack-quiz-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Slack_Quiz_Settings
|
132 |
}
|
133 |
|
134 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
135 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
136 |
+
'</div>';
|
137 |
|
138 |
return array(
|
139 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
197 |
'error_message' => '',
|
198 |
);
|
199 |
|
|
|
200 |
$is_submit = ! empty( $submitted_data );
|
201 |
$has_errors = false;
|
202 |
|
240 |
}
|
241 |
|
242 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
243 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
244 |
+
'</div>';
|
245 |
|
246 |
return array(
|
247 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
312 |
'help_message' => '',
|
313 |
);
|
314 |
|
|
|
315 |
$type = $this->get_multi_id_quiz_settings_value( $multi_id, 'type', '' );
|
316 |
switch ( $type ) {
|
317 |
case Forminator_Addon_Slack::TARGET_TYPE_PRIVATE_CHANNEL:
|
331 |
break;
|
332 |
}
|
333 |
|
|
|
334 |
$is_submit = ! empty( $submitted_data );
|
335 |
$has_errors = false;
|
336 |
|
395 |
}
|
396 |
|
397 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
398 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
399 |
+
'</div>';
|
400 |
|
401 |
return array(
|
402 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
509 |
}
|
510 |
|
511 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
512 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'CONNECT', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
513 |
+
'</div>';
|
514 |
|
515 |
return array(
|
516 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
addons/pro/slack/{forminator-addon-slack.php → class-forminator-addon-slack.php}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-slack-exception.php';
|
4 |
-
require_once dirname( __FILE__ ) . '/lib/class-
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Slack
|
@@ -46,7 +46,7 @@ final class Forminator_Addon_Slack extends Forminator_Addon_Abstract {
|
|
46 |
protected $_quiz_settings = 'Forminator_Addon_Slack_Quiz_Settings';
|
47 |
protected $_quiz_hooks = 'Forminator_Addon_Slack_Quiz_Hooks';
|
48 |
|
49 |
-
protected $_position
|
50 |
|
51 |
/**
|
52 |
* Forminator_Addon_Slack constructor.
|
@@ -108,7 +108,6 @@ final class Forminator_Addon_Slack extends Forminator_Addon_Abstract {
|
|
108 |
if ( isset( $setting_values['token'] ) && ! empty( $setting_values['token'] ) ) {
|
109 |
$is_connected = true;
|
110 |
}
|
111 |
-
|
112 |
} catch ( Forminator_Addon_Slack_Exception $e ) {
|
113 |
$is_connected = false;
|
114 |
}
|
@@ -282,12 +281,12 @@ final class Forminator_Addon_Slack extends Forminator_Addon_Abstract {
|
|
282 |
'markup' => self::get_button_markup( esc_html__( 'Disconnect', Forminator::DOMAIN ), 'sui-button-ghost forminator-addon-disconnect' ),
|
283 |
);
|
284 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
285 |
-
|
286 |
-
|
287 |
} else {
|
288 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
289 |
-
|
290 |
-
|
291 |
}
|
292 |
|
293 |
$template_params = array(
|
@@ -326,7 +325,6 @@ final class Forminator_Addon_Slack extends Forminator_Addon_Abstract {
|
|
326 |
}
|
327 |
}
|
328 |
|
329 |
-
|
330 |
if ( $is_submit ) {
|
331 |
$client_id = isset( $submitted_data['client_id'] ) ? $submitted_data['client_id'] : '';
|
332 |
$client_secret = isset( $submitted_data['client_secret'] ) ? $submitted_data['client_secret'] : '';
|
@@ -358,7 +356,6 @@ final class Forminator_Addon_Slack extends Forminator_Addon_Abstract {
|
|
358 |
$has_errors = true;
|
359 |
}
|
360 |
}
|
361 |
-
|
362 |
}
|
363 |
|
364 |
return array(
|
@@ -405,7 +402,6 @@ final class Forminator_Addon_Slack extends Forminator_Addon_Abstract {
|
|
405 |
);
|
406 |
}
|
407 |
|
408 |
-
|
409 |
$template_params = array(
|
410 |
'auth_url' => $this->get_auth_url(),
|
411 |
'token' => $this->_token,
|
@@ -676,7 +672,6 @@ final class Forminator_Addon_Slack extends Forminator_Addon_Abstract {
|
|
676 |
// catch all exception
|
677 |
$template_params['error_message'] = $e->getMessage();
|
678 |
}
|
679 |
-
|
680 |
} else {
|
681 |
$template_params['error_message'] = __( 'Failed to get authorization code.', Forminator::DOMAIN );
|
682 |
// todo : translate $query_args[error]
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-slack-exception.php';
|
4 |
+
require_once dirname( __FILE__ ) . '/lib/class-forminator-addon-slack-wp-api.php';
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Slack
|
46 |
protected $_quiz_settings = 'Forminator_Addon_Slack_Quiz_Settings';
|
47 |
protected $_quiz_hooks = 'Forminator_Addon_Slack_Quiz_Hooks';
|
48 |
|
49 |
+
protected $_position = 4;
|
50 |
|
51 |
/**
|
52 |
* Forminator_Addon_Slack constructor.
|
108 |
if ( isset( $setting_values['token'] ) && ! empty( $setting_values['token'] ) ) {
|
109 |
$is_connected = true;
|
110 |
}
|
|
|
111 |
} catch ( Forminator_Addon_Slack_Exception $e ) {
|
112 |
$is_connected = false;
|
113 |
}
|
281 |
'markup' => self::get_button_markup( esc_html__( 'Disconnect', Forminator::DOMAIN ), 'sui-button-ghost forminator-addon-disconnect' ),
|
282 |
);
|
283 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
284 |
+
self::get_button_markup( esc_html__( 'RE-AUTHORIZE', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
285 |
+
'</div>';
|
286 |
} else {
|
287 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
288 |
+
self::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
289 |
+
'</div>';
|
290 |
}
|
291 |
|
292 |
$template_params = array(
|
325 |
}
|
326 |
}
|
327 |
|
|
|
328 |
if ( $is_submit ) {
|
329 |
$client_id = isset( $submitted_data['client_id'] ) ? $submitted_data['client_id'] : '';
|
330 |
$client_secret = isset( $submitted_data['client_secret'] ) ? $submitted_data['client_secret'] : '';
|
356 |
$has_errors = true;
|
357 |
}
|
358 |
}
|
|
|
359 |
}
|
360 |
|
361 |
return array(
|
402 |
);
|
403 |
}
|
404 |
|
|
|
405 |
$template_params = array(
|
406 |
'auth_url' => $this->get_auth_url(),
|
407 |
'token' => $this->_token,
|
672 |
// catch all exception
|
673 |
$template_params['error_message'] = $e->getMessage();
|
674 |
}
|
|
|
675 |
} else {
|
676 |
$template_params['error_message'] = __( 'Failed to get authorization code.', Forminator::DOMAIN );
|
677 |
// todo : translate $query_args[error]
|
addons/pro/slack/lib/{class-wp-slack-api-exception.php → class-forminator-addon-slack-wp-api-exception.php}
RENAMED
File without changes
|
addons/pro/slack/lib/{class-wp-slack-api-not-found-exception.php → class-forminator-addon-slack-wp-api-not-found-exception.php}
RENAMED
File without changes
|
addons/pro/slack/lib/{class-wp-slack-api.php → class-forminator-addon-slack-wp-api.php}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/class-
|
4 |
-
require_once dirname( __FILE__ ) . '/class-
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Slack_Wp_Api
|
@@ -133,7 +133,7 @@ class Forminator_Addon_Slack_Wp_Api {
|
|
133 |
* @throws Forminator_Addon_Slack_Wp_Api_Exception
|
134 |
* @throws Forminator_Addon_Slack_Wp_Api_Not_Found_Exception
|
135 |
*/
|
136 |
-
private function
|
137 |
// Adding extra user agent for wp remote request
|
138 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
139 |
|
@@ -218,9 +218,10 @@ class Forminator_Addon_Slack_Wp_Api {
|
|
218 |
}
|
219 |
|
220 |
if ( 404 === $status_code ) {
|
|
|
221 |
throw new Forminator_Addon_Slack_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
222 |
}
|
223 |
-
|
224 |
throw new Forminator_Addon_Slack_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
225 |
}
|
226 |
}
|
@@ -235,6 +236,7 @@ class Forminator_Addon_Slack_Wp_Api {
|
|
235 |
if ( isset( $res->error ) ) {
|
236 |
$msg = $res->error;
|
237 |
}
|
|
|
238 |
throw new Forminator_Addon_Slack_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
239 |
}
|
240 |
}
|
@@ -272,7 +274,7 @@ class Forminator_Addon_Slack_Wp_Api {
|
|
272 |
);
|
273 |
$args = array_merge( $default_args, $args );
|
274 |
|
275 |
-
return $this->
|
276 |
'GET',
|
277 |
'oauth.access',
|
278 |
$args
|
@@ -296,7 +298,7 @@ class Forminator_Addon_Slack_Wp_Api {
|
|
296 |
);
|
297 |
$args = array_merge( $default_args, $args );
|
298 |
|
299 |
-
return $this->
|
300 |
'GET',
|
301 |
'users.list',
|
302 |
$args
|
@@ -322,7 +324,7 @@ class Forminator_Addon_Slack_Wp_Api {
|
|
322 |
);
|
323 |
$args = array_merge( $default_args, $args );
|
324 |
|
325 |
-
return $this->
|
326 |
'GET',
|
327 |
'channels.list',
|
328 |
$args
|
@@ -347,7 +349,7 @@ class Forminator_Addon_Slack_Wp_Api {
|
|
347 |
);
|
348 |
$args = array_merge( $default_args, $args );
|
349 |
|
350 |
-
return $this->
|
351 |
'GET',
|
352 |
'groups.list',
|
353 |
$args
|
@@ -374,7 +376,7 @@ class Forminator_Addon_Slack_Wp_Api {
|
|
374 |
);
|
375 |
$args = array_merge( $default_args, $args );
|
376 |
|
377 |
-
return $this->
|
378 |
'POST',
|
379 |
'chat.postMessage',
|
380 |
$args
|
@@ -401,7 +403,7 @@ class Forminator_Addon_Slack_Wp_Api {
|
|
401 |
);
|
402 |
$args = array_merge( $default_args, $args );
|
403 |
|
404 |
-
return $this->
|
405 |
'POST',
|
406 |
'chat.delete',
|
407 |
$args
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-slack-wp-api-exception.php';
|
4 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-slack-wp-api-not-found-exception.php';
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Slack_Wp_Api
|
133 |
* @throws Forminator_Addon_Slack_Wp_Api_Exception
|
134 |
* @throws Forminator_Addon_Slack_Wp_Api_Not_Found_Exception
|
135 |
*/
|
136 |
+
private function request( $verb = 'GET', $path, $args = array() ) {
|
137 |
// Adding extra user agent for wp remote request
|
138 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
139 |
|
218 |
}
|
219 |
|
220 |
if ( 404 === $status_code ) {
|
221 |
+
/* translators: ... */
|
222 |
throw new Forminator_Addon_Slack_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
223 |
}
|
224 |
+
/* translators: ... */
|
225 |
throw new Forminator_Addon_Slack_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
226 |
}
|
227 |
}
|
236 |
if ( isset( $res->error ) ) {
|
237 |
$msg = $res->error;
|
238 |
}
|
239 |
+
/* translators: ... */
|
240 |
throw new Forminator_Addon_Slack_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
241 |
}
|
242 |
}
|
274 |
);
|
275 |
$args = array_merge( $default_args, $args );
|
276 |
|
277 |
+
return $this->request(
|
278 |
'GET',
|
279 |
'oauth.access',
|
280 |
$args
|
298 |
);
|
299 |
$args = array_merge( $default_args, $args );
|
300 |
|
301 |
+
return $this->request(
|
302 |
'GET',
|
303 |
'users.list',
|
304 |
$args
|
324 |
);
|
325 |
$args = array_merge( $default_args, $args );
|
326 |
|
327 |
+
return $this->request(
|
328 |
'GET',
|
329 |
'channels.list',
|
330 |
$args
|
349 |
);
|
350 |
$args = array_merge( $default_args, $args );
|
351 |
|
352 |
+
return $this->request(
|
353 |
'GET',
|
354 |
'groups.list',
|
355 |
$args
|
376 |
);
|
377 |
$args = array_merge( $default_args, $args );
|
378 |
|
379 |
+
return $this->request(
|
380 |
'POST',
|
381 |
'chat.postMessage',
|
382 |
$args
|
403 |
);
|
404 |
$args = array_merge( $default_args, $args );
|
405 |
|
406 |
+
return $this->request(
|
407 |
'POST',
|
408 |
'chat.delete',
|
409 |
$args
|
addons/pro/slack/slack.php
CHANGED
@@ -23,16 +23,16 @@ function forminator_addon_slack_assets_url() {
|
|
23 |
return trailingslashit( forminator_addon_slack_url() . 'assets' );
|
24 |
}
|
25 |
|
26 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-slack.php';
|
27 |
|
28 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-slack-form-settings.php';
|
29 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-slack-form-hooks.php';
|
30 |
|
31 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-slack-poll-settings.php';
|
32 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-slack-poll-hooks.php';
|
33 |
|
34 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-slack-quiz-settings.php';
|
35 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-slack-quiz-hooks.php';
|
36 |
|
37 |
//Direct Load
|
38 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Slack' );
|
23 |
return trailingslashit( forminator_addon_slack_url() . 'assets' );
|
24 |
}
|
25 |
|
26 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-slack.php';
|
27 |
|
28 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-slack-form-settings.php';
|
29 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-slack-form-hooks.php';
|
30 |
|
31 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-slack-poll-settings.php';
|
32 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-slack-poll-hooks.php';
|
33 |
|
34 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-slack-quiz-settings.php';
|
35 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-slack-quiz-hooks.php';
|
36 |
|
37 |
//Direct Load
|
38 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Slack' );
|
addons/pro/slack/views/form-settings/setup-message.php
CHANGED
@@ -29,9 +29,9 @@ foreach ( $template_vars as $key => $val ) {
|
|
29 |
<div class="sui-insert-variables">
|
30 |
|
31 |
<textarea id="slack_message"
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
|
36 |
<select data-textarea-id="slack_message">
|
37 |
<?php foreach ( $vars['fields'] as $field ) : ?>
|
@@ -48,8 +48,12 @@ foreach ( $template_vars as $key => $val ) {
|
|
48 |
<a href="https://get.slack.help/hc/en-us/articles/202288908-how-can-i-add-formatting-to-my-messages" target="_blank"><?php esc_html_e( 'here.', Forminator::DOMAIN ); ?></a>.
|
49 |
</span>
|
50 |
<span class="sui-description">
|
51 |
-
<?php
|
52 |
-
|
|
|
|
|
|
|
|
|
53 |
<a href="https://api.slack.com/docs/message-attachments" target="_blank"><?php esc_html_e( 'here.', Forminator::DOMAIN ); ?></a>.
|
54 |
</span>
|
55 |
|
29 |
<div class="sui-insert-variables">
|
30 |
|
31 |
<textarea id="slack_message"
|
32 |
+
class="sui-form-control"
|
33 |
+
name="message"
|
34 |
+
placeholder="<?php echo esc_attr( __( 'Message', Forminator::DOMAIN ) ); ?>"><?php echo esc_html( $vars['message'] ); ?></textarea>
|
35 |
|
36 |
<select data-textarea-id="slack_message">
|
37 |
<?php foreach ( $vars['fields'] as $field ) : ?>
|
48 |
<a href="https://get.slack.help/hc/en-us/articles/202288908-how-can-i-add-formatting-to-my-messages" target="_blank"><?php esc_html_e( 'here.', Forminator::DOMAIN ); ?></a>.
|
49 |
</span>
|
50 |
<span class="sui-description">
|
51 |
+
<?php
|
52 |
+
esc_html_e(
|
53 |
+
'By default sent message will include ALL FIELDS as attachment using Forminator Format to ease you up, more information about attachment can be found ',
|
54 |
+
Forminator::DOMAIN
|
55 |
+
);
|
56 |
+
?>
|
57 |
<a href="https://api.slack.com/docs/message-attachments" target="_blank"><?php esc_html_e( 'here.', Forminator::DOMAIN ); ?></a>.
|
58 |
</span>
|
59 |
|
addons/pro/slack/views/poll-settings/setup-message.php
CHANGED
@@ -29,14 +29,14 @@ foreach ( $template_vars as $key => $val ) {
|
|
29 |
<div class="sui-insert-variables">
|
30 |
|
31 |
<textarea id="slack_message"
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
|
36 |
<select data-textarea-id="slack_message">
|
37 |
-
<?php foreach ( $vars['tags'] as $
|
38 |
-
<option value="{<?php echo esc_attr( $
|
39 |
-
|
40 |
<?php endforeach; ?></select>
|
41 |
|
42 |
</div>
|
@@ -49,8 +49,12 @@ foreach ( $template_vars as $key => $val ) {
|
|
49 |
<a href="https://get.slack.help/hc/en-us/articles/202288908-how-can-i-add-formatting-to-my-messages" target="_blank"><?php esc_html_e( 'here.', Forminator::DOMAIN ); ?></a>.
|
50 |
</span>
|
51 |
<span class="sui-description">
|
52 |
-
<?php
|
53 |
-
|
|
|
|
|
|
|
|
|
54 |
<a href="https://api.slack.com/docs/message-attachments" target="_blank"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>
|
55 |
</span>
|
56 |
|
29 |
<div class="sui-insert-variables">
|
30 |
|
31 |
<textarea id="slack_message"
|
32 |
+
class="sui-form-control"
|
33 |
+
name="message"
|
34 |
+
placeholder="<?php echo esc_attr( __( 'Message', Forminator::DOMAIN ) ); ?>"><?php echo esc_html( $vars['message'] ); ?></textarea>
|
35 |
|
36 |
<select data-textarea-id="slack_message">
|
37 |
+
<?php foreach ( $vars['tags'] as $key => $label ) : ?>
|
38 |
+
<option value="{<?php echo esc_attr( $key ); ?>}"
|
39 |
+
data-content="{<?php echo esc_attr( $key ); ?>}"><?php echo esc_html( $label ); ?></option>
|
40 |
<?php endforeach; ?></select>
|
41 |
|
42 |
</div>
|
49 |
<a href="https://get.slack.help/hc/en-us/articles/202288908-how-can-i-add-formatting-to-my-messages" target="_blank"><?php esc_html_e( 'here.', Forminator::DOMAIN ); ?></a>.
|
50 |
</span>
|
51 |
<span class="sui-description">
|
52 |
+
<?php
|
53 |
+
esc_html_e(
|
54 |
+
'By default sent message will include Poll Answer and Poll Results as attachment using Forminator Format to ease you up, more information about attachment can be found ',
|
55 |
+
Forminator::DOMAIN
|
56 |
+
);
|
57 |
+
?>
|
58 |
<a href="https://api.slack.com/docs/message-attachments" target="_blank"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>
|
59 |
</span>
|
60 |
|
addons/pro/slack/views/quiz-settings/setup-message.php
CHANGED
@@ -29,14 +29,14 @@ foreach ( $template_vars as $key => $val ) {
|
|
29 |
<div class="sui-insert-variables">
|
30 |
|
31 |
<textarea id="slack_message"
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
|
36 |
<select data-textarea-id="slack_message">
|
37 |
<?php foreach ( $vars['tags'] as $short_tag => $label ) : ?>
|
38 |
<option value="{<?php echo esc_attr( $short_tag ); ?>}"
|
39 |
-
|
40 |
<?php endforeach; ?></select>
|
41 |
|
42 |
</div>
|
@@ -49,10 +49,12 @@ foreach ( $template_vars as $key => $val ) {
|
|
49 |
<a href="https://get.slack.help/hc/en-us/articles/202288908-how-can-i-add-formatting-to-my-messages" target="_blank"><?php esc_html_e( 'here.', Forminator::DOMAIN ); ?></a>.
|
50 |
</span>
|
51 |
<span class="sui-description">
|
52 |
-
<?php
|
|
|
53 |
'By default sent message will include Quiz Answer and Quiz Result as attachment using Forminator Format to ease you up, more information about attachment can be found ',
|
54 |
Forminator::DOMAIN
|
55 |
-
);
|
|
|
56 |
<a href="https://api.slack.com/docs/message-attachments" target="_blank"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>
|
57 |
</span>
|
58 |
|
29 |
<div class="sui-insert-variables">
|
30 |
|
31 |
<textarea id="slack_message"
|
32 |
+
class="sui-form-control"
|
33 |
+
name="message"
|
34 |
+
placeholder="<?php echo esc_attr( __( 'Message', Forminator::DOMAIN ) ); ?>"><?php echo esc_html( $vars['message'] ); ?></textarea>
|
35 |
|
36 |
<select data-textarea-id="slack_message">
|
37 |
<?php foreach ( $vars['tags'] as $short_tag => $label ) : ?>
|
38 |
<option value="{<?php echo esc_attr( $short_tag ); ?>}"
|
39 |
+
data-content="{<?php echo esc_attr( $short_tag ); ?>}"><?php echo esc_html( $label ); ?></option>
|
40 |
<?php endforeach; ?></select>
|
41 |
|
42 |
</div>
|
49 |
<a href="https://get.slack.help/hc/en-us/articles/202288908-how-can-i-add-formatting-to-my-messages" target="_blank"><?php esc_html_e( 'here.', Forminator::DOMAIN ); ?></a>.
|
50 |
</span>
|
51 |
<span class="sui-description">
|
52 |
+
<?php
|
53 |
+
esc_html_e(
|
54 |
'By default sent message will include Quiz Answer and Quiz Result as attachment using Forminator Format to ease you up, more information about attachment can be found ',
|
55 |
Forminator::DOMAIN
|
56 |
+
);
|
57 |
+
?>
|
58 |
<a href="https://api.slack.com/docs/message-attachments" target="_blank"><?php esc_html_e( 'here', Forminator::DOMAIN ); ?></a>
|
59 |
</span>
|
60 |
|
addons/pro/slack/views/sections/authorize.php
CHANGED
@@ -13,17 +13,18 @@ foreach ( $template_vars as $key => $val ) {
|
|
13 |
<div id="forminator-integrations" class="wpmudev-settings--box">
|
14 |
<div class="sui-box">
|
15 |
<div class="sui-box-header">
|
16 |
-
<h2 class="sui-box-title"><?php esc_html_e(
|
17 |
</div>
|
18 |
<div class="sui-box-body">
|
19 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
20 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
21 |
-
<?php elseif ( $vars['is_close'] ): ?>
|
22 |
<span class="sui-notice sui-notice-success">
|
23 |
<p>
|
24 |
<?php
|
25 |
-
esc_html_e(
|
26 |
-
|
|
|
27 |
);
|
28 |
?>
|
29 |
</p>
|
@@ -40,7 +41,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
40 |
<script>
|
41 |
(function ($) {
|
42 |
$(document).ready(function (e) {
|
43 |
-
<?php if ($vars['is_close']): ?>
|
44 |
setTimeout(function () {
|
45 |
window.close();
|
46 |
}, 3000);
|
13 |
<div id="forminator-integrations" class="wpmudev-settings--box">
|
14 |
<div class="sui-box">
|
15 |
<div class="sui-box-header">
|
16 |
+
<h2 class="sui-box-title"><?php esc_html_e( 'Authorizing Slack', Forminator::DOMAIN ); ?></h2>
|
17 |
</div>
|
18 |
<div class="sui-box-body">
|
19 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
20 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
21 |
+
<?php elseif ( $vars['is_close'] ) : ?>
|
22 |
<span class="sui-notice sui-notice-success">
|
23 |
<p>
|
24 |
<?php
|
25 |
+
esc_html_e(
|
26 |
+
'Successfully authorized Slack, you can go back to integration settings.',
|
27 |
+
Forminator::DOMAIN
|
28 |
);
|
29 |
?>
|
30 |
</p>
|
41 |
<script>
|
42 |
(function ($) {
|
43 |
$(document).ready(function (e) {
|
44 |
+
<?php if ( $vars['is_close'] ) : ?>
|
45 |
setTimeout(function () {
|
46 |
window.close();
|
47 |
}, 3000);
|
addons/pro/slack/views/settings/authorize.php
CHANGED
@@ -10,7 +10,12 @@ foreach ( $template_vars as $key => $val ) {
|
|
10 |
}
|
11 |
?>
|
12 |
<div class="integration-header">
|
13 |
-
<h3 class="sui-box-title" id="dialogTitle2"
|
|
|
|
|
|
|
|
|
|
|
14 |
<?php if ( ! empty( $vars['token'] ) ) : ?>
|
15 |
<p><?php esc_html_e( 'Click button below to re-authorize.', Forminator::DOMAIN ); ?> </p>
|
16 |
<?php else : ?>
|
10 |
}
|
11 |
?>
|
12 |
<div class="integration-header">
|
13 |
+
<h3 class="sui-box-title" id="dialogTitle2">
|
14 |
+
<?php
|
15 |
+
/* translators: ... */
|
16 |
+
echo esc_html( sprintf( __( 'Connect %1$s', Forminator::DOMAIN ), 'Slack' ) );
|
17 |
+
?>
|
18 |
+
</h3>
|
19 |
<?php if ( ! empty( $vars['token'] ) ) : ?>
|
20 |
<p><?php esc_html_e( 'Click button below to re-authorize.', Forminator::DOMAIN ); ?> </p>
|
21 |
<?php else : ?>
|
addons/pro/slack/views/settings/error-authorize.php
CHANGED
@@ -11,7 +11,10 @@ foreach ( $template_vars as $key => $val ) {
|
|
11 |
?>
|
12 |
<div class="integration-header">
|
13 |
<h3 class="sui-box-title" id="dialogTitle2">
|
14 |
-
<?php
|
|
|
|
|
|
|
15 |
</h3>
|
16 |
<p>
|
17 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
11 |
?>
|
12 |
<div class="integration-header">
|
13 |
<h3 class="sui-box-title" id="dialogTitle2">
|
14 |
+
<?php
|
15 |
+
/* translators: ... */
|
16 |
+
echo esc_html( sprintf( __( 'Failed to add %1$s', Forminator::DOMAIN ), 'Slack' ) );
|
17 |
+
?>
|
18 |
</h3>
|
19 |
<p>
|
20 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
addons/pro/slack/views/settings/setup-client.php
CHANGED
@@ -15,7 +15,12 @@ foreach ( $template_vars as $key => $val ) {
|
|
15 |
}
|
16 |
?>
|
17 |
<div class="integration-header">
|
18 |
-
<h3 class="sui-box-title" id="dialogTitle2"
|
|
|
|
|
|
|
|
|
|
|
19 |
<?php if ( ! empty( $vars['token'] ) ) : ?>
|
20 |
<p><?php esc_html_e( 'Your Slack account is already authorized. Edit info below to re-authorize.', Forminator::DOMAIN ); ?> </p>
|
21 |
<?php else : ?>
|
@@ -49,54 +54,79 @@ foreach ( $template_vars as $key => $val ) {
|
|
49 |
<?php esc_html_e( 'Follow these instructions to retrieve your Client ID and Secret.', Forminator::DOMAIN ); ?>
|
50 |
<ol class="instructions" id="clientid-instructions">
|
51 |
<li>
|
52 |
-
<?php
|
53 |
-
|
54 |
-
'
|
55 |
-
|
|
|
|
|
|
|
56 |
</li>
|
57 |
<li>
|
58 |
-
<?php
|
|
|
59 |
'You will need to enter App Name and Development Slack Workspace.',
|
60 |
Forminator::DOMAIN
|
61 |
-
);
|
|
|
62 |
</li>
|
63 |
<li>
|
64 |
-
<?php
|
65 |
-
|
66 |
-
'
|
67 |
-
'<strong>'
|
68 |
-
'
|
69 |
-
'<strong>'
|
70 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
71 |
</li>
|
72 |
<li>
|
73 |
-
<?php
|
74 |
-
|
75 |
-
'
|
76 |
-
'<strong>'
|
77 |
-
'
|
78 |
-
|
|
|
|
|
|
|
|
|
|
|
79 |
<ol>
|
80 |
<li>
|
81 |
-
<?php
|
82 |
-
|
83 |
-
|
84 |
-
|
|
|
|
|
|
|
85 |
</li>
|
86 |
<li>
|
87 |
<?php esc_html_e( 'In the shown input field, put this value below', Forminator::DOMAIN ); ?>
|
88 |
<pre class="sui-code-snippet"><?php echo esc_html( ! empty( $vars['redirect_url'] ) ? $vars['redirect_url'] : '' ); ?></pre>.</li>
|
89 |
<li>
|
90 |
-
<?php
|
91 |
-
|
92 |
-
'
|
93 |
-
|
|
|
|
|
|
|
94 |
</li>
|
95 |
<li>
|
96 |
-
<?php
|
97 |
-
|
98 |
-
'
|
99 |
-
|
|
|
|
|
|
|
100 |
</li>
|
101 |
</ol>
|
102 |
</ol>
|
15 |
}
|
16 |
?>
|
17 |
<div class="integration-header">
|
18 |
+
<h3 class="sui-box-title" id="dialogTitle2">
|
19 |
+
<?php
|
20 |
+
/* translators: ... */
|
21 |
+
echo esc_html( sprintf( __( 'Setup %1$s Client', Forminator::DOMAIN ), 'Slack' ) );
|
22 |
+
?>
|
23 |
+
</h3>
|
24 |
<?php if ( ! empty( $vars['token'] ) ) : ?>
|
25 |
<p><?php esc_html_e( 'Your Slack account is already authorized. Edit info below to re-authorize.', Forminator::DOMAIN ); ?> </p>
|
26 |
<?php else : ?>
|
54 |
<?php esc_html_e( 'Follow these instructions to retrieve your Client ID and Secret.', Forminator::DOMAIN ); ?>
|
55 |
<ol class="instructions" id="clientid-instructions">
|
56 |
<li>
|
57 |
+
<?php
|
58 |
+
echo sprintf(/* translators: ... */
|
59 |
+
esc_html__( 'Go %1$shere%2$s to create new Slack App.', Forminator::DOMAIN ),
|
60 |
+
'<a href="https://api.slack.com/apps?new_app=1" target="_blank">',
|
61 |
+
'</a>'
|
62 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
63 |
+
?>
|
64 |
</li>
|
65 |
<li>
|
66 |
+
<?php
|
67 |
+
esc_html_e(
|
68 |
'You will need to enter App Name and Development Slack Workspace.',
|
69 |
Forminator::DOMAIN
|
70 |
+
);
|
71 |
+
?>
|
72 |
</li>
|
73 |
<li>
|
74 |
+
<?php
|
75 |
+
echo sprintf(/* translators: ... */
|
76 |
+
esc_html__( 'Once the Project creation is completed go to the %1$sBasic Information%2$s. Then scroll through %3$sApp Credentials%4$s, to take a note of %5$sClient ID%6$s and %7$sClient Secret%8$s.', Forminator::DOMAIN ),
|
77 |
+
'<strong>',
|
78 |
+
'</strong>',
|
79 |
+
'<strong>',
|
80 |
+
'</strong>',
|
81 |
+
'<strong>',
|
82 |
+
'</strong>',
|
83 |
+
'<strong>',
|
84 |
+
'</strong>'
|
85 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
86 |
+
?>
|
87 |
</li>
|
88 |
<li>
|
89 |
+
<?php
|
90 |
+
echo sprintf(/* translators: ... */
|
91 |
+
esc_html__( 'Next, go to the %1$sFeatures%2$s > %3$sOAuth & Permissions%4$s > %5$sRedirect URLs%6$s section.', Forminator::DOMAIN ),
|
92 |
+
'<strong>',
|
93 |
+
'</strong>',
|
94 |
+
'<strong>',
|
95 |
+
'</strong>',
|
96 |
+
'<strong>',
|
97 |
+
'</strong>'
|
98 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
99 |
+
?>
|
100 |
<ol>
|
101 |
<li>
|
102 |
+
<?php
|
103 |
+
echo sprintf(/* translators: ... */
|
104 |
+
esc_html__( 'Click %1$sAdd a new Redirect URL%2$s.', Forminator::DOMAIN ),
|
105 |
+
'<strong>',
|
106 |
+
'</strong>'
|
107 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
108 |
+
?>
|
109 |
</li>
|
110 |
<li>
|
111 |
<?php esc_html_e( 'In the shown input field, put this value below', Forminator::DOMAIN ); ?>
|
112 |
<pre class="sui-code-snippet"><?php echo esc_html( ! empty( $vars['redirect_url'] ) ? $vars['redirect_url'] : '' ); ?></pre>.</li>
|
113 |
<li>
|
114 |
+
<?php
|
115 |
+
echo sprintf(/* translators: ... */
|
116 |
+
esc_html__( 'Then click the %1$sAdd%2$s button.', Forminator::DOMAIN ),
|
117 |
+
'<strong>',
|
118 |
+
'</strong>'
|
119 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
120 |
+
?>
|
121 |
</li>
|
122 |
<li>
|
123 |
+
<?php
|
124 |
+
echo sprintf(/* translators: ... */
|
125 |
+
esc_html__( 'Then click the %1$sSave URLs%2$s button.', Forminator::DOMAIN ),
|
126 |
+
'<strong>',
|
127 |
+
'</strong>'
|
128 |
+
); //phpcs:ignore Standard.Category.SniffName.ErrorCode
|
129 |
+
?>
|
130 |
</li>
|
131 |
</ol>
|
132 |
</ol>
|
addons/pro/slack/views/settings/success-authorize.php
CHANGED
@@ -1,6 +1,9 @@
|
|
1 |
<div class="integration-header">
|
2 |
<h3 class="sui-box-title" id="dialogTitle2">
|
3 |
-
<?php
|
|
|
|
|
|
|
4 |
</h3>
|
5 |
<p><?php esc_html_e( 'You can now go to your forms and assign them to this integration', Forminator::DOMAIN ); ?></p>
|
6 |
</div>
|
1 |
<div class="integration-header">
|
2 |
<h3 class="sui-box-title" id="dialogTitle2">
|
3 |
+
<?php
|
4 |
+
/* translators: ... */
|
5 |
+
echo esc_html( sprintf( __( '%1$s Added', Forminator::DOMAIN ), 'Slack' ) );
|
6 |
+
?>
|
7 |
</h3>
|
8 |
<p><?php esc_html_e( 'You can now go to your forms and assign them to this integration', Forminator::DOMAIN ); ?></p>
|
9 |
</div>
|
addons/pro/slack/views/settings/wait-authorize.php
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
<?php
|
2 |
// defaults
|
3 |
$vars = array(
|
4 |
-
'auth_url'
|
5 |
-
'token'
|
6 |
);
|
7 |
/** @var array $template_vars */
|
8 |
foreach ( $template_vars as $key => $val ) {
|
1 |
<?php
|
2 |
// defaults
|
3 |
$vars = array(
|
4 |
+
'auth_url' => '',
|
5 |
+
'token' => '',
|
6 |
);
|
7 |
/** @var array $template_vars */
|
8 |
foreach ( $template_vars as $key => $val ) {
|
addons/pro/trello/{forminator-addon-trello-exception.php → class-forminator-addon-trello-exception.php}
RENAMED
File without changes
|
addons/pro/trello/{forminator-addon-trello-form-hooks.php → class-forminator-addon-trello-form-hooks.php}
RENAMED
@@ -119,7 +119,6 @@ class Forminator_Addon_Trello_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
119 |
'value' => $this->get_status_on_create_card( $key, $submitted_data, $addon_setting_value, $form_entry_fields ),
|
120 |
);
|
121 |
}
|
122 |
-
|
123 |
}
|
124 |
|
125 |
$entry_fields = $data;
|
@@ -333,12 +332,12 @@ class Forminator_Addon_Trello_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
333 |
|
334 |
$post_element_id = $element_id;
|
335 |
if ( stripos( $field_type, 'postdata' ) !== false ) {
|
336 |
-
$post_type
|
337 |
-
$category_list
|
338 |
$post_element_id = str_ireplace( '-post-title', '', $post_element_id );
|
339 |
$post_element_id = str_ireplace( '-post-content', '', $post_element_id );
|
340 |
$post_element_id = str_ireplace( '-post-excerpt', '', $post_element_id );
|
341 |
-
if( ! empty
|
342 |
foreach ( $category_list as $category ) {
|
343 |
$post_element_id = str_ireplace( '-' . $category['value'], '', $post_element_id );
|
344 |
$field_format[] = 'postdata-' . $category['value'];
|
@@ -346,7 +345,6 @@ class Forminator_Addon_Trello_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
346 |
}
|
347 |
$post_element_id = str_ireplace( '-post-image', '', $post_element_id );
|
348 |
|
349 |
-
|
350 |
// only add postdata as single
|
351 |
if ( in_array( $post_element_id, $post_element_ids, true ) ) {
|
352 |
continue;
|
@@ -372,7 +370,7 @@ class Forminator_Addon_Trello_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
372 |
break;
|
373 |
}
|
374 |
|
375 |
-
if( in_array( $field_type, $field_format, true ) ) {
|
376 |
|
377 |
$value_format = '[' . __( 'Edit Post', Forminator::DOMAIN ) . ']({' . $post_element_id . '})';
|
378 |
}
|
@@ -465,7 +463,6 @@ class Forminator_Addon_Trello_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
465 |
$form_settings_instance
|
466 |
);
|
467 |
|
468 |
-
|
469 |
$addon_meta_datas = $addon_meta_data;
|
470 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
471 |
return array();
|
@@ -521,7 +518,6 @@ class Forminator_Addon_Trello_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
521 |
'value' => '',
|
522 |
);
|
523 |
|
524 |
-
|
525 |
$sub_entries = array();
|
526 |
if ( isset( $status['connection_name'] ) ) {
|
527 |
$sub_entries[] = array(
|
@@ -569,7 +565,6 @@ class Forminator_Addon_Trello_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
569 |
}
|
570 |
}
|
571 |
|
572 |
-
|
573 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
574 |
|
575 |
// return single array
|
119 |
'value' => $this->get_status_on_create_card( $key, $submitted_data, $addon_setting_value, $form_entry_fields ),
|
120 |
);
|
121 |
}
|
|
|
122 |
}
|
123 |
|
124 |
$entry_fields = $data;
|
332 |
|
333 |
$post_element_id = $element_id;
|
334 |
if ( stripos( $field_type, 'postdata' ) !== false ) {
|
335 |
+
$post_type = $form_field['post_type'];
|
336 |
+
$category_list = forminator_post_categories( $post_type );
|
337 |
$post_element_id = str_ireplace( '-post-title', '', $post_element_id );
|
338 |
$post_element_id = str_ireplace( '-post-content', '', $post_element_id );
|
339 |
$post_element_id = str_ireplace( '-post-excerpt', '', $post_element_id );
|
340 |
+
if ( ! empty( $category_list ) ) {
|
341 |
foreach ( $category_list as $category ) {
|
342 |
$post_element_id = str_ireplace( '-' . $category['value'], '', $post_element_id );
|
343 |
$field_format[] = 'postdata-' . $category['value'];
|
345 |
}
|
346 |
$post_element_id = str_ireplace( '-post-image', '', $post_element_id );
|
347 |
|
|
|
348 |
// only add postdata as single
|
349 |
if ( in_array( $post_element_id, $post_element_ids, true ) ) {
|
350 |
continue;
|
370 |
break;
|
371 |
}
|
372 |
|
373 |
+
if ( in_array( $field_type, $field_format, true ) ) {
|
374 |
|
375 |
$value_format = '[' . __( 'Edit Post', Forminator::DOMAIN ) . ']({' . $post_element_id . '})';
|
376 |
}
|
463 |
$form_settings_instance
|
464 |
);
|
465 |
|
|
|
466 |
$addon_meta_datas = $addon_meta_data;
|
467 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
468 |
return array();
|
518 |
'value' => '',
|
519 |
);
|
520 |
|
|
|
521 |
$sub_entries = array();
|
522 |
if ( isset( $status['connection_name'] ) ) {
|
523 |
$sub_entries[] = array(
|
565 |
}
|
566 |
}
|
567 |
|
|
|
568 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
569 |
|
570 |
// return single array
|
addons/pro/trello/{forminator-addon-trello-form-settings-exception.php → class-forminator-addon-trello-form-settings-exception.php}
RENAMED
File without changes
|
addons/pro/trello/{forminator-addon-trello-form-settings.php → class-forminator-addon-trello-form-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-trello-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Trello_Form_Settings
|
@@ -116,15 +116,16 @@ class Forminator_Addon_Trello_Form_Settings extends Forminator_Addon_Form_Settin
|
|
116 |
|
117 |
$buttons = array();
|
118 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
119 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
120 |
-
|
121 |
-
|
|
|
122 |
);
|
123 |
}
|
124 |
|
125 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
126 |
-
|
127 |
-
|
128 |
|
129 |
return array(
|
130 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -189,7 +190,6 @@ class Forminator_Addon_Trello_Form_Settings extends Forminator_Addon_Form_Settin
|
|
189 |
'boards' => array(),
|
190 |
);
|
191 |
|
192 |
-
|
193 |
$is_submit = ! empty( $submitted_data );
|
194 |
$has_errors = false;
|
195 |
|
@@ -249,15 +249,16 @@ class Forminator_Addon_Trello_Form_Settings extends Forminator_Addon_Form_Settin
|
|
249 |
|
250 |
$buttons = array();
|
251 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
252 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
253 |
-
|
254 |
-
|
|
|
255 |
);
|
256 |
}
|
257 |
|
258 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
259 |
-
|
260 |
-
|
261 |
|
262 |
return array(
|
263 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -345,6 +346,7 @@ class Forminator_Addon_Trello_Form_Settings extends Forminator_Addon_Form_Settin
|
|
345 |
}
|
346 |
|
347 |
if ( empty( $lists ) ) {
|
|
|
348 |
throw new Forminator_Addon_Trello_Exception( sprintf( __( 'No list found on Trello Board of %1$s. Please create one.', Forminator::DOMAIN ), $board_name ) );
|
349 |
}
|
350 |
|
@@ -387,15 +389,16 @@ class Forminator_Addon_Trello_Form_Settings extends Forminator_Addon_Form_Settin
|
|
387 |
|
388 |
$buttons = array();
|
389 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
390 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
391 |
-
|
392 |
-
|
|
|
393 |
);
|
394 |
}
|
395 |
|
396 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
397 |
-
|
398 |
-
|
399 |
|
400 |
return array(
|
401 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -523,7 +526,6 @@ class Forminator_Addon_Trello_Form_Settings extends Forminator_Addon_Form_Settin
|
|
523 |
$members[ $data->id ] = $display_name;
|
524 |
}
|
525 |
}
|
526 |
-
|
527 |
} catch ( Forminator_Addon_Trello_Exception $e ) {
|
528 |
$template_params['error_message'] = $e->getMessage();
|
529 |
$has_errors = true;
|
@@ -625,15 +627,16 @@ class Forminator_Addon_Trello_Form_Settings extends Forminator_Addon_Form_Settin
|
|
625 |
|
626 |
$buttons = array();
|
627 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
628 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
629 |
-
|
630 |
-
|
|
|
631 |
);
|
632 |
}
|
633 |
|
634 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
635 |
-
|
636 |
-
|
637 |
|
638 |
return array(
|
639 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -765,7 +768,6 @@ class Forminator_Addon_Trello_Form_Settings extends Forminator_Addon_Form_Settin
|
|
765 |
return false;
|
766 |
}
|
767 |
|
768 |
-
|
769 |
return true;
|
770 |
}
|
771 |
}
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-trello-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Trello_Form_Settings
|
116 |
|
117 |
$buttons = array();
|
118 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
119 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
120 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
121 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
122 |
+
esc_html__( 'Deactivate this Trello Integration from this Form.', Forminator::DOMAIN )
|
123 |
);
|
124 |
}
|
125 |
|
126 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
127 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
128 |
+
'</div>';
|
129 |
|
130 |
return array(
|
131 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
190 |
'boards' => array(),
|
191 |
);
|
192 |
|
|
|
193 |
$is_submit = ! empty( $submitted_data );
|
194 |
$has_errors = false;
|
195 |
|
249 |
|
250 |
$buttons = array();
|
251 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
252 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
253 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
254 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
255 |
+
esc_html__( 'Deactivate this Trello Integration from this Form.', Forminator::DOMAIN )
|
256 |
);
|
257 |
}
|
258 |
|
259 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
260 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
261 |
+
'</div>';
|
262 |
|
263 |
return array(
|
264 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
346 |
}
|
347 |
|
348 |
if ( empty( $lists ) ) {
|
349 |
+
/* translators: ... */
|
350 |
throw new Forminator_Addon_Trello_Exception( sprintf( __( 'No list found on Trello Board of %1$s. Please create one.', Forminator::DOMAIN ), $board_name ) );
|
351 |
}
|
352 |
|
389 |
|
390 |
$buttons = array();
|
391 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
392 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
393 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
394 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
395 |
+
esc_html__( 'Deactivate this Trello Integration from this Form.', Forminator::DOMAIN )
|
396 |
);
|
397 |
}
|
398 |
|
399 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
400 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
401 |
+
'</div>';
|
402 |
|
403 |
return array(
|
404 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
526 |
$members[ $data->id ] = $display_name;
|
527 |
}
|
528 |
}
|
|
|
529 |
} catch ( Forminator_Addon_Trello_Exception $e ) {
|
530 |
$template_params['error_message'] = $e->getMessage();
|
531 |
$has_errors = true;
|
627 |
|
628 |
$buttons = array();
|
629 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
630 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
631 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
632 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
633 |
+
esc_html__( 'Deactivate this Trello Integration from this Form.', Forminator::DOMAIN )
|
634 |
);
|
635 |
}
|
636 |
|
637 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
638 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Save', Forminator::DOMAIN ), 'sui-button-primary forminator-addon-finish' ) .
|
639 |
+
'</div>';
|
640 |
|
641 |
return array(
|
642 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
768 |
return false;
|
769 |
}
|
770 |
|
|
|
771 |
return true;
|
772 |
}
|
773 |
}
|
addons/pro/trello/{forminator-addon-trello-poll-hooks.php → class-forminator-addon-trello-poll-hooks.php}
RENAMED
@@ -93,7 +93,6 @@ class Forminator_Addon_Trello_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abs
|
|
93 |
$poll_settings_instance
|
94 |
);
|
95 |
|
96 |
-
|
97 |
$addon_setting_values = $this->poll_settings_instance->get_poll_settings_values();
|
98 |
|
99 |
$data = array();
|
@@ -118,7 +117,6 @@ class Forminator_Addon_Trello_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abs
|
|
118 |
'value' => $this->get_status_on_create_card( $key, $submitted_data, $addon_setting_value, $current_entry_fields ),
|
119 |
);
|
120 |
}
|
121 |
-
|
122 |
}
|
123 |
|
124 |
$entry_fields = $data;
|
@@ -180,7 +178,7 @@ class Forminator_Addon_Trello_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abs
|
|
180 |
$card_name = $connection_settings['card_name'];
|
181 |
// disable all_fields here
|
182 |
$card_name = forminator_replace_variables( $card_name );
|
183 |
-
// {poll_name_replace}
|
184 |
$card_name = str_ireplace( '{poll_name}', forminator_get_name_from_model( $this->poll ), $card_name );
|
185 |
$card_name = str_ireplace( '{poll_answer}', $this->poll_answer_to_plain_text( $submitted_data ), $card_name );
|
186 |
$card_name = str_ireplace( '{poll_result}', $this->poll_result_to_plain_text( $submitted_data ), $card_name );
|
@@ -332,7 +330,7 @@ class Forminator_Addon_Trello_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abs
|
|
332 |
|
333 |
$poll_name = forminator_get_name_from_model( $this->poll );
|
334 |
|
335 |
-
$markdown =
|
336 |
|
337 |
/**
|
338 |
* Filter markdown for `poll_answer`
|
@@ -369,13 +367,12 @@ class Forminator_Addon_Trello_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abs
|
|
369 |
$answer = isset( $fields_labels[ $answer_data ] ) ? $fields_labels[ $answer_data ] : $answer_data;
|
370 |
$extra = $extra_field;
|
371 |
|
372 |
-
$markdown
|
373 |
$markdown .= '**' . __( 'Vote', Forminator::DOMAIN ) . ':** ' . $answer;
|
374 |
if ( ! empty( $extra ) ) {
|
375 |
$markdown .= "\n**" . __( 'Extra', Forminator::DOMAIN ) . ':** ' . $extra;
|
376 |
}
|
377 |
|
378 |
-
|
379 |
/**
|
380 |
* Filter markdown for `poll_answer`
|
381 |
*
|
@@ -439,7 +436,6 @@ class Forminator_Addon_Trello_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abs
|
|
439 |
}
|
440 |
}
|
441 |
|
442 |
-
|
443 |
/**
|
444 |
* Filter markdown for `poll_result`
|
445 |
*
|
@@ -482,7 +478,6 @@ class Forminator_Addon_Trello_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abs
|
|
482 |
$plain_text .= ', ' . $extra;
|
483 |
}
|
484 |
|
485 |
-
|
486 |
/**
|
487 |
* Filter plain text for `poll_answer`
|
488 |
*
|
@@ -546,7 +541,6 @@ class Forminator_Addon_Trello_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abs
|
|
546 |
}
|
547 |
}
|
548 |
|
549 |
-
|
550 |
/**
|
551 |
* Filter markdown for `poll_result`
|
552 |
*
|
93 |
$poll_settings_instance
|
94 |
);
|
95 |
|
|
|
96 |
$addon_setting_values = $this->poll_settings_instance->get_poll_settings_values();
|
97 |
|
98 |
$data = array();
|
117 |
'value' => $this->get_status_on_create_card( $key, $submitted_data, $addon_setting_value, $current_entry_fields ),
|
118 |
);
|
119 |
}
|
|
|
120 |
}
|
121 |
|
122 |
$entry_fields = $data;
|
178 |
$card_name = $connection_settings['card_name'];
|
179 |
// disable all_fields here
|
180 |
$card_name = forminator_replace_variables( $card_name );
|
181 |
+
// {poll_name_replace} //phpcs:ignore
|
182 |
$card_name = str_ireplace( '{poll_name}', forminator_get_name_from_model( $this->poll ), $card_name );
|
183 |
$card_name = str_ireplace( '{poll_answer}', $this->poll_answer_to_plain_text( $submitted_data ), $card_name );
|
184 |
$card_name = str_ireplace( '{poll_result}', $this->poll_result_to_plain_text( $submitted_data ), $card_name );
|
330 |
|
331 |
$poll_name = forminator_get_name_from_model( $this->poll );
|
332 |
|
333 |
+
$markdown = '##' . $poll_name . "\n";
|
334 |
|
335 |
/**
|
336 |
* Filter markdown for `poll_answer`
|
367 |
$answer = isset( $fields_labels[ $answer_data ] ) ? $fields_labels[ $answer_data ] : $answer_data;
|
368 |
$extra = $extra_field;
|
369 |
|
370 |
+
$markdown = '##' . __( 'Poll Answer', Forminator::DOMAIN ) . "\n";
|
371 |
$markdown .= '**' . __( 'Vote', Forminator::DOMAIN ) . ':** ' . $answer;
|
372 |
if ( ! empty( $extra ) ) {
|
373 |
$markdown .= "\n**" . __( 'Extra', Forminator::DOMAIN ) . ':** ' . $extra;
|
374 |
}
|
375 |
|
|
|
376 |
/**
|
377 |
* Filter markdown for `poll_answer`
|
378 |
*
|
436 |
}
|
437 |
}
|
438 |
|
|
|
439 |
/**
|
440 |
* Filter markdown for `poll_result`
|
441 |
*
|
478 |
$plain_text .= ', ' . $extra;
|
479 |
}
|
480 |
|
|
|
481 |
/**
|
482 |
* Filter plain text for `poll_answer`
|
483 |
*
|
541 |
}
|
542 |
}
|
543 |
|
|
|
544 |
/**
|
545 |
* Filter markdown for `poll_result`
|
546 |
*
|
addons/pro/trello/{forminator-addon-trello-poll-settings-exception.php → class-forminator-addon-trello-poll-settings-exception.php}
RENAMED
File without changes
|
addons/pro/trello/{forminator-addon-trello-poll-settings.php → class-forminator-addon-trello-poll-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-trello-poll-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Trello_Poll_Settings
|
@@ -116,15 +116,16 @@ class Forminator_Addon_Trello_Poll_Settings extends Forminator_Addon_Poll_Settin
|
|
116 |
|
117 |
$buttons = array();
|
118 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
119 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
120 |
-
|
121 |
-
|
|
|
122 |
);
|
123 |
}
|
124 |
|
125 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
126 |
-
|
127 |
-
|
128 |
|
129 |
return array(
|
130 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -189,7 +190,6 @@ class Forminator_Addon_Trello_Poll_Settings extends Forminator_Addon_Poll_Settin
|
|
189 |
'boards' => array(),
|
190 |
);
|
191 |
|
192 |
-
|
193 |
$is_submit = ! empty( $submitted_data );
|
194 |
$has_errors = false;
|
195 |
|
@@ -249,15 +249,16 @@ class Forminator_Addon_Trello_Poll_Settings extends Forminator_Addon_Poll_Settin
|
|
249 |
|
250 |
$buttons = array();
|
251 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
252 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
253 |
-
|
254 |
-
|
|
|
255 |
);
|
256 |
}
|
257 |
|
258 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
259 |
-
|
260 |
-
|
261 |
|
262 |
return array(
|
263 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -345,6 +346,7 @@ class Forminator_Addon_Trello_Poll_Settings extends Forminator_Addon_Poll_Settin
|
|
345 |
}
|
346 |
|
347 |
if ( empty( $lists ) ) {
|
|
|
348 |
throw new Forminator_Addon_Trello_Exception( sprintf( __( 'No list found on Trello Board of %1$s. Please create one.', Forminator::DOMAIN ), $board_name ) );
|
349 |
}
|
350 |
|
@@ -387,15 +389,16 @@ class Forminator_Addon_Trello_Poll_Settings extends Forminator_Addon_Poll_Settin
|
|
387 |
|
388 |
$buttons = array();
|
389 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
390 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
391 |
-
|
392 |
-
|
|
|
393 |
);
|
394 |
}
|
395 |
|
396 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
397 |
-
|
398 |
-
|
399 |
|
400 |
return array(
|
401 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -461,7 +464,6 @@ class Forminator_Addon_Trello_Poll_Settings extends Forminator_Addon_Poll_Settin
|
|
461 |
//todo: validate this, step wizard back if needed
|
462 |
$board_id = $this->get_multi_id_poll_settings_value( $multi_id, 'board_id', '' );
|
463 |
|
464 |
-
|
465 |
$template_params = array(
|
466 |
'card_name' => $this->get_multi_id_poll_settings_value( $multi_id, 'card_name', 'New votes from {poll_name}' ),
|
467 |
'card_name_error' => '',
|
@@ -531,7 +533,6 @@ class Forminator_Addon_Trello_Poll_Settings extends Forminator_Addon_Poll_Settin
|
|
531 |
$members[ $data->id ] = $display_name;
|
532 |
}
|
533 |
}
|
534 |
-
|
535 |
} catch ( Forminator_Addon_Trello_Exception $e ) {
|
536 |
$template_params['error_message'] = $e->getMessage();
|
537 |
$has_errors = true;
|
@@ -633,15 +634,16 @@ class Forminator_Addon_Trello_Poll_Settings extends Forminator_Addon_Poll_Settin
|
|
633 |
|
634 |
$buttons = array();
|
635 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
636 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
637 |
-
|
638 |
-
|
|
|
639 |
);
|
640 |
}
|
641 |
|
642 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
643 |
-
|
644 |
-
|
645 |
|
646 |
return array(
|
647 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -773,7 +775,6 @@ class Forminator_Addon_Trello_Poll_Settings extends Forminator_Addon_Poll_Settin
|
|
773 |
return false;
|
774 |
}
|
775 |
|
776 |
-
|
777 |
return true;
|
778 |
}
|
779 |
}
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-trello-poll-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Trello_Poll_Settings
|
116 |
|
117 |
$buttons = array();
|
118 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
119 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
120 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
121 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
122 |
+
esc_html__( 'Deactivate this Trello Integration from this Poll.', Forminator::DOMAIN )
|
123 |
);
|
124 |
}
|
125 |
|
126 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
127 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
128 |
+
'</div>';
|
129 |
|
130 |
return array(
|
131 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
190 |
'boards' => array(),
|
191 |
);
|
192 |
|
|
|
193 |
$is_submit = ! empty( $submitted_data );
|
194 |
$has_errors = false;
|
195 |
|
249 |
|
250 |
$buttons = array();
|
251 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
252 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
253 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
254 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
255 |
+
esc_html__( 'Deactivate this Trello Integration from this Poll.', Forminator::DOMAIN )
|
256 |
);
|
257 |
}
|
258 |
|
259 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
260 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
261 |
+
'</div>';
|
262 |
|
263 |
return array(
|
264 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
346 |
}
|
347 |
|
348 |
if ( empty( $lists ) ) {
|
349 |
+
/* translators: ... */
|
350 |
throw new Forminator_Addon_Trello_Exception( sprintf( __( 'No list found on Trello Board of %1$s. Please create one.', Forminator::DOMAIN ), $board_name ) );
|
351 |
}
|
352 |
|
389 |
|
390 |
$buttons = array();
|
391 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
392 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
393 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
394 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
395 |
+
esc_html__( 'Deactivate this Trello Integration from this Poll.', Forminator::DOMAIN )
|
396 |
);
|
397 |
}
|
398 |
|
399 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
400 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
401 |
+
'</div>';
|
402 |
|
403 |
return array(
|
404 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
464 |
//todo: validate this, step wizard back if needed
|
465 |
$board_id = $this->get_multi_id_poll_settings_value( $multi_id, 'board_id', '' );
|
466 |
|
|
|
467 |
$template_params = array(
|
468 |
'card_name' => $this->get_multi_id_poll_settings_value( $multi_id, 'card_name', 'New votes from {poll_name}' ),
|
469 |
'card_name_error' => '',
|
533 |
$members[ $data->id ] = $display_name;
|
534 |
}
|
535 |
}
|
|
|
536 |
} catch ( Forminator_Addon_Trello_Exception $e ) {
|
537 |
$template_params['error_message'] = $e->getMessage();
|
538 |
$has_errors = true;
|
634 |
|
635 |
$buttons = array();
|
636 |
if ( $this->setup_name_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
637 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Abstract::get_button_markup(
|
638 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
639 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
640 |
+
esc_html__( 'Deactivate this Trello Integration from this Poll.', Forminator::DOMAIN )
|
641 |
);
|
642 |
}
|
643 |
|
644 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
645 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Save', Forminator::DOMAIN ), 'sui-button-primary forminator-addon-finish' ) .
|
646 |
+
'</div>';
|
647 |
|
648 |
return array(
|
649 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
775 |
return false;
|
776 |
}
|
777 |
|
|
|
778 |
return true;
|
779 |
}
|
780 |
}
|
addons/pro/trello/{forminator-addon-trello-quiz-hooks.php → class-forminator-addon-trello-quiz-hooks.php}
RENAMED
@@ -93,7 +93,6 @@ class Forminator_Addon_Trello_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
93 |
$quiz_settings_instance
|
94 |
);
|
95 |
|
96 |
-
|
97 |
$addon_setting_values = $this->quiz_settings_instance->get_quiz_settings_values();
|
98 |
|
99 |
$data = array();
|
@@ -118,7 +117,6 @@ class Forminator_Addon_Trello_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
118 |
'value' => $this->get_status_on_create_card( $key, $submitted_data, $addon_setting_value, $current_entry_fields ),
|
119 |
);
|
120 |
}
|
121 |
-
|
122 |
}
|
123 |
|
124 |
$entry_fields = $data;
|
@@ -180,7 +178,7 @@ class Forminator_Addon_Trello_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
180 |
$card_name = $connection_settings['card_name'];
|
181 |
// disable all_fields here
|
182 |
$card_name = forminator_replace_variables( $card_name );
|
183 |
-
// {quizname_replace}
|
184 |
$card_name = str_ireplace( '{quiz_name}', forminator_get_name_from_model( $this->quiz ), $card_name );
|
185 |
|
186 |
/**
|
@@ -338,18 +336,17 @@ class Forminator_Addon_Trello_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
338 |
$answer = isset( $data['answer'] ) ? $data['answer'] : '';
|
339 |
$is_correct = isset( $data['isCorrect'] ) ? $data['isCorrect'] : false;
|
340 |
|
341 |
-
$markdown .=
|
342 |
$markdown .= $answer . "\n";
|
343 |
$markdown .= __( 'Correct : ', Forminator::DOMAIN )
|
344 |
-
|
345 |
-
|
346 |
}
|
347 |
-
|
348 |
} elseif ( 'nowrong' === $this->quiz->quiz_type ) {
|
349 |
if ( isset( $quiz_entry['value'][0] )
|
350 |
-
|
351 |
-
|
352 |
-
|
353 |
|
354 |
$quiz_entry = $quiz_entry['value'][0]['value'];
|
355 |
|
@@ -359,7 +356,7 @@ class Forminator_Addon_Trello_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
359 |
$question = isset( $entry_question['question'] ) ? $entry_question['question'] : '';
|
360 |
$answer = isset( $entry_question['answer'] ) ? $entry_question['answer'] : '';
|
361 |
|
362 |
-
$markdown .=
|
363 |
$markdown .= $answer . "\n";
|
364 |
}
|
365 |
}
|
@@ -414,24 +411,24 @@ class Forminator_Addon_Trello_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
414 |
|
415 |
$markdown .= '##' . __( 'Quiz Result', Forminator::DOMAIN ) . "\n";
|
416 |
$markdown .= __( 'Correct Answers : ', Forminator::DOMAIN )
|
417 |
-
|
418 |
-
|
419 |
$markdown .= __( 'Total Answers : ', Forminator::DOMAIN )
|
420 |
-
|
421 |
-
|
422 |
|
423 |
} elseif ( 'nowrong' === $this->quiz->quiz_type ) {
|
424 |
if ( isset( $quiz_entry['value'][0] )
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
|
429 |
$quiz_entry = $quiz_entry['value'][0]['value'];
|
430 |
$nowrong_result = ( isset( $quiz_entry['result'] ) && isset( $quiz_entry['result']['title'] ) ) ? $quiz_entry['result']['title'] : '';
|
431 |
|
432 |
$markdown .= '##' . __( 'Quiz Result', Forminator::DOMAIN ) . "\n";
|
433 |
$markdown .= '**' . $nowrong_result . '**'
|
434 |
-
|
435 |
|
436 |
}
|
437 |
}
|
@@ -584,7 +581,6 @@ class Forminator_Addon_Trello_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
584 |
$quiz_settings_instance
|
585 |
);
|
586 |
|
587 |
-
|
588 |
$addon_meta_datas = $addon_meta_data;
|
589 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
590 |
return array();
|
@@ -640,7 +636,6 @@ class Forminator_Addon_Trello_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
640 |
'value' => '',
|
641 |
);
|
642 |
|
643 |
-
|
644 |
$sub_entries = array();
|
645 |
if ( isset( $status['connection_name'] ) ) {
|
646 |
$sub_entries[] = array(
|
@@ -688,7 +683,6 @@ class Forminator_Addon_Trello_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
688 |
}
|
689 |
}
|
690 |
|
691 |
-
|
692 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
693 |
|
694 |
// return single array
|
93 |
$quiz_settings_instance
|
94 |
);
|
95 |
|
|
|
96 |
$addon_setting_values = $this->quiz_settings_instance->get_quiz_settings_values();
|
97 |
|
98 |
$data = array();
|
117 |
'value' => $this->get_status_on_create_card( $key, $submitted_data, $addon_setting_value, $current_entry_fields ),
|
118 |
);
|
119 |
}
|
|
|
120 |
}
|
121 |
|
122 |
$entry_fields = $data;
|
178 |
$card_name = $connection_settings['card_name'];
|
179 |
// disable all_fields here
|
180 |
$card_name = forminator_replace_variables( $card_name );
|
181 |
+
// {quizname_replace} //phpcs:ignore
|
182 |
$card_name = str_ireplace( '{quiz_name}', forminator_get_name_from_model( $this->quiz ), $card_name );
|
183 |
|
184 |
/**
|
336 |
$answer = isset( $data['answer'] ) ? $data['answer'] : '';
|
337 |
$is_correct = isset( $data['isCorrect'] ) ? $data['isCorrect'] : false;
|
338 |
|
339 |
+
$markdown .= '###' . $question . "\n";
|
340 |
$markdown .= $answer . "\n";
|
341 |
$markdown .= __( 'Correct : ', Forminator::DOMAIN )
|
342 |
+
. '**' . ( $is_correct ? __( 'Yes', Forminator::DOMAIN ) : __( 'No', Forminator::DOMAIN ) ) . '**'
|
343 |
+
. "\n";
|
344 |
}
|
|
|
345 |
} elseif ( 'nowrong' === $this->quiz->quiz_type ) {
|
346 |
if ( isset( $quiz_entry['value'][0] )
|
347 |
+
&& is_array( $quiz_entry['value'][0] )
|
348 |
+
&& isset( $quiz_entry['value'][0]['value'] )
|
349 |
+
&& is_array( $quiz_entry['value'][0]['value'] ) ) {
|
350 |
|
351 |
$quiz_entry = $quiz_entry['value'][0]['value'];
|
352 |
|
356 |
$question = isset( $entry_question['question'] ) ? $entry_question['question'] : '';
|
357 |
$answer = isset( $entry_question['answer'] ) ? $entry_question['answer'] : '';
|
358 |
|
359 |
+
$markdown .= '###' . $question . "\n";
|
360 |
$markdown .= $answer . "\n";
|
361 |
}
|
362 |
}
|
411 |
|
412 |
$markdown .= '##' . __( 'Quiz Result', Forminator::DOMAIN ) . "\n";
|
413 |
$markdown .= __( 'Correct Answers : ', Forminator::DOMAIN )
|
414 |
+
. '**' . $total_correct . '**'
|
415 |
+
. "\n";
|
416 |
$markdown .= __( 'Total Answers : ', Forminator::DOMAIN )
|
417 |
+
. '**' . $total_answers . '**'
|
418 |
+
. "\n";
|
419 |
|
420 |
} elseif ( 'nowrong' === $this->quiz->quiz_type ) {
|
421 |
if ( isset( $quiz_entry['value'][0] )
|
422 |
+
&& is_array( $quiz_entry['value'][0] )
|
423 |
+
&& isset( $quiz_entry['value'][0]['value'] )
|
424 |
+
&& is_array( $quiz_entry['value'][0]['value'] ) ) {
|
425 |
|
426 |
$quiz_entry = $quiz_entry['value'][0]['value'];
|
427 |
$nowrong_result = ( isset( $quiz_entry['result'] ) && isset( $quiz_entry['result']['title'] ) ) ? $quiz_entry['result']['title'] : '';
|
428 |
|
429 |
$markdown .= '##' . __( 'Quiz Result', Forminator::DOMAIN ) . "\n";
|
430 |
$markdown .= '**' . $nowrong_result . '**'
|
431 |
+
. "\n";
|
432 |
|
433 |
}
|
434 |
}
|
581 |
$quiz_settings_instance
|
582 |
);
|
583 |
|
|
|
584 |
$addon_meta_datas = $addon_meta_data;
|
585 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
586 |
return array();
|
636 |
'value' => '',
|
637 |
);
|
638 |
|
|
|
639 |
$sub_entries = array();
|
640 |
if ( isset( $status['connection_name'] ) ) {
|
641 |
$sub_entries[] = array(
|
683 |
}
|
684 |
}
|
685 |
|
|
|
686 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
687 |
|
688 |
// return single array
|
addons/pro/trello/{forminator-addon-trello-quiz-settings-exception.php → class-forminator-addon-trello-quiz-settings-exception.php}
RENAMED
File without changes
|
addons/pro/trello/{forminator-addon-trello-quiz-settings.php → class-forminator-addon-trello-quiz-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-trello-quiz-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Trello_Quiz_Settings
|
@@ -124,8 +124,8 @@ class Forminator_Addon_Trello_Quiz_Settings extends Forminator_Addon_Quiz_Settin
|
|
124 |
}
|
125 |
|
126 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
127 |
-
|
128 |
-
|
129 |
|
130 |
return array(
|
131 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -190,7 +190,6 @@ class Forminator_Addon_Trello_Quiz_Settings extends Forminator_Addon_Quiz_Settin
|
|
190 |
'boards' => array(),
|
191 |
);
|
192 |
|
193 |
-
|
194 |
$is_submit = ! empty( $submitted_data );
|
195 |
$has_errors = false;
|
196 |
|
@@ -258,8 +257,8 @@ class Forminator_Addon_Trello_Quiz_Settings extends Forminator_Addon_Quiz_Settin
|
|
258 |
}
|
259 |
|
260 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
261 |
-
|
262 |
-
|
263 |
|
264 |
return array(
|
265 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -347,6 +346,7 @@ class Forminator_Addon_Trello_Quiz_Settings extends Forminator_Addon_Quiz_Settin
|
|
347 |
}
|
348 |
|
349 |
if ( empty( $lists ) ) {
|
|
|
350 |
throw new Forminator_Addon_Trello_Exception( sprintf( __( 'No list found on Trello Board of %1$s. Please create one.', Forminator::DOMAIN ), $board_name ) );
|
351 |
}
|
352 |
|
@@ -397,8 +397,8 @@ class Forminator_Addon_Trello_Quiz_Settings extends Forminator_Addon_Quiz_Settin
|
|
397 |
}
|
398 |
|
399 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
400 |
-
|
401 |
-
|
402 |
|
403 |
return array(
|
404 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -464,7 +464,6 @@ class Forminator_Addon_Trello_Quiz_Settings extends Forminator_Addon_Quiz_Settin
|
|
464 |
//todo: validate this, step wizard back if needed
|
465 |
$board_id = $this->get_multi_id_quiz_settings_value( $multi_id, 'board_id', '' );
|
466 |
|
467 |
-
|
468 |
$template_params = array(
|
469 |
'card_name' => $this->get_multi_id_quiz_settings_value( $multi_id, 'card_name', 'New submission from {quiz_name}' ),
|
470 |
'card_name_error' => '',
|
@@ -534,7 +533,6 @@ class Forminator_Addon_Trello_Quiz_Settings extends Forminator_Addon_Quiz_Settin
|
|
534 |
$members[ $data->id ] = $display_name;
|
535 |
}
|
536 |
}
|
537 |
-
|
538 |
} catch ( Forminator_Addon_Trello_Exception $e ) {
|
539 |
$template_params['error_message'] = $e->getMessage();
|
540 |
$has_errors = true;
|
@@ -644,8 +642,8 @@ class Forminator_Addon_Trello_Quiz_Settings extends Forminator_Addon_Quiz_Settin
|
|
644 |
}
|
645 |
|
646 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
647 |
-
|
648 |
-
|
649 |
|
650 |
return array(
|
651 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -777,7 +775,6 @@ class Forminator_Addon_Trello_Quiz_Settings extends Forminator_Addon_Quiz_Settin
|
|
777 |
return false;
|
778 |
}
|
779 |
|
780 |
-
|
781 |
return true;
|
782 |
}
|
783 |
}
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-trello-quiz-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Trello_Quiz_Settings
|
124 |
}
|
125 |
|
126 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
127 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
128 |
+
'</div>';
|
129 |
|
130 |
return array(
|
131 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
190 |
'boards' => array(),
|
191 |
);
|
192 |
|
|
|
193 |
$is_submit = ! empty( $submitted_data );
|
194 |
$has_errors = false;
|
195 |
|
257 |
}
|
258 |
|
259 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
260 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
261 |
+
'</div>';
|
262 |
|
263 |
return array(
|
264 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
346 |
}
|
347 |
|
348 |
if ( empty( $lists ) ) {
|
349 |
+
/* translators: ... */
|
350 |
throw new Forminator_Addon_Trello_Exception( sprintf( __( 'No list found on Trello Board of %1$s. Please create one.', Forminator::DOMAIN ), $board_name ) );
|
351 |
}
|
352 |
|
397 |
}
|
398 |
|
399 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
400 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Next', Forminator::DOMAIN ), 'forminator-addon-next' ) .
|
401 |
+
'</div>';
|
402 |
|
403 |
return array(
|
404 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
464 |
//todo: validate this, step wizard back if needed
|
465 |
$board_id = $this->get_multi_id_quiz_settings_value( $multi_id, 'board_id', '' );
|
466 |
|
|
|
467 |
$template_params = array(
|
468 |
'card_name' => $this->get_multi_id_quiz_settings_value( $multi_id, 'card_name', 'New submission from {quiz_name}' ),
|
469 |
'card_name_error' => '',
|
533 |
$members[ $data->id ] = $display_name;
|
534 |
}
|
535 |
}
|
|
|
536 |
} catch ( Forminator_Addon_Trello_Exception $e ) {
|
537 |
$template_params['error_message'] = $e->getMessage();
|
538 |
$has_errors = true;
|
642 |
}
|
643 |
|
644 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
645 |
+
Forminator_Addon_Abstract::get_button_markup( esc_html__( 'Save', Forminator::DOMAIN ), 'sui-button-primary forminator-addon-finish' ) .
|
646 |
+
'</div>';
|
647 |
|
648 |
return array(
|
649 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
775 |
return false;
|
776 |
}
|
777 |
|
|
|
778 |
return true;
|
779 |
}
|
780 |
}
|
addons/pro/trello/{forminator-addon-trello.php → class-forminator-addon-trello.php}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-trello-exception.php';
|
4 |
-
require_once dirname( __FILE__ ) . '/lib/class-
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Trello
|
@@ -27,7 +27,7 @@ final class Forminator_Addon_Trello extends Forminator_Addon_Abstract {
|
|
27 |
protected $_form_settings = 'Forminator_Addon_Trello_Form_Settings';
|
28 |
protected $_form_hooks = 'Forminator_Addon_Trello_Form_Hooks';
|
29 |
|
30 |
-
protected $_position
|
31 |
|
32 |
private $_app_key = '770a78f0ec0d8749df82fbbe150d80da';
|
33 |
|
@@ -118,7 +118,6 @@ final class Forminator_Addon_Trello extends Forminator_Addon_Abstract {
|
|
118 |
if ( isset( $setting_values['token'] ) && ! empty( $setting_values['token'] ) ) {
|
119 |
$is_connected = true;
|
120 |
}
|
121 |
-
|
122 |
} catch ( Forminator_Addon_Trello_Exception $e ) {
|
123 |
$is_connected = false;
|
124 |
}
|
@@ -475,7 +474,6 @@ final class Forminator_Addon_Trello extends Forminator_Addon_Abstract {
|
|
475 |
} catch ( Forminator_Addon_Trello_Exception $e ) {
|
476 |
$template_params['error_message'] = $e->getMessage();
|
477 |
}
|
478 |
-
|
479 |
}
|
480 |
|
481 |
return self::get_template( $template, $template_params );
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-trello-exception.php';
|
4 |
+
require_once dirname( __FILE__ ) . '/lib/class-forminator-addon-trello-wp-api.php';
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Trello
|
27 |
protected $_form_settings = 'Forminator_Addon_Trello_Form_Settings';
|
28 |
protected $_form_hooks = 'Forminator_Addon_Trello_Form_Hooks';
|
29 |
|
30 |
+
protected $_position = 5;
|
31 |
|
32 |
private $_app_key = '770a78f0ec0d8749df82fbbe150d80da';
|
33 |
|
118 |
if ( isset( $setting_values['token'] ) && ! empty( $setting_values['token'] ) ) {
|
119 |
$is_connected = true;
|
120 |
}
|
|
|
121 |
} catch ( Forminator_Addon_Trello_Exception $e ) {
|
122 |
$is_connected = false;
|
123 |
}
|
474 |
} catch ( Forminator_Addon_Trello_Exception $e ) {
|
475 |
$template_params['error_message'] = $e->getMessage();
|
476 |
}
|
|
|
477 |
}
|
478 |
|
479 |
return self::get_template( $template, $template_params );
|
addons/pro/trello/lib/{class-wp-trello-api-exception.php → class-forminator-addon-trello-wp-api-exception.php}
RENAMED
File without changes
|
addons/pro/trello/lib/{class-wp-trello-api-not-found-exception.php → class-forminator-addon-trello-wp-api-not-found-exception.php}
RENAMED
File without changes
|
addons/pro/trello/lib/{class-wp-trello-api.php → class-forminator-addon-trello-wp-api.php}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/class-
|
4 |
-
require_once dirname( __FILE__ ) . '/class-
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Trello_Wp_Api
|
@@ -114,7 +114,7 @@ class Forminator_Addon_Trello_Wp_Api {
|
|
114 |
* @throws Forminator_Addon_Trello_Wp_Api_Exception
|
115 |
* @throws Forminator_Addon_Trello_Wp_Api_Not_Found_Exception
|
116 |
*/
|
117 |
-
private function
|
118 |
// Adding extra user agent for wp remote request
|
119 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
120 |
|
@@ -194,9 +194,10 @@ class Forminator_Addon_Trello_Wp_Api {
|
|
194 |
}
|
195 |
|
196 |
if ( 404 === $status_code ) {
|
|
|
197 |
throw new Forminator_Addon_Trello_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
198 |
}
|
199 |
-
|
200 |
throw new Forminator_Addon_Trello_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
201 |
}
|
202 |
}
|
@@ -249,7 +250,7 @@ class Forminator_Addon_Trello_Wp_Api {
|
|
249 |
|
250 |
$args = array_merge( $default_args, $args );
|
251 |
|
252 |
-
return $this->
|
253 |
'POST',
|
254 |
$path,
|
255 |
$args
|
@@ -276,7 +277,7 @@ class Forminator_Addon_Trello_Wp_Api {
|
|
276 |
|
277 |
$args = array_merge( $default_args, $args );
|
278 |
|
279 |
-
return $this->
|
280 |
'GET',
|
281 |
$path,
|
282 |
$args
|
@@ -303,7 +304,7 @@ class Forminator_Addon_Trello_Wp_Api {
|
|
303 |
|
304 |
$args = array_merge( $default_args, $args );
|
305 |
|
306 |
-
return $this->
|
307 |
'PUT',
|
308 |
$path,
|
309 |
$args
|
@@ -330,7 +331,7 @@ class Forminator_Addon_Trello_Wp_Api {
|
|
330 |
|
331 |
$args = array_merge( $default_args, $args );
|
332 |
|
333 |
-
return $this->
|
334 |
'DELETE',
|
335 |
$path,
|
336 |
$args
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-trello-wp-api-exception.php';
|
4 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-trello-wp-api-not-found-exception.php';
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Trello_Wp_Api
|
114 |
* @throws Forminator_Addon_Trello_Wp_Api_Exception
|
115 |
* @throws Forminator_Addon_Trello_Wp_Api_Not_Found_Exception
|
116 |
*/
|
117 |
+
private function request( $verb = 'GET', $path, $args = array() ) {
|
118 |
// Adding extra user agent for wp remote request
|
119 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
120 |
|
194 |
}
|
195 |
|
196 |
if ( 404 === $status_code ) {
|
197 |
+
/* translators: ... */
|
198 |
throw new Forminator_Addon_Trello_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
199 |
}
|
200 |
+
/* translators: ... */
|
201 |
throw new Forminator_Addon_Trello_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
202 |
}
|
203 |
}
|
250 |
|
251 |
$args = array_merge( $default_args, $args );
|
252 |
|
253 |
+
return $this->request(
|
254 |
'POST',
|
255 |
$path,
|
256 |
$args
|
277 |
|
278 |
$args = array_merge( $default_args, $args );
|
279 |
|
280 |
+
return $this->request(
|
281 |
'GET',
|
282 |
$path,
|
283 |
$args
|
304 |
|
305 |
$args = array_merge( $default_args, $args );
|
306 |
|
307 |
+
return $this->request(
|
308 |
'PUT',
|
309 |
$path,
|
310 |
$args
|
331 |
|
332 |
$args = array_merge( $default_args, $args );
|
333 |
|
334 |
+
return $this->request(
|
335 |
'DELETE',
|
336 |
$path,
|
337 |
$args
|
addons/pro/trello/trello.php
CHANGED
@@ -23,16 +23,16 @@ function forminator_addon_trello_assets_url() {
|
|
23 |
return trailingslashit( forminator_addon_trello_url() . 'assets' );
|
24 |
}
|
25 |
|
26 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-trello.php';
|
27 |
|
28 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-trello-form-settings.php';
|
29 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-trello-form-hooks.php';
|
30 |
|
31 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-trello-poll-settings.php';
|
32 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-trello-poll-hooks.php';
|
33 |
|
34 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-trello-quiz-settings.php';
|
35 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-trello-quiz-hooks.php';
|
36 |
|
37 |
//Direct Load
|
38 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Trello' );
|
23 |
return trailingslashit( forminator_addon_trello_url() . 'assets' );
|
24 |
}
|
25 |
|
26 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-trello.php';
|
27 |
|
28 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-trello-form-settings.php';
|
29 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-trello-form-hooks.php';
|
30 |
|
31 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-trello-poll-settings.php';
|
32 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-trello-poll-hooks.php';
|
33 |
|
34 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-trello-quiz-settings.php';
|
35 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-trello-quiz-hooks.php';
|
36 |
|
37 |
//Direct Load
|
38 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Trello' );
|
addons/pro/trello/views/form-settings/setup-card.php
CHANGED
@@ -75,7 +75,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
75 |
<div class="sui-col-12">
|
76 |
|
77 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['card_description_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
78 |
-
|
79 |
<label class="sui-label" for="card_description"><?php esc_html_e( 'Card Description', Forminator::DOMAIN ); ?></label>
|
80 |
|
81 |
<div class="sui-insert-variables">
|
@@ -123,14 +123,14 @@ foreach ( $template_vars as $key => $val ) {
|
|
123 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['label_ids_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
124 |
<label class="sui-label" for="label_ids"><?php esc_html_e( 'Labels', Forminator::DOMAIN ); ?></label>
|
125 |
<select class="sui-select fui-multi-select" name="label_ids[]" id="label_ids"
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
<?php foreach ( $vars['label_ids'] as $label_id ) : ?>
|
133 |
-
<?php if ( isset( $vars['labels'][ $label_id ] ) ): ?>
|
134 |
<option
|
135 |
value="<?php echo esc_attr( $label_id ); ?>"
|
136 |
selected="selected"
|
@@ -141,7 +141,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
141 |
<?php endforeach; ?>
|
142 |
|
143 |
<?php foreach ( $vars['labels'] as $label_id => $label ) : ?>
|
144 |
-
<?php if ( ! in_array( $label_id, $vars['label_ids'], true ) ): ?>
|
145 |
<option
|
146 |
value="<?php echo esc_attr( $label_id ); ?>"
|
147 |
data-color="<?php echo esc_attr( $label['color'] ); ?>"
|
@@ -162,14 +162,14 @@ foreach ( $template_vars as $key => $val ) {
|
|
162 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['member_ids_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
163 |
<label class="sui-label" for="member_ids"><?php esc_html_e( 'Members', Forminator::DOMAIN ); ?></label>
|
164 |
<select class="sui-select fui-multi-select" name="member_ids[]" id="member_ids"
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
<?php foreach ( $vars['member_ids'] as $member_id ) : ?>
|
172 |
-
<?php if ( isset( $vars['members'][ $member_id ] ) ): ?>
|
173 |
<option
|
174 |
value="<?php echo esc_attr( $member_id ); ?>"
|
175 |
selected="selected"
|
@@ -178,7 +178,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
178 |
<?php endforeach; ?>
|
179 |
|
180 |
<?php foreach ( $vars['members'] as $member_id => $name ) : ?>
|
181 |
-
<?php if ( ! in_array( $member_id, $vars['member_ids'], true ) ): ?>
|
182 |
<option
|
183 |
value="<?php echo esc_attr( $member_id ); ?>"
|
184 |
><?php echo esc_html( $name ); ?></option>
|
75 |
<div class="sui-col-12">
|
76 |
|
77 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['card_description_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
78 |
+
|
79 |
<label class="sui-label" for="card_description"><?php esc_html_e( 'Card Description', Forminator::DOMAIN ); ?></label>
|
80 |
|
81 |
<div class="sui-insert-variables">
|
123 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['label_ids_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
124 |
<label class="sui-label" for="label_ids"><?php esc_html_e( 'Labels', Forminator::DOMAIN ); ?></label>
|
125 |
<select class="sui-select fui-multi-select" name="label_ids[]" id="label_ids"
|
126 |
+
multiple="multiple"
|
127 |
+
data-reorder="1"
|
128 |
+
data-tags="false"
|
129 |
+
data-token-separators="[',']"
|
130 |
+
data-placeholder="<?php esc_html_e( 'Enter label name', Forminator::DOMAIN ); ?>"
|
131 |
+
data-allow-clear="false">
|
132 |
<?php foreach ( $vars['label_ids'] as $label_id ) : ?>
|
133 |
+
<?php if ( isset( $vars['labels'][ $label_id ] ) ) : ?>
|
134 |
<option
|
135 |
value="<?php echo esc_attr( $label_id ); ?>"
|
136 |
selected="selected"
|
141 |
<?php endforeach; ?>
|
142 |
|
143 |
<?php foreach ( $vars['labels'] as $label_id => $label ) : ?>
|
144 |
+
<?php if ( ! in_array( $label_id, $vars['label_ids'], true ) ) : ?>
|
145 |
<option
|
146 |
value="<?php echo esc_attr( $label_id ); ?>"
|
147 |
data-color="<?php echo esc_attr( $label['color'] ); ?>"
|
162 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['member_ids_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
163 |
<label class="sui-label" for="member_ids"><?php esc_html_e( 'Members', Forminator::DOMAIN ); ?></label>
|
164 |
<select class="sui-select fui-multi-select" name="member_ids[]" id="member_ids"
|
165 |
+
multiple="multiple"
|
166 |
+
data-reorder="1"
|
167 |
+
data-tags="false"
|
168 |
+
data-token-separators="[',']"
|
169 |
+
data-placeholder="<?php esc_html_e( 'Enter member name', Forminator::DOMAIN ); ?>"
|
170 |
+
data-allow-clear="false">
|
171 |
<?php foreach ( $vars['member_ids'] as $member_id ) : ?>
|
172 |
+
<?php if ( isset( $vars['members'][ $member_id ] ) ) : ?>
|
173 |
<option
|
174 |
value="<?php echo esc_attr( $member_id ); ?>"
|
175 |
selected="selected"
|
178 |
<?php endforeach; ?>
|
179 |
|
180 |
<?php foreach ( $vars['members'] as $member_id => $name ) : ?>
|
181 |
+
<?php if ( ! in_array( $member_id, $vars['member_ids'], true ) ) : ?>
|
182 |
<option
|
183 |
value="<?php echo esc_attr( $member_id ); ?>"
|
184 |
><?php echo esc_html( $name ); ?></option>
|
addons/pro/trello/views/form-settings/setup-list.php
CHANGED
@@ -16,14 +16,15 @@ foreach ( $template_vars as $key => $val ) {
|
|
16 |
}
|
17 |
|
18 |
$vars['step_description'] = sprintf(
|
19 |
-
|
|
|
20 |
'<b>' . $vars['board_name'] . '</b>'
|
21 |
);
|
22 |
|
23 |
?>
|
24 |
<div class="integration-header">
|
25 |
<h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Assign List', Forminator::DOMAIN ) ); ?></h3>
|
26 |
-
<p><?php echo $vars['step_description']; //
|
27 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
28 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
29 |
<?php endif; ?>
|
16 |
}
|
17 |
|
18 |
$vars['step_description'] = sprintf(
|
19 |
+
/* translators: ... */
|
20 |
+
esc_html__( 'Which list from %1$s do you want auto-generated cards to be added to?', Forminator::DOMAIN ),
|
21 |
'<b>' . $vars['board_name'] . '</b>'
|
22 |
);
|
23 |
|
24 |
?>
|
25 |
<div class="integration-header">
|
26 |
<h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Assign List', Forminator::DOMAIN ) ); ?></h3>
|
27 |
+
<p><?php echo $vars['step_description']; // phpcs:ignore ?></p>
|
28 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
29 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
30 |
<?php endif; ?>
|
addons/pro/trello/views/poll-settings/setup-card.php
CHANGED
@@ -50,10 +50,10 @@ foreach ( $template_vars as $key => $val ) {
|
|
50 |
<div class="sui-insert-variables">
|
51 |
|
52 |
<input id="card_name"
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
|
58 |
<select data-textarea-id="card_name"><?php foreach ( $vars['name_fields'] as $key => $field ) : ?>
|
59 |
<option value="{<?php echo esc_attr( $key ); ?>}" data-content="{<?php echo esc_attr( $key ); ?>}"><?php echo esc_html( $field ); ?></option>
|
@@ -124,14 +124,14 @@ foreach ( $template_vars as $key => $val ) {
|
|
124 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['label_ids_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
125 |
<label class="sui-label" for="label_ids"><?php esc_html_e( 'Labels', Forminator::DOMAIN ); ?></label>
|
126 |
<select class="sui-select fui-multi-select" name="label_ids[]" id="label_ids"
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
<?php foreach ( $vars['label_ids'] as $label_id ) : ?>
|
134 |
-
<?php if ( isset( $vars['labels'][ $label_id ] ) ): ?>
|
135 |
<option
|
136 |
value="<?php echo esc_attr( $label_id ); ?>"
|
137 |
selected="selected"
|
@@ -142,7 +142,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
142 |
<?php endforeach; ?>
|
143 |
|
144 |
<?php foreach ( $vars['labels'] as $label_id => $label ) : ?>
|
145 |
-
<?php if ( ! in_array( $label_id, $vars['label_ids'], true ) ): ?>
|
146 |
<option
|
147 |
value="<?php echo esc_attr( $label_id ); ?>"
|
148 |
data-color="<?php echo esc_attr( $label['color'] ); ?>"
|
@@ -163,14 +163,14 @@ foreach ( $template_vars as $key => $val ) {
|
|
163 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['member_ids_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
164 |
<label class="sui-label" for="member_ids"><?php esc_html_e( 'Members', Forminator::DOMAIN ); ?></label>
|
165 |
<select class="sui-select fui-multi-select" name="member_ids[]" id="member_ids"
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
<?php foreach ( $vars['member_ids'] as $member_id ) : ?>
|
173 |
-
<?php if ( isset( $vars['members'][ $member_id ] ) ): ?>
|
174 |
<option
|
175 |
value="<?php echo esc_attr( $member_id ); ?>"
|
176 |
selected="selected"
|
@@ -179,7 +179,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
179 |
<?php endforeach; ?>
|
180 |
|
181 |
<?php foreach ( $vars['members'] as $member_id => $name ) : ?>
|
182 |
-
<?php if ( ! in_array( $member_id, $vars['member_ids'], true ) ): ?>
|
183 |
<option
|
184 |
value="<?php echo esc_attr( $member_id ); ?>"
|
185 |
><?php echo esc_html( $name ); ?></option>
|
50 |
<div class="sui-insert-variables">
|
51 |
|
52 |
<input id="card_name"
|
53 |
+
class="sui-form-control"
|
54 |
+
name="card_name"
|
55 |
+
placeholder="<?php echo esc_attr( __( 'Card Name', Forminator::DOMAIN ) ); ?>"
|
56 |
+
value="<?php echo esc_attr( $vars['card_name'] ); ?>">
|
57 |
|
58 |
<select data-textarea-id="card_name"><?php foreach ( $vars['name_fields'] as $key => $field ) : ?>
|
59 |
<option value="{<?php echo esc_attr( $key ); ?>}" data-content="{<?php echo esc_attr( $key ); ?>}"><?php echo esc_html( $field ); ?></option>
|
124 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['label_ids_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
125 |
<label class="sui-label" for="label_ids"><?php esc_html_e( 'Labels', Forminator::DOMAIN ); ?></label>
|
126 |
<select class="sui-select fui-multi-select" name="label_ids[]" id="label_ids"
|
127 |
+
multiple="multiple"
|
128 |
+
data-reorder="1"
|
129 |
+
data-tags="false"
|
130 |
+
data-token-separators="[',']"
|
131 |
+
data-placeholder="<?php esc_html_e( 'Enter label name', Forminator::DOMAIN ); ?>"
|
132 |
+
data-allow-clear="false">
|
133 |
<?php foreach ( $vars['label_ids'] as $label_id ) : ?>
|
134 |
+
<?php if ( isset( $vars['labels'][ $label_id ] ) ) : ?>
|
135 |
<option
|
136 |
value="<?php echo esc_attr( $label_id ); ?>"
|
137 |
selected="selected"
|
142 |
<?php endforeach; ?>
|
143 |
|
144 |
<?php foreach ( $vars['labels'] as $label_id => $label ) : ?>
|
145 |
+
<?php if ( ! in_array( $label_id, $vars['label_ids'], true ) ) : ?>
|
146 |
<option
|
147 |
value="<?php echo esc_attr( $label_id ); ?>"
|
148 |
data-color="<?php echo esc_attr( $label['color'] ); ?>"
|
163 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['member_ids_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
164 |
<label class="sui-label" for="member_ids"><?php esc_html_e( 'Members', Forminator::DOMAIN ); ?></label>
|
165 |
<select class="sui-select fui-multi-select" name="member_ids[]" id="member_ids"
|
166 |
+
multiple="multiple"
|
167 |
+
data-reorder="1"
|
168 |
+
data-tags="false"
|
169 |
+
data-token-separators="[',']"
|
170 |
+
data-placeholder="<?php esc_html_e( 'Enter member name', Forminator::DOMAIN ); ?>"
|
171 |
+
data-allow-clear="false">
|
172 |
<?php foreach ( $vars['member_ids'] as $member_id ) : ?>
|
173 |
+
<?php if ( isset( $vars['members'][ $member_id ] ) ) : ?>
|
174 |
<option
|
175 |
value="<?php echo esc_attr( $member_id ); ?>"
|
176 |
selected="selected"
|
179 |
<?php endforeach; ?>
|
180 |
|
181 |
<?php foreach ( $vars['members'] as $member_id => $name ) : ?>
|
182 |
+
<?php if ( ! in_array( $member_id, $vars['member_ids'], true ) ) : ?>
|
183 |
<option
|
184 |
value="<?php echo esc_attr( $member_id ); ?>"
|
185 |
><?php echo esc_html( $name ); ?></option>
|
addons/pro/trello/views/poll-settings/setup-list.php
CHANGED
@@ -16,14 +16,15 @@ foreach ( $template_vars as $key => $val ) {
|
|
16 |
}
|
17 |
|
18 |
$vars['step_description'] = sprintf(
|
19 |
-
|
|
|
20 |
'<b>' . $vars['board_name'] . '</b>'
|
21 |
);
|
22 |
|
23 |
?>
|
24 |
<div class="integration-header">
|
25 |
<h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Assign List', Forminator::DOMAIN ) ); ?></h3>
|
26 |
-
<p><?php echo $vars['step_description']; //
|
27 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
28 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
29 |
<?php endif; ?>
|
16 |
}
|
17 |
|
18 |
$vars['step_description'] = sprintf(
|
19 |
+
/* translators: ... */
|
20 |
+
esc_html__( 'Which list from %1$s do you want auto-generated cards to be added to?', Forminator::DOMAIN ),
|
21 |
'<b>' . $vars['board_name'] . '</b>'
|
22 |
);
|
23 |
|
24 |
?>
|
25 |
<div class="integration-header">
|
26 |
<h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Assign List', Forminator::DOMAIN ) ); ?></h3>
|
27 |
+
<p><?php echo $vars['step_description']; // phpcs:ignore ?></p>
|
28 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
29 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
30 |
<?php endif; ?>
|
addons/pro/trello/views/quiz-settings/setup-card.php
CHANGED
@@ -50,10 +50,10 @@ foreach ( $template_vars as $key => $val ) {
|
|
50 |
<div class="sui-insert-variables">
|
51 |
|
52 |
<input id="card_name"
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
|
58 |
<select data-textarea-id="card_name"><?php foreach ( $vars['name_fields'] as $key => $field ) : ?>
|
59 |
<option value="{<?php echo esc_attr( $key ); ?>}" data-content="{<?php echo esc_attr( $key ); ?>}"><?php echo esc_html( $field ); ?></option>
|
@@ -124,14 +124,14 @@ foreach ( $template_vars as $key => $val ) {
|
|
124 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['label_ids_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
125 |
<label class="sui-label" for="label_ids"><?php esc_html_e( 'Labels', Forminator::DOMAIN ); ?></label>
|
126 |
<select class="sui-select fui-multi-select" name="label_ids[]" id="label_ids"
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
<?php foreach ( $vars['label_ids'] as $label_id ) : ?>
|
134 |
-
<?php if ( isset( $vars['labels'][ $label_id ] ) ): ?>
|
135 |
<option
|
136 |
value="<?php echo esc_attr( $label_id ); ?>"
|
137 |
selected="selected"
|
@@ -142,7 +142,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
142 |
<?php endforeach; ?>
|
143 |
|
144 |
<?php foreach ( $vars['labels'] as $label_id => $label ) : ?>
|
145 |
-
<?php if ( ! in_array( $label_id, $vars['label_ids'], true ) ): ?>
|
146 |
<option
|
147 |
value="<?php echo esc_attr( $label_id ); ?>"
|
148 |
data-color="<?php echo esc_attr( $label['color'] ); ?>"
|
@@ -163,14 +163,14 @@ foreach ( $template_vars as $key => $val ) {
|
|
163 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['member_ids_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
164 |
<label class="sui-label" for="member_ids"><?php esc_html_e( 'Members', Forminator::DOMAIN ); ?></label>
|
165 |
<select class="sui-select fui-multi-select" name="member_ids[]" id="member_ids"
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
-
|
170 |
-
|
171 |
-
|
172 |
<?php foreach ( $vars['member_ids'] as $member_id ) : ?>
|
173 |
-
<?php if ( isset( $vars['members'][ $member_id ] ) ): ?>
|
174 |
<option
|
175 |
value="<?php echo esc_attr( $member_id ); ?>"
|
176 |
selected="selected"
|
@@ -179,7 +179,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
179 |
<?php endforeach; ?>
|
180 |
|
181 |
<?php foreach ( $vars['members'] as $member_id => $name ) : ?>
|
182 |
-
<?php if ( ! in_array( $member_id, $vars['member_ids'], true ) ): ?>
|
183 |
<option
|
184 |
value="<?php echo esc_attr( $member_id ); ?>"
|
185 |
><?php echo esc_html( $name ); ?></option>
|
50 |
<div class="sui-insert-variables">
|
51 |
|
52 |
<input id="card_name"
|
53 |
+
class="sui-form-control"
|
54 |
+
name="card_name"
|
55 |
+
placeholder="<?php echo esc_attr( __( 'Card Name', Forminator::DOMAIN ) ); ?>"
|
56 |
+
value="<?php echo esc_attr( $vars['card_name'] ); ?>">
|
57 |
|
58 |
<select data-textarea-id="card_name"><?php foreach ( $vars['name_fields'] as $key => $field ) : ?>
|
59 |
<option value="{<?php echo esc_attr( $key ); ?>}" data-content="{<?php echo esc_attr( $key ); ?>}"><?php echo esc_html( $field ); ?></option>
|
124 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['label_ids_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
125 |
<label class="sui-label" for="label_ids"><?php esc_html_e( 'Labels', Forminator::DOMAIN ); ?></label>
|
126 |
<select class="sui-select fui-multi-select" name="label_ids[]" id="label_ids"
|
127 |
+
multiple="multiple"
|
128 |
+
data-reorder="1"
|
129 |
+
data-tags="false"
|
130 |
+
data-token-separators="[',']"
|
131 |
+
data-placeholder="<?php esc_html_e( 'Enter label name', Forminator::DOMAIN ); ?>"
|
132 |
+
data-allow-clear="false">
|
133 |
<?php foreach ( $vars['label_ids'] as $label_id ) : ?>
|
134 |
+
<?php if ( isset( $vars['labels'][ $label_id ] ) ) : ?>
|
135 |
<option
|
136 |
value="<?php echo esc_attr( $label_id ); ?>"
|
137 |
selected="selected"
|
142 |
<?php endforeach; ?>
|
143 |
|
144 |
<?php foreach ( $vars['labels'] as $label_id => $label ) : ?>
|
145 |
+
<?php if ( ! in_array( $label_id, $vars['label_ids'], true ) ) : ?>
|
146 |
<option
|
147 |
value="<?php echo esc_attr( $label_id ); ?>"
|
148 |
data-color="<?php echo esc_attr( $label['color'] ); ?>"
|
163 |
<div class="sui-form-field <?php echo esc_attr( ! empty( $vars['member_ids_error'] ) ? 'sui-form-field-error' : '' ); ?>">
|
164 |
<label class="sui-label" for="member_ids"><?php esc_html_e( 'Members', Forminator::DOMAIN ); ?></label>
|
165 |
<select class="sui-select fui-multi-select" name="member_ids[]" id="member_ids"
|
166 |
+
multiple="multiple"
|
167 |
+
data-reorder="1"
|
168 |
+
data-tags="false"
|
169 |
+
data-token-separators="[',']"
|
170 |
+
data-placeholder="<?php esc_html_e( 'Enter member name', Forminator::DOMAIN ); ?>"
|
171 |
+
data-allow-clear="false">
|
172 |
<?php foreach ( $vars['member_ids'] as $member_id ) : ?>
|
173 |
+
<?php if ( isset( $vars['members'][ $member_id ] ) ) : ?>
|
174 |
<option
|
175 |
value="<?php echo esc_attr( $member_id ); ?>"
|
176 |
selected="selected"
|
179 |
<?php endforeach; ?>
|
180 |
|
181 |
<?php foreach ( $vars['members'] as $member_id => $name ) : ?>
|
182 |
+
<?php if ( ! in_array( $member_id, $vars['member_ids'], true ) ) : ?>
|
183 |
<option
|
184 |
value="<?php echo esc_attr( $member_id ); ?>"
|
185 |
><?php echo esc_html( $name ); ?></option>
|
addons/pro/trello/views/quiz-settings/setup-list.php
CHANGED
@@ -16,14 +16,15 @@ foreach ( $template_vars as $key => $val ) {
|
|
16 |
}
|
17 |
|
18 |
$vars['step_description'] = sprintf(
|
19 |
-
|
|
|
20 |
'<b>' . $vars['board_name'] . '</b>'
|
21 |
);
|
22 |
|
23 |
?>
|
24 |
<div class="integration-header">
|
25 |
<h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Assign List', Forminator::DOMAIN ) ); ?></h3>
|
26 |
-
<p><?php echo $vars['step_description']; //
|
27 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
28 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
29 |
<?php endif; ?>
|
16 |
}
|
17 |
|
18 |
$vars['step_description'] = sprintf(
|
19 |
+
/* translators: ... */
|
20 |
+
esc_html__( 'Which list from %1$s do you want auto-generated cards to be added to?', Forminator::DOMAIN ),
|
21 |
'<b>' . $vars['board_name'] . '</b>'
|
22 |
);
|
23 |
|
24 |
?>
|
25 |
<div class="integration-header">
|
26 |
<h3 class="sui-box-title" id="dialogTitle2"><?php echo esc_html( __( 'Assign List', Forminator::DOMAIN ) ); ?></h3>
|
27 |
+
<p><?php echo $vars['step_description']; // phpcs:ignore ?></p>
|
28 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
29 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
30 |
<?php endif; ?>
|
addons/pro/trello/views/sections/authorize.php
CHANGED
@@ -13,17 +13,18 @@ foreach ( $template_vars as $key => $val ) {
|
|
13 |
<div id="forminator-integrations" class="wpmudev-settings--box">
|
14 |
<div class="sui-box">
|
15 |
<div class="sui-box-header">
|
16 |
-
<h2 class="sui-box-title"><?php esc_html_e(
|
17 |
</div>
|
18 |
<div class="sui-box-body">
|
19 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
20 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
21 |
-
<?php elseif ( $vars['is_close'] ): ?>
|
22 |
<span class="sui-notice sui-notice-success">
|
23 |
<p>
|
24 |
<?php
|
25 |
-
esc_html_e(
|
26 |
-
|
|
|
27 |
);
|
28 |
?>
|
29 |
</p>
|
@@ -43,12 +44,12 @@ foreach ( $template_vars as $key => $val ) {
|
|
43 |
|
44 |
var hashParams = {};
|
45 |
var e,
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
|
53 |
while (e = r.exec(q))
|
54 |
hashParams[d(e[1])] = d(e[2]);
|
@@ -58,7 +59,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
58 |
|
59 |
(function ($) {
|
60 |
$(document).ready(function (e) {
|
61 |
-
<?php if ($vars['is_close']): ?>
|
62 |
|
63 |
setTimeout(function () {
|
64 |
window.close();
|
13 |
<div id="forminator-integrations" class="wpmudev-settings--box">
|
14 |
<div class="sui-box">
|
15 |
<div class="sui-box-header">
|
16 |
+
<h2 class="sui-box-title"><?php esc_html_e( 'Authorizing Trello', Forminator::DOMAIN ); ?></h2>
|
17 |
</div>
|
18 |
<div class="sui-box-body">
|
19 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
20 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $vars['error_message'] ); ?></p></span>
|
21 |
+
<?php elseif ( $vars['is_close'] ) : ?>
|
22 |
<span class="sui-notice sui-notice-success">
|
23 |
<p>
|
24 |
<?php
|
25 |
+
esc_html_e(
|
26 |
+
'Successfully authorized Trello, you can go back to integration settings.',
|
27 |
+
Forminator::DOMAIN
|
28 |
);
|
29 |
?>
|
30 |
</p>
|
44 |
|
45 |
var hashParams = {};
|
46 |
var e,
|
47 |
+
a = /\+/g, // Regex for replacing addition symbol with a space
|
48 |
+
r = /([^&;=]+)=?([^&;]*)/g,
|
49 |
+
d = function (s) {
|
50 |
+
return decodeURIComponent(s.replace(a, " "));
|
51 |
+
},
|
52 |
+
q = window.location.hash.substring(1);
|
53 |
|
54 |
while (e = r.exec(q))
|
55 |
hashParams[d(e[1])] = d(e[2]);
|
59 |
|
60 |
(function ($) {
|
61 |
$(document).ready(function (e) {
|
62 |
+
<?php if ( $vars['is_close'] ) : ?>
|
63 |
|
64 |
setTimeout(function () {
|
65 |
window.close();
|
addons/pro/trello/views/settings/authorize.php
CHANGED
@@ -4,7 +4,7 @@ $vars = array(
|
|
4 |
'connected_account' => array(),
|
5 |
'auth_url' => '',
|
6 |
'token' => '',
|
7 |
-
'is_connected'
|
8 |
);
|
9 |
/** @var array $template_vars */
|
10 |
foreach ( $template_vars as $key => $val ) {
|
@@ -12,7 +12,12 @@ foreach ( $template_vars as $key => $val ) {
|
|
12 |
}
|
13 |
?>
|
14 |
<div class="integration-header">
|
15 |
-
<h3 class="sui-box-title" id="dialogTitle2"
|
|
|
|
|
|
|
|
|
|
|
16 |
<?php if ( ! empty( $vars['connected_account'] ) ) : ?>
|
17 |
<p><?php esc_html_e( 'Your Trello account is now authorized', Forminator::DOMAIN ); ?> </p>
|
18 |
<strong><?php echo esc_html( $vars['connected_account']['email'] ); ?></strong>
|
@@ -26,4 +31,3 @@ foreach ( $template_vars as $key => $val ) {
|
|
26 |
<?php if ( $vars['is_connected'] ) : ?>
|
27 |
<button class="sui-button sui-button-ghost forminator-addon-disconnect"><?php esc_html_e( 'DISCONNECT', Forminator::DOMAIN ); ?></button>
|
28 |
<?php endif ?>
|
29 |
-
|
4 |
'connected_account' => array(),
|
5 |
'auth_url' => '',
|
6 |
'token' => '',
|
7 |
+
'is_connected' => false,
|
8 |
);
|
9 |
/** @var array $template_vars */
|
10 |
foreach ( $template_vars as $key => $val ) {
|
12 |
}
|
13 |
?>
|
14 |
<div class="integration-header">
|
15 |
+
<h3 class="sui-box-title" id="dialogTitle2">
|
16 |
+
<?php
|
17 |
+
/* translators: ... */
|
18 |
+
echo esc_html( sprintf( __( 'Connect %1$s', Forminator::DOMAIN ), 'Trello' ) );
|
19 |
+
?>
|
20 |
+
</h3>
|
21 |
<?php if ( ! empty( $vars['connected_account'] ) ) : ?>
|
22 |
<p><?php esc_html_e( 'Your Trello account is now authorized', Forminator::DOMAIN ); ?> </p>
|
23 |
<strong><?php echo esc_html( $vars['connected_account']['email'] ); ?></strong>
|
31 |
<?php if ( $vars['is_connected'] ) : ?>
|
32 |
<button class="sui-button sui-button-ghost forminator-addon-disconnect"><?php esc_html_e( 'DISCONNECT', Forminator::DOMAIN ); ?></button>
|
33 |
<?php endif ?>
|
|
addons/pro/trello/views/settings/success-authorize.php
CHANGED
@@ -1,6 +1,9 @@
|
|
1 |
<div class="integration-header">
|
2 |
<h3 class="sui-box-title" id="dialogTitle2">
|
3 |
-
<?php
|
|
|
|
|
|
|
4 |
</h3>
|
5 |
<p><?php esc_html_e( 'You can now go to your forms and assign them to this integration', Forminator::DOMAIN ); ?></p>
|
6 |
</div>
|
1 |
<div class="integration-header">
|
2 |
<h3 class="sui-box-title" id="dialogTitle2">
|
3 |
+
<?php
|
4 |
+
/* translators: ... */
|
5 |
+
echo esc_html( sprintf( __( '%1$s Added', Forminator::DOMAIN ), 'Trello' ) );
|
6 |
+
?>
|
7 |
</h3>
|
8 |
<p><?php esc_html_e( 'You can now go to your forms and assign them to this integration', Forminator::DOMAIN ); ?></p>
|
9 |
</div>
|
addons/pro/trello/views/settings/wait-authorize.php
CHANGED
@@ -20,4 +20,3 @@ foreach ( $template_vars as $key => $val ) {
|
|
20 |
<?php if ( empty( $vars['token'] ) ) : ?>
|
21 |
<a href="<?php echo esc_attr( $vars['auth_url'] ); ?>" target="_blank" class="sui-button disable-loader"><?php esc_html_e( 'RETRY', Forminator::DOMAIN ); ?></a>
|
22 |
<?php endif ?>
|
23 |
-
|
20 |
<?php if ( empty( $vars['token'] ) ) : ?>
|
21 |
<a href="<?php echo esc_attr( $vars['auth_url'] ); ?>" target="_blank" class="sui-button disable-loader"><?php esc_html_e( 'RETRY', Forminator::DOMAIN ); ?></a>
|
22 |
<?php endif ?>
|
|
addons/pro/zapier/{forminator-addon-zapier-exception.php → class-forminator-addon-zapier-exception.php}
RENAMED
File without changes
|
addons/pro/zapier/{forminator-addon-zapier-form-hooks.php → class-forminator-addon-zapier-form-hooks.php}
RENAMED
@@ -120,7 +120,6 @@ class Forminator_Addon_Zapier_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
120 |
$form_settings_instance
|
121 |
);
|
122 |
|
123 |
-
|
124 |
return $data;
|
125 |
|
126 |
}
|
@@ -171,7 +170,6 @@ class Forminator_Addon_Zapier_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
171 |
|
172 |
$zapier_api = $this->addon->get_api( $endpoint );
|
173 |
|
174 |
-
|
175 |
$args = $submitted_data;
|
176 |
|
177 |
// find calculation fields on entry
|
@@ -273,7 +271,6 @@ class Forminator_Addon_Zapier_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
273 |
$form_settings_instance
|
274 |
);
|
275 |
|
276 |
-
|
277 |
$addon_meta_datas = $addon_meta_data;
|
278 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
279 |
return array();
|
@@ -347,7 +344,6 @@ class Forminator_Addon_Zapier_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
347 |
'value' => '',
|
348 |
);
|
349 |
|
350 |
-
|
351 |
$sub_entries = array();
|
352 |
if ( isset( $status['connection_name'] ) ) {
|
353 |
$sub_entries[] = array(
|
@@ -395,7 +391,6 @@ class Forminator_Addon_Zapier_Form_Hooks extends Forminator_Addon_Form_Hooks_Abs
|
|
395 |
}
|
396 |
}
|
397 |
|
398 |
-
|
399 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
400 |
|
401 |
// return single array
|
120 |
$form_settings_instance
|
121 |
);
|
122 |
|
|
|
123 |
return $data;
|
124 |
|
125 |
}
|
170 |
|
171 |
$zapier_api = $this->addon->get_api( $endpoint );
|
172 |
|
|
|
173 |
$args = $submitted_data;
|
174 |
|
175 |
// find calculation fields on entry
|
271 |
$form_settings_instance
|
272 |
);
|
273 |
|
|
|
274 |
$addon_meta_datas = $addon_meta_data;
|
275 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
276 |
return array();
|
344 |
'value' => '',
|
345 |
);
|
346 |
|
|
|
347 |
$sub_entries = array();
|
348 |
if ( isset( $status['connection_name'] ) ) {
|
349 |
$sub_entries[] = array(
|
391 |
}
|
392 |
}
|
393 |
|
|
|
394 |
$additional_entry_item['sub_entries'] = $sub_entries;
|
395 |
|
396 |
// return single array
|
addons/pro/zapier/{forminator-addon-zapier-form-settings-exception.php → class-forminator-addon-zapier-form-settings-exception.php}
RENAMED
File without changes
|
addons/pro/zapier/{forminator-addon-zapier-form-settings.php → class-forminator-addon-zapier-form-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-zapier-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Zapier_Form_Settings
|
@@ -126,10 +126,9 @@ class Forminator_Addon_Zapier_Form_Settings extends Forminator_Addon_Form_Settin
|
|
126 |
$notification = array(
|
127 |
'type' => 'success',
|
128 |
'text' => '<strong>' . $this->addon->get_title() . ' [' . esc_html( $submitted_data['name'] ) . ']</strong> '
|
129 |
-
|
130 |
);
|
131 |
}
|
132 |
-
|
133 |
} catch ( Forminator_Addon_Zapier_Form_Settings_Exception $e ) {
|
134 |
$input_error_messages = $e->get_input_exceptions();
|
135 |
} catch ( Forminator_Addon_Zapier_Exception $e ) {
|
@@ -138,19 +137,21 @@ class Forminator_Addon_Zapier_Form_Settings extends Forminator_Addon_Form_Settin
|
|
138 |
|
139 |
$buttons = array();
|
140 |
if ( $this->setup_webhook_url_is_completed( $current_data ) ) {
|
141 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Zapier::get_button_markup(
|
142 |
-
|
143 |
-
|
|
|
144 |
);
|
145 |
}
|
146 |
|
147 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
148 |
-
|
149 |
-
|
150 |
|
151 |
$help_message = esc_html__( 'Put your ZAP Webhook URL below.', Forminator::DOMAIN );
|
152 |
|
153 |
$notice_message = sprintf(
|
|
|
154 |
__( 'Please go %1$shere%2$s if you do not have any ZAP created. Remember to choose %3$s as Trigger App.', Forminator::DOMAIN ),
|
155 |
'<a href="' . $this->new_zap_url . '" target="_blank">',
|
156 |
'</a>',
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-zapier-form-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Zapier_Form_Settings
|
126 |
$notification = array(
|
127 |
'type' => 'success',
|
128 |
'text' => '<strong>' . $this->addon->get_title() . ' [' . esc_html( $submitted_data['name'] ) . ']</strong> '
|
129 |
+
. __( 'Successfully connected and sent sample data to your ZAP' ),
|
130 |
);
|
131 |
}
|
|
|
132 |
} catch ( Forminator_Addon_Zapier_Form_Settings_Exception $e ) {
|
133 |
$input_error_messages = $e->get_input_exceptions();
|
134 |
} catch ( Forminator_Addon_Zapier_Exception $e ) {
|
137 |
|
138 |
$buttons = array();
|
139 |
if ( $this->setup_webhook_url_is_completed( $current_data ) ) {
|
140 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Zapier::get_button_markup(
|
141 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
142 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
143 |
+
esc_html__( 'Deactivate Zapier from this Form.', Forminator::DOMAIN )
|
144 |
);
|
145 |
}
|
146 |
|
147 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
148 |
+
Forminator_Addon_Zapier::get_button_markup( esc_html__( 'Save', Forminator::DOMAIN ), 'sui-button-primary forminator-addon-finish' ) .
|
149 |
+
'</div>';
|
150 |
|
151 |
$help_message = esc_html__( 'Put your ZAP Webhook URL below.', Forminator::DOMAIN );
|
152 |
|
153 |
$notice_message = sprintf(
|
154 |
+
/* translators: ... */
|
155 |
__( 'Please go %1$shere%2$s if you do not have any ZAP created. Remember to choose %3$s as Trigger App.', Forminator::DOMAIN ),
|
156 |
'<a href="' . $this->new_zap_url . '" target="_blank">',
|
157 |
'</a>',
|
addons/pro/zapier/{forminator-addon-zapier-poll-hooks.php → class-forminator-addon-zapier-poll-hooks.php}
RENAMED
@@ -118,7 +118,6 @@ class Forminator_Addon_Zapier_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abs
|
|
118 |
$poll_settings_instance
|
119 |
);
|
120 |
|
121 |
-
|
122 |
return $data;
|
123 |
|
124 |
}
|
@@ -167,7 +166,6 @@ class Forminator_Addon_Zapier_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abs
|
|
167 |
|
168 |
$zapier_api = $this->addon->get_api( $endpoint );
|
169 |
|
170 |
-
|
171 |
$args = array();
|
172 |
$args['poll-name'] = forminator_get_name_from_model( $this->poll );
|
173 |
|
@@ -175,7 +173,6 @@ class Forminator_Addon_Zapier_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abs
|
|
175 |
$extra_field = isset( $submitted_data[ $this->poll_id . '-extra' ] ) ? $submitted_data[ $this->poll_id . '-extra' ] : '';
|
176 |
$fields_labels = $this->poll->pluck_fields_array( 'title', 'element_id', '1' );
|
177 |
|
178 |
-
|
179 |
$answer = isset( $fields_labels[ $answer_data ] ) ? $fields_labels[ $answer_data ] : $answer_data;
|
180 |
$extra = $extra_field;
|
181 |
|
@@ -219,7 +216,6 @@ class Forminator_Addon_Zapier_Poll_Hooks extends Forminator_Addon_Poll_Hooks_Abs
|
|
219 |
}
|
220 |
}
|
221 |
|
222 |
-
|
223 |
/**
|
224 |
* Filter arguments to passed on to Zapier Webhook API
|
225 |
*
|
118 |
$poll_settings_instance
|
119 |
);
|
120 |
|
|
|
121 |
return $data;
|
122 |
|
123 |
}
|
166 |
|
167 |
$zapier_api = $this->addon->get_api( $endpoint );
|
168 |
|
|
|
169 |
$args = array();
|
170 |
$args['poll-name'] = forminator_get_name_from_model( $this->poll );
|
171 |
|
173 |
$extra_field = isset( $submitted_data[ $this->poll_id . '-extra' ] ) ? $submitted_data[ $this->poll_id . '-extra' ] : '';
|
174 |
$fields_labels = $this->poll->pluck_fields_array( 'title', 'element_id', '1' );
|
175 |
|
|
|
176 |
$answer = isset( $fields_labels[ $answer_data ] ) ? $fields_labels[ $answer_data ] : $answer_data;
|
177 |
$extra = $extra_field;
|
178 |
|
216 |
}
|
217 |
}
|
218 |
|
|
|
219 |
/**
|
220 |
* Filter arguments to passed on to Zapier Webhook API
|
221 |
*
|
addons/pro/zapier/{forminator-addon-zapier-poll-settings-exception.php → class-forminator-addon-zapier-poll-settings-exception.php}
RENAMED
File without changes
|
addons/pro/zapier/{forminator-addon-zapier-poll-settings.php → class-forminator-addon-zapier-poll-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-zapier-poll-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Zapier_Poll_Settings
|
@@ -92,7 +92,6 @@ class Forminator_Addon_Zapier_Poll_Settings extends Forminator_Addon_Poll_Settin
|
|
92 |
$is_close = false;
|
93 |
$notification = array();
|
94 |
|
95 |
-
|
96 |
if ( $is_submit ) {
|
97 |
$name = isset( $submitted_data['name'] ) ? trim( $submitted_data['name'] ) : '';
|
98 |
$template_params['name'] = $name;
|
@@ -100,7 +99,6 @@ class Forminator_Addon_Zapier_Poll_Settings extends Forminator_Addon_Poll_Settin
|
|
100 |
$webhook_url = isset( $submitted_data['webhook_url'] ) ? trim( $submitted_data['webhook_url'] ) : '';
|
101 |
$template_params['webhook_url'] = $webhook_url;
|
102 |
|
103 |
-
|
104 |
try {
|
105 |
$input_exceptions = new Forminator_Addon_Zapier_Poll_Settings_Exception();
|
106 |
|
@@ -141,15 +139,16 @@ class Forminator_Addon_Zapier_Poll_Settings extends Forminator_Addon_Poll_Settin
|
|
141 |
|
142 |
$buttons = array();
|
143 |
if ( $this->setup_webhook_url_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
144 |
-
$buttons['disconnect']['markup'] = Forminator_Addon_Zapier::get_button_markup(
|
145 |
-
|
146 |
-
|
|
|
147 |
);
|
148 |
}
|
149 |
|
150 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
151 |
-
|
152 |
-
|
153 |
|
154 |
return array(
|
155 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -268,7 +267,6 @@ class Forminator_Addon_Zapier_Poll_Settings extends Forminator_Addon_Poll_Settin
|
|
268 |
$sample['vote-extra'] = 'Vote Extra';
|
269 |
$sample['results'] = array();
|
270 |
|
271 |
-
|
272 |
$fields_array = $this->poll->get_fields_as_array();
|
273 |
$map_entries = Forminator_Form_Entry_Model::map_polls_entries( $this->poll_id, $fields_array );
|
274 |
$fields = $this->poll->get_fields();
|
@@ -287,7 +285,6 @@ class Forminator_Addon_Zapier_Poll_Settings extends Forminator_Addon_Poll_Settin
|
|
287 |
);
|
288 |
}
|
289 |
|
290 |
-
|
291 |
// wrap in array as zapier best practices
|
292 |
return array( $sample );
|
293 |
}
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-zapier-poll-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Zapier_Poll_Settings
|
92 |
$is_close = false;
|
93 |
$notification = array();
|
94 |
|
|
|
95 |
if ( $is_submit ) {
|
96 |
$name = isset( $submitted_data['name'] ) ? trim( $submitted_data['name'] ) : '';
|
97 |
$template_params['name'] = $name;
|
99 |
$webhook_url = isset( $submitted_data['webhook_url'] ) ? trim( $submitted_data['webhook_url'] ) : '';
|
100 |
$template_params['webhook_url'] = $webhook_url;
|
101 |
|
|
|
102 |
try {
|
103 |
$input_exceptions = new Forminator_Addon_Zapier_Poll_Settings_Exception();
|
104 |
|
139 |
|
140 |
$buttons = array();
|
141 |
if ( $this->setup_webhook_url_is_completed( array( 'multi_id' => $multi_id ) ) ) {
|
142 |
+
$buttons['disconnect']['markup'] = Forminator_Addon_Zapier::get_button_markup(
|
143 |
+
esc_html__( 'Deactivate', Forminator::DOMAIN ),
|
144 |
+
'sui-button-ghost sui-tooltip sui-tooltip-top-center forminator-addon-form-disconnect',
|
145 |
+
esc_html__( 'Deactivate Zapier from this Poll.', Forminator::DOMAIN )
|
146 |
);
|
147 |
}
|
148 |
|
149 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
150 |
+
Forminator_Addon_Zapier::get_button_markup( esc_html__( 'Save', Forminator::DOMAIN ), 'sui-button-primary forminator-addon-finish' ) .
|
151 |
+
'</div>';
|
152 |
|
153 |
return array(
|
154 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
267 |
$sample['vote-extra'] = 'Vote Extra';
|
268 |
$sample['results'] = array();
|
269 |
|
|
|
270 |
$fields_array = $this->poll->get_fields_as_array();
|
271 |
$map_entries = Forminator_Form_Entry_Model::map_polls_entries( $this->poll_id, $fields_array );
|
272 |
$fields = $this->poll->get_fields();
|
285 |
);
|
286 |
}
|
287 |
|
|
|
288 |
// wrap in array as zapier best practices
|
289 |
return array( $sample );
|
290 |
}
|
addons/pro/zapier/{forminator-addon-zapier-quiz-hooks.php → class-forminator-addon-zapier-quiz-hooks.php}
RENAMED
@@ -118,7 +118,6 @@ class Forminator_Addon_Zapier_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
118 |
$quiz_settings_instance
|
119 |
);
|
120 |
|
121 |
-
|
122 |
return $data;
|
123 |
|
124 |
}
|
@@ -168,7 +167,6 @@ class Forminator_Addon_Zapier_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
168 |
|
169 |
$zapier_api = $this->addon->get_api( $endpoint );
|
170 |
|
171 |
-
|
172 |
$args = $this->build_post_data( $current_entry_fields );
|
173 |
|
174 |
/**
|
@@ -270,9 +268,9 @@ class Forminator_Addon_Zapier_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
270 |
}
|
271 |
} elseif ( 'nowrong' === $this->quiz->quiz_type ) {
|
272 |
if ( isset( $quiz_entry['value'][0] )
|
273 |
-
|
274 |
-
|
275 |
-
|
276 |
|
277 |
$quiz_entry = $quiz_entry['value'][0]['value'];
|
278 |
|
@@ -295,7 +293,6 @@ class Forminator_Addon_Zapier_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
295 |
}
|
296 |
}
|
297 |
}
|
298 |
-
|
299 |
}
|
300 |
}
|
301 |
}
|
@@ -313,7 +310,6 @@ class Forminator_Addon_Zapier_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
313 |
|
314 |
$sample['result'] = $result;
|
315 |
|
316 |
-
|
317 |
// wrap in array as zapier best practices
|
318 |
return array( $sample );
|
319 |
}
|
@@ -446,7 +442,6 @@ class Forminator_Addon_Zapier_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
446 |
$quiz_settings_instance
|
447 |
);
|
448 |
|
449 |
-
|
450 |
$addon_meta_datas = $addon_meta_data;
|
451 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
452 |
return array();
|
@@ -502,7 +497,6 @@ class Forminator_Addon_Zapier_Quiz_Hooks extends Forminator_Addon_Quiz_Hooks_Abs
|
|
502 |
'value' => '',
|
503 |
);
|
504 |
|
505 |
-
|
506 |
$sub_entries = array();
|
507 |
if ( isset( $status['connection_name'] ) ) {
|
508 |
$sub_entries[] = array(
|
118 |
$quiz_settings_instance
|
119 |
);
|
120 |
|
|
|
121 |
return $data;
|
122 |
|
123 |
}
|
167 |
|
168 |
$zapier_api = $this->addon->get_api( $endpoint );
|
169 |
|
|
|
170 |
$args = $this->build_post_data( $current_entry_fields );
|
171 |
|
172 |
/**
|
268 |
}
|
269 |
} elseif ( 'nowrong' === $this->quiz->quiz_type ) {
|
270 |
if ( isset( $quiz_entry['value'][0] )
|
271 |
+
&& is_array( $quiz_entry['value'][0] )
|
272 |
+
&& isset( $quiz_entry['value'][0]['value'] )
|
273 |
+
&& is_array( $quiz_entry['value'][0]['value'] ) ) {
|
274 |
|
275 |
$quiz_entry = $quiz_entry['value'][0]['value'];
|
276 |
|
293 |
}
|
294 |
}
|
295 |
}
|
|
|
296 |
}
|
297 |
}
|
298 |
}
|
310 |
|
311 |
$sample['result'] = $result;
|
312 |
|
|
|
313 |
// wrap in array as zapier best practices
|
314 |
return array( $sample );
|
315 |
}
|
442 |
$quiz_settings_instance
|
443 |
);
|
444 |
|
|
|
445 |
$addon_meta_datas = $addon_meta_data;
|
446 |
if ( ! isset( $addon_meta_data[0] ) || ! is_array( $addon_meta_data[0] ) ) {
|
447 |
return array();
|
497 |
'value' => '',
|
498 |
);
|
499 |
|
|
|
500 |
$sub_entries = array();
|
501 |
if ( isset( $status['connection_name'] ) ) {
|
502 |
$sub_entries[] = array(
|
addons/pro/zapier/{forminator-addon-zapier-quiz-settings-exception.php → class-forminator-addon-zapier-quiz-settings-exception.php}
RENAMED
File without changes
|
addons/pro/zapier/{forminator-addon-zapier-quiz-settings.php → class-forminator-addon-zapier-quiz-settings.php}
RENAMED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-zapier-quiz-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Zapier_Quiz_Settings
|
@@ -92,7 +92,6 @@ class Forminator_Addon_Zapier_Quiz_Settings extends Forminator_Addon_Quiz_Settin
|
|
92 |
$is_close = false;
|
93 |
$notification = array();
|
94 |
|
95 |
-
|
96 |
if ( $is_submit ) {
|
97 |
$name = isset( $submitted_data['name'] ) ? trim( $submitted_data['name'] ) : '';
|
98 |
$template_params['name'] = $name;
|
@@ -100,7 +99,6 @@ class Forminator_Addon_Zapier_Quiz_Settings extends Forminator_Addon_Quiz_Settin
|
|
100 |
$webhook_url = isset( $submitted_data['webhook_url'] ) ? trim( $submitted_data['webhook_url'] ) : '';
|
101 |
$template_params['webhook_url'] = $webhook_url;
|
102 |
|
103 |
-
|
104 |
try {
|
105 |
$input_exceptions = new Forminator_Addon_Zapier_Quiz_Settings_Exception();
|
106 |
|
@@ -149,8 +147,8 @@ class Forminator_Addon_Zapier_Quiz_Settings extends Forminator_Addon_Quiz_Settin
|
|
149 |
}
|
150 |
|
151 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
152 |
-
|
153 |
-
|
154 |
|
155 |
return array(
|
156 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
@@ -280,8 +278,8 @@ class Forminator_Addon_Zapier_Quiz_Settings extends Forminator_Addon_Quiz_Settin
|
|
280 |
$answer_title = 'Sample Answer';
|
281 |
|
282 |
$answer = array(
|
283 |
-
'question'
|
284 |
-
'answer'
|
285 |
);
|
286 |
|
287 |
if ( 'knowledge' === $this->quiz->quiz_type ) {
|
@@ -311,7 +309,6 @@ class Forminator_Addon_Zapier_Quiz_Settings extends Forminator_Addon_Quiz_Settin
|
|
311 |
|
312 |
$sample['result'] = $result;
|
313 |
|
314 |
-
|
315 |
// wrap in array as zapier best practices
|
316 |
return array( $sample );
|
317 |
}
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-zapier-quiz-settings-exception.php';
|
4 |
|
5 |
/**
|
6 |
* Class Forminator_Addon_Zapier_Quiz_Settings
|
92 |
$is_close = false;
|
93 |
$notification = array();
|
94 |
|
|
|
95 |
if ( $is_submit ) {
|
96 |
$name = isset( $submitted_data['name'] ) ? trim( $submitted_data['name'] ) : '';
|
97 |
$template_params['name'] = $name;
|
99 |
$webhook_url = isset( $submitted_data['webhook_url'] ) ? trim( $submitted_data['webhook_url'] ) : '';
|
100 |
$template_params['webhook_url'] = $webhook_url;
|
101 |
|
|
|
102 |
try {
|
103 |
$input_exceptions = new Forminator_Addon_Zapier_Quiz_Settings_Exception();
|
104 |
|
147 |
}
|
148 |
|
149 |
$buttons['next']['markup'] = '<div class="sui-actions-right">' .
|
150 |
+
Forminator_Addon_Zapier::get_button_markup( esc_html__( 'Save', Forminator::DOMAIN ), 'sui-button-primary forminator-addon-finish' ) .
|
151 |
+
'</div>';
|
152 |
|
153 |
return array(
|
154 |
'html' => Forminator_Addon_Abstract::get_template( $template, $template_params ),
|
278 |
$answer_title = 'Sample Answer';
|
279 |
|
280 |
$answer = array(
|
281 |
+
'question' => $question_title,
|
282 |
+
'answer' => $answer_title,
|
283 |
);
|
284 |
|
285 |
if ( 'knowledge' === $this->quiz->quiz_type ) {
|
309 |
|
310 |
$sample['result'] = $result;
|
311 |
|
|
|
312 |
// wrap in array as zapier best practices
|
313 |
return array( $sample );
|
314 |
}
|
addons/pro/zapier/{forminator-addon-zapier.php → class-forminator-addon-zapier.php}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-zapier-exception.php';
|
4 |
-
require_once dirname( __FILE__ ) . '/lib/class-
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Zapier
|
@@ -42,8 +42,14 @@ final class Forminator_Addon_Zapier extends Forminator_Addon_Abstract {
|
|
42 |
*/
|
43 |
public function __construct() {
|
44 |
// late init to allow translation
|
45 |
-
$this->_description
|
46 |
-
$this->_promotion
|
|
|
|
|
|
|
|
|
|
|
|
|
47 |
|
48 |
$this->_activation_error_message = __( 'Sorry but we failed to activate Zapier Integration, don\'t hesitate to contact us', Forminator::DOMAIN );
|
49 |
$this->_deactivation_error_message = __( 'Sorry but we failed to deactivate Zapier Integration, please try again', Forminator::DOMAIN );
|
@@ -141,7 +147,6 @@ final class Forminator_Addon_Zapier extends Forminator_Addon_Abstract {
|
|
141 |
if ( empty( $form_id ) ) {
|
142 |
$show_success = true;
|
143 |
}
|
144 |
-
|
145 |
} catch ( Forminator_Addon_Zapier_Exception $e ) {
|
146 |
$template_params['error_message'] = $e->getMessage();
|
147 |
$has_errors = true;
|
@@ -168,8 +173,6 @@ final class Forminator_Addon_Zapier extends Forminator_Addon_Abstract {
|
|
168 |
'markup' => self::get_button_markup( esc_html__( 'Activate', Forminator::DOMAIN ), 'forminator-addon-connect' ),
|
169 |
);
|
170 |
}
|
171 |
-
|
172 |
-
|
173 |
}
|
174 |
|
175 |
return array(
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-zapier-exception.php';
|
4 |
+
require_once dirname( __FILE__ ) . '/lib/class-forminator-addon-zapier-wp-api.php';
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Zapier
|
42 |
*/
|
43 |
public function __construct() {
|
44 |
// late init to allow translation
|
45 |
+
$this->_description = __( 'Make your form Zap-able', Forminator::DOMAIN );
|
46 |
+
$this->_promotion = sprintf(
|
47 |
+
/* translators: ... */
|
48 |
+
__( 'Zapier connects Forminator with %1$s1000+ apps%3$s. You can use it to send your submissions to third party apps not natively supported in Forminator and automate your after-submission workflows. Refer to this %2$sarticle%3$s for tips and tricks on using Zapier integration and creating automated workflows. Happy automating!', Forminator::DOMAIN ),
|
49 |
+
'<a href="https://zapier.com/apps" target="_blank">',
|
50 |
+
'<a href="https://premium.wpmudev.org/blog/zapier-wordpress-form-integrations/" target="_blank">',
|
51 |
+
'</a>'
|
52 |
+
);
|
53 |
|
54 |
$this->_activation_error_message = __( 'Sorry but we failed to activate Zapier Integration, don\'t hesitate to contact us', Forminator::DOMAIN );
|
55 |
$this->_deactivation_error_message = __( 'Sorry but we failed to deactivate Zapier Integration, please try again', Forminator::DOMAIN );
|
147 |
if ( empty( $form_id ) ) {
|
148 |
$show_success = true;
|
149 |
}
|
|
|
150 |
} catch ( Forminator_Addon_Zapier_Exception $e ) {
|
151 |
$template_params['error_message'] = $e->getMessage();
|
152 |
$has_errors = true;
|
173 |
'markup' => self::get_button_markup( esc_html__( 'Activate', Forminator::DOMAIN ), 'forminator-addon-connect' ),
|
174 |
);
|
175 |
}
|
|
|
|
|
176 |
}
|
177 |
|
178 |
return array(
|
addons/pro/zapier/lib/{class-wp-zapier-api-exception.php → class-forminator-addon-zapier-wp-api-exception.php}
RENAMED
File without changes
|
addons/pro/zapier/lib/{class-wp-zapier-api-not-found-exception.php → class-forminator-addon-zapier-wp-api-not-found-exception.php}
RENAMED
File without changes
|
addons/pro/zapier/lib/{class-wp-zapier-api.php → class-forminator-addon-zapier-wp-api.php}
RENAMED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
|
3 |
-
require_once dirname( __FILE__ ) . '/class-
|
4 |
-
require_once dirname( __FILE__ ) . '/class-
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Zapier_Wp_Api
|
@@ -122,7 +122,7 @@ class Forminator_Addon_Zapier_Wp_Api {
|
|
122 |
* @throws Forminator_Addon_Zapier_Wp_Api_Exception
|
123 |
* @throws Forminator_Addon_Zapier_Wp_Api_Not_Found_Exception
|
124 |
*/
|
125 |
-
private function
|
126 |
// Adding extra user agent for wp remote request
|
127 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
128 |
|
@@ -215,9 +215,10 @@ class Forminator_Addon_Zapier_Wp_Api {
|
|
215 |
}
|
216 |
|
217 |
if ( 404 === $status_code ) {
|
|
|
218 |
throw new Forminator_Addon_Zapier_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
219 |
}
|
220 |
-
|
221 |
throw new Forminator_Addon_Zapier_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
222 |
}
|
223 |
}
|
@@ -263,7 +264,7 @@ class Forminator_Addon_Zapier_Wp_Api {
|
|
263 |
*/
|
264 |
public function post_( $args ) {
|
265 |
|
266 |
-
return $this->
|
267 |
'POST',
|
268 |
'',
|
269 |
$args
|
1 |
<?php
|
2 |
|
3 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-zapier-wp-api-exception.php';
|
4 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-zapier-wp-api-not-found-exception.php';
|
5 |
|
6 |
/**
|
7 |
* Class Forminator_Addon_Zapier_Wp_Api
|
122 |
* @throws Forminator_Addon_Zapier_Wp_Api_Exception
|
123 |
* @throws Forminator_Addon_Zapier_Wp_Api_Not_Found_Exception
|
124 |
*/
|
125 |
+
private function request( $verb = 'GET', $path, $args = array() ) {
|
126 |
// Adding extra user agent for wp remote request
|
127 |
add_filter( 'http_headers_useragent', array( $this, 'filter_user_agent' ) );
|
128 |
|
215 |
}
|
216 |
|
217 |
if ( 404 === $status_code ) {
|
218 |
+
/* translators: ... */
|
219 |
throw new Forminator_Addon_Zapier_Wp_Api_Not_Found_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
220 |
}
|
221 |
+
/* translators: ... */
|
222 |
throw new Forminator_Addon_Zapier_Wp_Api_Exception( sprintf( __( 'Failed to processing request : %s', Forminator::DOMAIN ), $msg ) );
|
223 |
}
|
224 |
}
|
264 |
*/
|
265 |
public function post_( $args ) {
|
266 |
|
267 |
+
return $this->request(
|
268 |
'POST',
|
269 |
'',
|
270 |
$args
|
addons/pro/zapier/views/poll-settings/setup-webhook.php
CHANGED
@@ -27,10 +27,10 @@ foreach ( $template_vars as $key => $val ) {
|
|
27 |
<label class="sui-label"><?php esc_html_e( 'Zapier Integration Name', Forminator::DOMAIN ); ?></label>
|
28 |
<div class="sui-control-with-icon">
|
29 |
<input type="text"
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
/>
|
35 |
<i class="sui-icon-web-globe-world" aria-hidden="true"></i>
|
36 |
</div>
|
@@ -57,11 +57,14 @@ foreach ( $template_vars as $key => $val ) {
|
|
57 |
</form>
|
58 |
<div class="sui-notice sui-notice-warning">
|
59 |
<p>
|
60 |
-
<?php
|
61 |
-
|
62 |
-
|
|
|
63 |
'</a>',
|
64 |
-
'<strong>
|
65 |
-
|
|
|
|
|
66 |
</p>
|
67 |
</div>
|
27 |
<label class="sui-label"><?php esc_html_e( 'Zapier Integration Name', Forminator::DOMAIN ); ?></label>
|
28 |
<div class="sui-control-with-icon">
|
29 |
<input type="text"
|
30 |
+
name="name"
|
31 |
+
placeholder="<?php esc_attr_e( 'Friendly Name', Forminator::DOMAIN ); ?>"
|
32 |
+
value="<?php echo esc_attr( $vars['name'] ); ?>"
|
33 |
+
class="sui-form-control"
|
34 |
/>
|
35 |
<i class="sui-icon-web-globe-world" aria-hidden="true"></i>
|
36 |
</div>
|
57 |
</form>
|
58 |
<div class="sui-notice sui-notice-warning">
|
59 |
<p>
|
60 |
+
<?php
|
61 |
+
echo sprintf(/* translators: ... */
|
62 |
+
esc_html__( 'Please go %1$shere%2$s if you do not have any ZAP created. Remember to choose %3$sWebhooks by Zapier%4$s as Trigger App.', Forminator::DOMAIN ),
|
63 |
+
'<a href="' . esc_url( $vars['new_zap_url'] ) . '" target="_blank">',
|
64 |
'</a>',
|
65 |
+
'<strong>',
|
66 |
+
'</strong>'
|
67 |
+
);
|
68 |
+
?>
|
69 |
</p>
|
70 |
</div>
|
addons/pro/zapier/views/quiz-settings/setup-webhook.php
CHANGED
@@ -27,10 +27,10 @@ foreach ( $template_vars as $key => $val ) {
|
|
27 |
<label class="sui-label"><?php esc_html_e( 'Zapier Integration Name', Forminator::DOMAIN ); ?></label>
|
28 |
<div class="sui-control-with-icon">
|
29 |
<input type="text"
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
/>
|
35 |
<i class="sui-icon-web-globe-world" aria-hidden="true"></i>
|
36 |
</div>
|
@@ -57,11 +57,14 @@ foreach ( $template_vars as $key => $val ) {
|
|
57 |
</form>
|
58 |
<div class="sui-notice sui-notice-warning">
|
59 |
<p>
|
60 |
-
<?php
|
61 |
-
|
62 |
-
|
|
|
63 |
'</a>',
|
64 |
-
'<strong>
|
65 |
-
|
|
|
|
|
66 |
</p>
|
67 |
</div>
|
27 |
<label class="sui-label"><?php esc_html_e( 'Zapier Integration Name', Forminator::DOMAIN ); ?></label>
|
28 |
<div class="sui-control-with-icon">
|
29 |
<input type="text"
|
30 |
+
name="name"
|
31 |
+
placeholder="<?php esc_attr_e( 'Friendly Name', Forminator::DOMAIN ); ?>"
|
32 |
+
value="<?php echo esc_attr( $vars['name'] ); ?>"
|
33 |
+
class="sui-form-control"
|
34 |
/>
|
35 |
<i class="sui-icon-web-globe-world" aria-hidden="true"></i>
|
36 |
</div>
|
57 |
</form>
|
58 |
<div class="sui-notice sui-notice-warning">
|
59 |
<p>
|
60 |
+
<?php
|
61 |
+
echo sprintf(/* translators: ... */
|
62 |
+
esc_html__( 'Please go %1$shere%2$s if you do not have any ZAP created. Remember to choose %3$sWebhooks by Zapier%4$s as Trigger App.', Forminator::DOMAIN ),
|
63 |
+
'<a href="' . esc_url( $vars['new_zap_url'] ) . '" target="_blank">',
|
64 |
'</a>',
|
65 |
+
'<strong>',
|
66 |
+
'</strong>'
|
67 |
+
);
|
68 |
+
?>
|
69 |
</p>
|
70 |
</div>
|
addons/pro/zapier/views/settings/setup-connect-success.php
CHANGED
@@ -1,6 +1,9 @@
|
|
1 |
<div class="integration-header">
|
2 |
<h3 class="sui-box-title" id="dialogTitle2">
|
3 |
-
<?php
|
|
|
|
|
|
|
4 |
</h3>
|
5 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'You can now go to your forms and assign them to this integration', Forminator::DOMAIN ); ?></span>
|
6 |
</div>
|
1 |
<div class="integration-header">
|
2 |
<h3 class="sui-box-title" id="dialogTitle2">
|
3 |
+
<?php
|
4 |
+
/* translators: ... */
|
5 |
+
echo esc_html( sprintf( __( '%1$s Added', Forminator::DOMAIN ), 'Zapier' ) );
|
6 |
+
?>
|
7 |
</h3>
|
8 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'You can now go to your forms and assign them to this integration', Forminator::DOMAIN ); ?></span>
|
9 |
</div>
|
addons/pro/zapier/views/settings/setup-connect.php
CHANGED
@@ -12,7 +12,12 @@ foreach ( $template_vars as $key => $val ) {
|
|
12 |
|
13 |
<div class="integration-header">
|
14 |
|
15 |
-
<h3 id="dialogTitle2" class="sui-box-title"
|
|
|
|
|
|
|
|
|
|
|
16 |
|
17 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'Activate Zapier to start using it on your forms.', Forminator::DOMAIN ); ?></span>
|
18 |
|
12 |
|
13 |
<div class="integration-header">
|
14 |
|
15 |
+
<h3 id="dialogTitle2" class="sui-box-title">
|
16 |
+
<?php
|
17 |
+
/* translators: ... */
|
18 |
+
echo esc_html( sprintf( __( 'Activate %1$s', Forminator::DOMAIN ), 'Zapier' ) );
|
19 |
+
?>
|
20 |
+
</h3>
|
21 |
|
22 |
<span class="sui-description" style="margin-top: 20px;"><?php esc_html_e( 'Activate Zapier to start using it on your forms.', Forminator::DOMAIN ); ?></span>
|
23 |
|
addons/pro/zapier/zapier.php
CHANGED
@@ -23,16 +23,16 @@ function forminator_addon_zapier_dir() {
|
|
23 |
return trailingslashit( dirname( __FILE__ ) );
|
24 |
}
|
25 |
|
26 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-zapier.php';
|
27 |
|
28 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-zapier-form-settings.php';
|
29 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-zapier-form-hooks.php';
|
30 |
|
31 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-zapier-poll-settings.php';
|
32 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-zapier-poll-hooks.php';
|
33 |
|
34 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-zapier-quiz-settings.php';
|
35 |
-
require_once dirname( __FILE__ ) . '/forminator-addon-zapier-quiz-hooks.php';
|
36 |
|
37 |
//Direct Load
|
38 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Zapier' );
|
23 |
return trailingslashit( dirname( __FILE__ ) );
|
24 |
}
|
25 |
|
26 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-zapier.php';
|
27 |
|
28 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-zapier-form-settings.php';
|
29 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-zapier-form-hooks.php';
|
30 |
|
31 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-zapier-poll-settings.php';
|
32 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-zapier-poll-hooks.php';
|
33 |
|
34 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-zapier-quiz-settings.php';
|
35 |
+
require_once dirname( __FILE__ ) . '/class-forminator-addon-zapier-quiz-hooks.php';
|
36 |
|
37 |
//Direct Load
|
38 |
Forminator_Addon_Loader::get_instance()->register( 'Forminator_Addon_Zapier' );
|
admin/abstracts/class-admin-import-mediator.php
CHANGED
@@ -101,6 +101,8 @@ abstract class Forminator_Import_Mediator {
|
|
101 |
case 'user_display_name':
|
102 |
$value = "wp_user.display_name";
|
103 |
break;
|
|
|
|
|
104 |
}
|
105 |
}
|
106 |
|
101 |
case 'user_display_name':
|
102 |
$value = "wp_user.display_name";
|
103 |
break;
|
104 |
+
default:
|
105 |
+
break;
|
106 |
}
|
107 |
}
|
108 |
|
admin/abstracts/class-admin-module.php
CHANGED
@@ -40,14 +40,14 @@ abstract class Forminator_Admin_Module {
|
|
40 |
$this->includes();
|
41 |
|
42 |
add_action( 'admin_menu', array( $this, 'add_menu_pages' ) );
|
43 |
-
add_action( 'admin_head', array( $this,
|
44 |
|
45 |
// admin-menu-editor compat
|
46 |
-
add_action( 'admin_menu_editor-menu_replaced', array( $this,
|
47 |
|
48 |
-
add_filter( 'forminator_data', array( $this,
|
49 |
-
add_filter( 'forminator_l10n', array( $this,
|
50 |
-
add_filter( 'submenu_file', array( $this,
|
51 |
}
|
52 |
|
53 |
/**
|
@@ -109,7 +109,7 @@ abstract class Forminator_Admin_Module {
|
|
109 |
* @return mixed
|
110 |
*/
|
111 |
public static function is_edit() {
|
112 |
-
return
|
113 |
}
|
114 |
|
115 |
/**
|
40 |
$this->includes();
|
41 |
|
42 |
add_action( 'admin_menu', array( $this, 'add_menu_pages' ) );
|
43 |
+
add_action( 'admin_head', array( $this, 'hide_menu_pages' ) );
|
44 |
|
45 |
// admin-menu-editor compat
|
46 |
+
add_action( 'admin_menu_editor-menu_replaced', array( $this, 'hide_menu_pages' ) );
|
47 |
|
48 |
+
add_filter( 'forminator_data', array( $this, 'add_js_defaults' ) );
|
49 |
+
add_filter( 'forminator_l10n', array( $this, 'add_l10n_strings' ) );
|
50 |
+
add_filter( 'submenu_file', array( $this, 'admin_submenu_file' ), 10, 2 );
|
51 |
}
|
52 |
|
53 |
/**
|
109 |
* @return mixed
|
110 |
*/
|
111 |
public static function is_edit() {
|
112 |
+
return (bool) filter_input( INPUT_GET, 'id', FILTER_VALIDATE_INT );
|
113 |
}
|
114 |
|
115 |
/**
|
admin/abstracts/class-admin-page.php
CHANGED
@@ -67,7 +67,7 @@ abstract class Forminator_Admin_Page {
|
|
67 |
$page_slug,
|
68 |
$render ? array( $this, 'render' ) : null,
|
69 |
'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNDAiIGhlaWdodD0iMzAyIj48ZyBmaWxsPSIjODg4IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yMjkuMjc4IDI0Ljg3OGwtMjAuMjEtMjAuMjE3di0uMDAzYy0zLjM1Ni0zLjMzOC04Ljc3OC0zLjMzNS0xMi4xMS4wMDNMNjQuNTIzIDEzNy4xMDFhOC41MDcgOC41MDcgMCAwIDAtMi41MDggNi4wNTJjMCAyLjI4OC44OTIgNC40NCAyLjUwOCA2LjA1MmwyMC4yMTEgMjAuMjE3YTguNTQgOC41NCAwIDAgMCA2LjA1MiAyLjUwNCA4LjU0IDguNTQgMCAwIDAgNi4wNTctMi41MDRsMTMyLjQzNS0xMzIuNDRjMy4zMzgtMy4zMzkgMy4zMzgtOC43NjYgMC0xMi4xMDRtMTA4LjIyMyAyMS43OTRsLTIwLjIxNy0yMC4yMTRjLTMuMzMyLTMuMzM4LTguNzcxLTMuMzM4LTEyLjEwMyAwTDEyOS41MjYgMjAyLjEwN2MtMy4zMzggMy4zMzgtMy4zMzggOC43NjggMCAxMi4xMDZsMjAuMjE3IDIwLjIxNGE4LjUyOCA4LjUyOCAwIDAgMCA2LjA1MiAyLjUwMmMyLjE5IDAgNC4zODUtLjgzMyA2LjA1LTIuNTAyTDMzNy41MDIgNTguNzc1YzMuMzMyLTMuMzM1IDMuMzMyLTguNzYyIDAtMTIuMTAzTTUxLjEyIDIxMC44NTZjLTEuNDQyLTEuNDM4LTMuNDY1LTIuMDM0LTUuNDc3LTEuNTQ0YTUuNzkgNS43OSAwIDAgMC00LjE4NSAzLjg1OWwtMTcuODkzIDU0Ljg2NGE1Ljc5NiA1Ljc5NiAwIDAgMCAxLjQxNiA1LjkyOSA1LjggNS44IDAgMCAwIDUuOTI5IDEuNDJsNTQuODcyLTE3Ljg5NXYtLjAwM2E1Ljc4NCA1Ljc4NCAwIDAgMCAzLjg1Ni00LjE4MiA1Ljc5MSA1Ljc5MSAwIDAgMC0xLjU1LTUuNDc1bC0zNi45NjctMzYuOTczem0yNDguNzIxLTc2Ljc4M2wtMzMuMTA2IDMzLjEwNmE4LjMxMSA4LjMxMSAwIDAgMC0yLjMzNSA0LjUxNmMtOS43OTYgNTUuNDA0LTU3LjczIDk1LjYxOC0xMTMuOTc5IDk1LjYxOC01LjYwNSAwLTExLjMwNi0uNDYzLTE3LjQxOS0xLjQxMy0yLjY1OC0uNDIzLTUuNDU1LjQ2Ni03LjM3MiAyLjM4M2wtMTQuODc5IDE0Ljg3OGMtMi4yMTggMi4yMjEtMy4wMzcgNS4zNTItMi4xOSA4LjM4MS44NDcgMy4wMzQgMy4xODIgNS4yOTEgNi4yNDEgNi4wMzhhMTUwLjY3NCAxNTAuNjc0IDAgMCAwIDM1LjYyIDQuMjcxYzgyLjk0NSAwIDE1MC40MjgtNjcuNDggMTUwLjQyOC0xNTAuNDI1IDAtMy40MzYtLjI0Ni02LjgxMy0uNDktMTAuMTg3bC0uNTE5LTcuMTY2ek0xNjIuNDU1IDEuNWwtMzUuNjQyIDM1LjYxNGMtMS4yNDQgMS4yMS0zLjAwNCAxLjY5OS00LjcxNyAyLjEwNC00Ni4zNjcgMTAuOTY4LTg2LjM4IDUzLjk3LTg3LjQ2NyAxMDcuOTUtLjExMiA1LjYwNC0uMDk0IDExLjE1My43NDkgMTcuMjgyLjM3NiAyLjY2NS0uNTYxIDUuNDQ2LTIuNTExIDcuMzNMMTcuNzMgMTg2LjM5NWMtMi4yNiAyLjE4LTQuOTE1IDMuMDQ4LTguNDE4IDIuMDQ0LTMuNTAzLTEuMDA0LTUuNC0zLjM3Mi02LjA5My02LjQ0My0yLjYzLTExLjY3OC0zLjU5My0yMy43MDItMy4xLTM1Ljg5M0MzLjQ3NiA2My4yMzUgNzAuMDY1IDIuNjcgMTQ3LjAyMyAxLjAwOGMzLjQzNi0uMDc0IDMuODU1LS4xMzQgNy4yMjUuMTdsOC4yMDguMzIyeiIvPjwvZz48L3N2Zz4='
|
70 |
-
|
71 |
);
|
72 |
} else {
|
73 |
$this->page_id = add_submenu_page(
|
@@ -231,7 +231,10 @@ abstract class Forminator_Admin_Page {
|
|
231 |
protected function render_footer() {
|
232 |
|
233 |
$hide_footer = false;
|
234 |
-
$footer_text = sprintf(
|
|
|
|
|
|
|
235 |
if ( Forminator::is_wpmudev_member() ) {
|
236 |
$hide_footer = apply_filters( 'wpmudev_branding_change_footer', $hide_footer );
|
237 |
$footer_text = apply_filters( 'wpmudev_branding_footer_text', $footer_text );
|
@@ -239,8 +242,9 @@ abstract class Forminator_Admin_Page {
|
|
239 |
|
240 |
if ( $this->template_exists( $this->folder . '/footer' ) ) {
|
241 |
$this->template( $this->folder . '/footer' );
|
242 |
-
}
|
243 |
-
|
|
|
244 |
|
245 |
<?php if ( FORMINATOR_PRO ) { ?>
|
246 |
|
@@ -290,7 +294,8 @@ abstract class Forminator_Admin_Page {
|
|
290 |
</ul>
|
291 |
<?php endif; ?>
|
292 |
|
293 |
-
|
|
|
294 |
|
295 |
/**
|
296 |
* Render page container
|
@@ -358,8 +363,8 @@ abstract class Forminator_Admin_Page {
|
|
358 |
}
|
359 |
|
360 |
if ( $echo ) {
|
361 |
-
echo $content
|
362 |
-
}
|
363 |
|
364 |
return $content;
|
365 |
}
|
67 |
$page_slug,
|
68 |
$render ? array( $this, 'render' ) : null,
|
69 |
'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzNDAiIGhlaWdodD0iMzAyIj48ZyBmaWxsPSIjODg4IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiPjxwYXRoIGQ9Ik0yMjkuMjc4IDI0Ljg3OGwtMjAuMjEtMjAuMjE3di0uMDAzYy0zLjM1Ni0zLjMzOC04Ljc3OC0zLjMzNS0xMi4xMS4wMDNMNjQuNTIzIDEzNy4xMDFhOC41MDcgOC41MDcgMCAwIDAtMi41MDggNi4wNTJjMCAyLjI4OC44OTIgNC40NCAyLjUwOCA2LjA1MmwyMC4yMTEgMjAuMjE3YTguNTQgOC41NCAwIDAgMCA2LjA1MiAyLjUwNCA4LjU0IDguNTQgMCAwIDAgNi4wNTctMi41MDRsMTMyLjQzNS0xMzIuNDRjMy4zMzgtMy4zMzkgMy4zMzgtOC43NjYgMC0xMi4xMDRtMTA4LjIyMyAyMS43OTRsLTIwLjIxNy0yMC4yMTRjLTMuMzMyLTMuMzM4LTguNzcxLTMuMzM4LTEyLjEwMyAwTDEyOS41MjYgMjAyLjEwN2MtMy4zMzggMy4zMzgtMy4zMzggOC43NjggMCAxMi4xMDZsMjAuMjE3IDIwLjIxNGE4LjUyOCA4LjUyOCAwIDAgMCA2LjA1MiAyLjUwMmMyLjE5IDAgNC4zODUtLjgzMyA2LjA1LTIuNTAyTDMzNy41MDIgNTguNzc1YzMuMzMyLTMuMzM1IDMuMzMyLTguNzYyIDAtMTIuMTAzTTUxLjEyIDIxMC44NTZjLTEuNDQyLTEuNDM4LTMuNDY1LTIuMDM0LTUuNDc3LTEuNTQ0YTUuNzkgNS43OSAwIDAgMC00LjE4NSAzLjg1OWwtMTcuODkzIDU0Ljg2NGE1Ljc5NiA1Ljc5NiAwIDAgMCAxLjQxNiA1LjkyOSA1LjggNS44IDAgMCAwIDUuOTI5IDEuNDJsNTQuODcyLTE3Ljg5NXYtLjAwM2E1Ljc4NCA1Ljc4NCAwIDAgMCAzLjg1Ni00LjE4MiA1Ljc5MSA1Ljc5MSAwIDAgMC0xLjU1LTUuNDc1bC0zNi45NjctMzYuOTczem0yNDguNzIxLTc2Ljc4M2wtMzMuMTA2IDMzLjEwNmE4LjMxMSA4LjMxMSAwIDAgMC0yLjMzNSA0LjUxNmMtOS43OTYgNTUuNDA0LTU3LjczIDk1LjYxOC0xMTMuOTc5IDk1LjYxOC01LjYwNSAwLTExLjMwNi0uNDYzLTE3LjQxOS0xLjQxMy0yLjY1OC0uNDIzLTUuNDU1LjQ2Ni03LjM3MiAyLjM4M2wtMTQuODc5IDE0Ljg3OGMtMi4yMTggMi4yMjEtMy4wMzcgNS4zNTItMi4xOSA4LjM4MS44NDcgMy4wMzQgMy4xODIgNS4yOTEgNi4yNDEgNi4wMzhhMTUwLjY3NCAxNTAuNjc0IDAgMCAwIDM1LjYyIDQuMjcxYzgyLjk0NSAwIDE1MC40MjgtNjcuNDggMTUwLjQyOC0xNTAuNDI1IDAtMy40MzYtLjI0Ni02LjgxMy0uNDktMTAuMTg3bC0uNTE5LTcuMTY2ek0xNjIuNDU1IDEuNWwtMzUuNjQyIDM1LjYxNGMtMS4yNDQgMS4yMS0zLjAwNCAxLjY5OS00LjcxNyAyLjEwNC00Ni4zNjcgMTAuOTY4LTg2LjM4IDUzLjk3LTg3LjQ2NyAxMDcuOTUtLjExMiA1LjYwNC0uMDk0IDExLjE1My43NDkgMTcuMjgyLjM3NiAyLjY2NS0uNTYxIDUuNDQ2LTIuNTExIDcuMzNMMTcuNzMgMTg2LjM5NWMtMi4yNiAyLjE4LTQuOTE1IDMuMDQ4LTguNDE4IDIuMDQ0LTMuNTAzLTEuMDA0LTUuNC0zLjM3Mi02LjA5My02LjQ0My0yLjYzLTExLjY3OC0zLjU5My0yMy43MDItMy4xLTM1Ljg5M0MzLjQ3NiA2My4yMzUgNzAuMDY1IDIuNjcgMTQ3LjAyMyAxLjAwOGMzLjQzNi0uMDc0IDMuODU1LS4xMzQgNy4yMjUuMTdsOC4yMDguMzIyeiIvPjwvZz48L3N2Zz4='
|
70 |
+
//'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIzMDAiIGhlaWdodD0iMzAwIj48cGF0aCBmaWxsPSIjODg4IiBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGQ9Ik0xNDkuNDQ2IDI2Ny42MmExMTcuNzYgMTE3Ljc2IDAgMCAxLTI3Ljg1LTMuMzQgNi42NDMgNi42NDMgMCAwIDEtNC44ODEtNC43MmMtLjY2MS0yLjM2OS0uMDIxLTQuODE4IDEuNzEzLTYuNTU0bDExLjYzNC0xMS42MzRjMS40OTgtMS40OTkgMy42ODYtMi4xOTMgNS43NjUtMS44NjMgNC43NzkuNzQzIDkuMjM1IDEuMTA1IDEzLjYxOSAxLjEwNSA0My45ODIgMCA4MS40NjItMzEuNDQ0IDg5LjEyMy03NC43NjVhNi40OTIgNi40OTIgMCAwIDEgMS44MjUtMy41M2wyNS44ODUtMjUuODg3LjQwNiA1LjYwM2MuMTkzIDIuNjQuMzg0IDUuMjguMzg0IDcuOTY1IDAgNjQuODU3LTUyLjc2NiAxMTcuNjItMTE3LjYyMyAxMTcuNjJtLTQ2LjYzLTEwMS41OWE2LjY4NCA2LjY4NCAwIDAgMS00LjczMi0xLjk1OGwtMTUuODAyLTE1LjgwOGE2LjY0IDYuNjQgMCAwIDEtMS45NjItNC43MzJjMC0xLjc4Ny42OTctMy40NjggMS45NjItNC43MzJsMTAzLjU1LTEwMy41NTdjMi42MDctMi42MSA2Ljg0Ny0yLjYxMiA5LjQ3LS4wMDJ2LjAwMmwxNS44MDMgMTUuODA3YTYuNyA2LjcgMCAwIDEgMCA5LjQ2NUwxMDcuNTUzIDE2NC4wNzJhNi42ODYgNi42ODYgMCAwIDEtNC43MzcgMS45NThtLS44OTcgNjMuNjNhNC41MjQgNC41MjQgMCAwIDEtMy4wMTUgMy4yN3YuMDAybC00Mi45MDUgMTMuOTkzYTQuNTI4IDQuNTI4IDAgMCAxLTQuNjM2LTEuMTExIDQuNTI4IDQuNTI4IDAgMCAxLTEuMTA3LTQuNjM2bDEzLjk5LTQyLjg5OWE0LjUyMiA0LjUyMiAwIDAgMSAzLjI3My0zLjAxNmMxLjU3Mi0uMzg0IDMuMTU0LjA4MiA0LjI4MiAxLjIwNmwyOC45MDcgMjguOTFhNC41MjggNC41MjggMCAwIDEgMS4yMSA0LjI4MW0tNjEtNTAuNDM0YTYuNzk1IDYuNzk1IDAgMCAxLTEuOTIxLS4yNzljLTIuMzg4LS43MS00LjEyMy0yLjU4Ni00LjYzNi01LjAxNS0xLjY3OC03LjkzOS0yLjUzMi0xNS45OS0yLjUzMi0yMy45MzIgMC02NC44NTcgNTIuNzYtMTE3LjYyIDExNy42MTctMTE3LjYyLjg5NCAwIDEuNzc0LjA2IDIuNjUuMTIuNTQ5LjAzNyAxLjA5OC4wNzYgMS42NS4wOTZsNS4xMjYuMTgxLTI3LjQyIDI3LjQyYTYuNTk3IDYuNTk3IDAgMCAxLTMuMTE2IDEuNzM2aC0uMDA1Qzg3LjQxNCA3MS43MSA1OC44MzQgMTA3LjkyNSA1OC44MzQgMTUwYzAgMy4wNTUuMjA2IDYuMjgzLjYyNCA5Ljg3MWE2LjY1OCA2LjY1OCAwIDAgMS0xLjkwNCA1LjUwM2wtMTEuODg3IDExLjg4N2E2LjcxNSA2LjcxNSAwIDAgMS00Ljc1IDEuOTY1bTI0NS4yNTgtOTIuMTJMMTU4LjM3OSAyMTQuOWE2LjY2OCA2LjY2OCAwIDAgMS00LjczMSAxLjk1NiA2LjY2OCA2LjY2OCAwIDAgMS00LjczMy0xLjk1NmwtMTUuODA4LTE1LjgwNWE2LjcgNi43IDAgMCAxIDAtOS40NjZMMjY2LjgwNiA1NS45MzNDMjM5LjMxIDIxLjgzNCAxOTcuMjE1IDAgMTUwIDAgNjcuMTU3IDAgMCA2Ny4xNTcgMCAxNTBjMCA4Mi44NDIgNjcuMTU3IDE1MCAxNTAgMTUwczE1MC02Ny4xNTggMTUwLTE1MGMwLTIyLjQ2Ny00Ljk3My00My43NjItMTMuODI1LTYyLjg5NCIvPjwvc3ZnPg=='
|
71 |
);
|
72 |
} else {
|
73 |
$this->page_id = add_submenu_page(
|
231 |
protected function render_footer() {
|
232 |
|
233 |
$hide_footer = false;
|
234 |
+
$footer_text = sprintf(/* translators: ... */
|
235 |
+
__( 'Made with %s by WPMU DEV', 'wpmudev' ),
|
236 |
+
' <i class="sui-icon-heart"></i>'
|
237 |
+
);
|
238 |
if ( Forminator::is_wpmudev_member() ) {
|
239 |
$hide_footer = apply_filters( 'wpmudev_branding_change_footer', $hide_footer );
|
240 |
$footer_text = apply_filters( 'wpmudev_branding_footer_text', $footer_text );
|
242 |
|
243 |
if ( $this->template_exists( $this->folder . '/footer' ) ) {
|
244 |
$this->template( $this->folder . '/footer' );
|
245 |
+
}
|
246 |
+
?>
|
247 |
+
<div class="sui-footer"><?php echo $footer_text; // phpcs:ignore ?></div>
|
248 |
|
249 |
<?php if ( FORMINATOR_PRO ) { ?>
|
250 |
|
294 |
</ul>
|
295 |
<?php endif; ?>
|
296 |
|
297 |
+
<?php
|
298 |
+
}
|
299 |
|
300 |
/**
|
301 |
* Render page container
|
363 |
}
|
364 |
|
365 |
if ( $echo ) {
|
366 |
+
echo $content;// phpcs:ignore
|
367 |
+
}
|
368 |
|
369 |
return $content;
|
370 |
}
|
admin/classes/class-admin-ajax.php
CHANGED
@@ -17,58 +17,58 @@ class Forminator_Admin_AJAX {
|
|
17 |
*/
|
18 |
public function __construct() {
|
19 |
// Handle close welcome box
|
20 |
-
add_action(
|
21 |
-
add_action(
|
22 |
|
23 |
// Handle load google fonts
|
24 |
-
add_action(
|
25 |
|
26 |
// Handle load reCaptcha preview
|
27 |
-
add_action(
|
28 |
|
29 |
// Handle save settings
|
30 |
-
add_action(
|
31 |
-
add_action(
|
32 |
-
add_action(
|
33 |
-
add_action(
|
34 |
-
add_action(
|
35 |
-
add_action(
|
36 |
|
37 |
// Handle settings popups
|
38 |
-
add_action(
|
39 |
-
add_action(
|
40 |
|
41 |
-
add_action(
|
42 |
-
add_action(
|
43 |
|
44 |
-
add_action(
|
45 |
-
add_action(
|
46 |
|
47 |
-
add_action(
|
48 |
-
add_action(
|
49 |
|
50 |
-
add_action(
|
51 |
|
52 |
-
add_action(
|
53 |
-
add_action(
|
54 |
|
55 |
-
add_action(
|
56 |
-
add_action(
|
57 |
-
add_action(
|
58 |
|
59 |
// Handle exports popup
|
60 |
-
add_action(
|
61 |
-
add_action(
|
62 |
|
63 |
// Handle search user email
|
64 |
-
add_action(
|
65 |
|
66 |
-
add_action(
|
67 |
-
add_action(
|
68 |
|
69 |
-
add_action(
|
70 |
-
add_action(
|
71 |
-
add_action(
|
72 |
|
73 |
add_action( "wp_ajax_forminator_load_import_custom_form_cf7_popup", array( $this, "load_import_custom_form_cf7" ) );
|
74 |
add_action( "wp_ajax_forminator_save_import_custom_form_cf7_popup", array( $this, "save_import_custom_form_cf7" ) );
|
@@ -83,29 +83,29 @@ class Forminator_Admin_AJAX {
|
|
83 |
add_action( "wp_ajax_forminator_load_import_poll_popup", array( $this, "load_import_poll" ) );
|
84 |
add_action( "wp_ajax_forminator_save_import_poll_popup", array( $this, "save_import_poll" ) );
|
85 |
|
86 |
-
add_action(
|
87 |
|
88 |
-
add_action(
|
89 |
-
add_action(
|
90 |
-
add_action(
|
91 |
|
92 |
-
add_action(
|
93 |
|
94 |
-
add_action(
|
95 |
-
add_action(
|
96 |
|
97 |
-
add_action(
|
98 |
-
add_action(
|
99 |
-
add_action(
|
100 |
|
101 |
-
add_action(
|
102 |
-
add_action(
|
103 |
-
add_action(
|
104 |
|
105 |
-
add_action(
|
106 |
-
add_action(
|
107 |
|
108 |
-
add_action(
|
109 |
}
|
110 |
|
111 |
/**
|
@@ -119,19 +119,19 @@ class Forminator_Admin_AJAX {
|
|
119 |
return;
|
120 |
}
|
121 |
|
122 |
-
forminator_validate_ajax(
|
123 |
|
124 |
$submitted_data = $this->get_post_data();
|
125 |
|
126 |
-
$quiz_data
|
127 |
if ( isset( $submitted_data['data'] ) ) {
|
128 |
$quiz_data = $submitted_data['data'];
|
129 |
$quiz_data = json_decode( stripslashes( $quiz_data ), true );
|
130 |
}
|
131 |
|
132 |
-
$questions
|
133 |
-
$results
|
134 |
-
$settings
|
135 |
$msg_count = false;
|
136 |
$id = isset( $submitted_data['form_id'] ) ? $submitted_data['form_id'] : null;
|
137 |
$id = intval( $id );
|
@@ -205,7 +205,7 @@ class Forminator_Admin_AJAX {
|
|
205 |
// Handle quiz questions
|
206 |
$form_model->questions = $questions;
|
207 |
|
208 |
-
if( isset( $quiz_data['settings']['msg_count'] ) ) {
|
209 |
$msg_count = $quiz_data['settings']['msg_count']; //Backup, we allow html here
|
210 |
}
|
211 |
|
@@ -229,7 +229,7 @@ class Forminator_Admin_AJAX {
|
|
229 |
}
|
230 |
|
231 |
// Update with backuped version
|
232 |
-
if( $msg_count ) {
|
233 |
$settings['msg_count'] = $msg_count;
|
234 |
}
|
235 |
|
@@ -277,7 +277,7 @@ class Forminator_Admin_AJAX {
|
|
277 |
return;
|
278 |
}
|
279 |
|
280 |
-
forminator_validate_ajax(
|
281 |
|
282 |
$submitted_data = $this->get_post_data();
|
283 |
$poll_data = array();
|
@@ -399,12 +399,12 @@ class Forminator_Admin_AJAX {
|
|
399 |
return;
|
400 |
}
|
401 |
|
402 |
-
forminator_validate_ajax(
|
403 |
|
404 |
$submitted_data = $this->get_post_data();
|
405 |
$form_data = $submitted_data['data'];
|
406 |
$form_data = json_decode( stripslashes( $form_data ), true );
|
407 |
-
$fields
|
408 |
$notifications = array();
|
409 |
$id = isset( $submitted_data['form_id'] ) ? $submitted_data['form_id'] : null;
|
410 |
$id = intval( $id );
|
@@ -457,6 +457,7 @@ class Forminator_Admin_AJAX {
|
|
457 |
|
458 |
// Sanitize settings
|
459 |
$settings = forminator_sanitize_field( $form_data['settings'] );
|
|
|
460 |
|
461 |
// Sanitize custom css
|
462 |
if ( isset( $form_data['settings']['custom_css'] ) ) {
|
@@ -554,7 +555,7 @@ class Forminator_Admin_AJAX {
|
|
554 |
return;
|
555 |
}
|
556 |
|
557 |
-
forminator_validate_ajax(
|
558 |
|
559 |
$submitted_data = $this->get_post_data();
|
560 |
$fields = array();
|
@@ -647,7 +648,7 @@ class Forminator_Admin_AJAX {
|
|
647 |
*/
|
648 |
public function load_existing_cfields() {
|
649 |
|
650 |
-
forminator_validate_ajax(
|
651 |
|
652 |
$keys = array();
|
653 |
$html = '';
|
@@ -665,8 +666,8 @@ class Forminator_Admin_AJAX {
|
|
665 |
* @since 1.0
|
666 |
*/
|
667 |
public function dismiss_welcome() {
|
668 |
-
forminator_validate_ajax(
|
669 |
-
update_option(
|
670 |
wp_send_json_success();
|
671 |
}
|
672 |
|
@@ -676,7 +677,7 @@ class Forminator_Admin_AJAX {
|
|
676 |
* @since 1.0
|
677 |
*/
|
678 |
public function load_fonts() {
|
679 |
-
forminator_validate_ajax(
|
680 |
_deprecated_function( 'load_fonts', '1.0.5', 'load_google_fonts' );
|
681 |
wp_send_json_error( array() );
|
682 |
}
|
@@ -688,13 +689,10 @@ class Forminator_Admin_AJAX {
|
|
688 |
* @since 1.0.5
|
689 |
*/
|
690 |
public function load_google_fonts() {
|
691 |
-
forminator_validate_ajax(
|
692 |
|
693 |
-
$is_object = false
|
694 |
|
695 |
-
if ( isset( $_POST['data']['isObject'] ) ) {
|
696 |
-
$is_object = sanitize_text_field( $_POST['data']['isObject'] );
|
697 |
-
}
|
698 |
$fonts = forminator_get_font_families( $is_object );
|
699 |
wp_send_json_success( $fonts );
|
700 |
}
|
@@ -706,7 +704,7 @@ class Forminator_Admin_AJAX {
|
|
706 |
*/
|
707 |
public function load_captcha() {
|
708 |
// Validate nonce
|
709 |
-
forminator_validate_ajax(
|
710 |
|
711 |
$html = forminator_template( 'settings/popup/edit-captcha-content' );
|
712 |
|
@@ -720,7 +718,7 @@ class Forminator_Admin_AJAX {
|
|
720 |
*/
|
721 |
public function save_captcha() {
|
722 |
// Validate nonce
|
723 |
-
forminator_validate_ajax(
|
724 |
|
725 |
update_option( "forminator_captcha_key", sanitize_text_field( $_POST['v2_captcha_key'] ) );
|
726 |
update_option( "forminator_captcha_secret", sanitize_text_field( $_POST['v2_captcha_secret'] ) );
|
@@ -742,7 +740,7 @@ class Forminator_Admin_AJAX {
|
|
742 |
* @since 1.0
|
743 |
*/
|
744 |
public function load_currency() {
|
745 |
-
forminator_validate_ajax(
|
746 |
|
747 |
$html = forminator_template( 'settings/popup/edit-currency-content' );
|
748 |
|
@@ -756,9 +754,10 @@ class Forminator_Admin_AJAX {
|
|
756 |
*/
|
757 |
public function save_currency() {
|
758 |
// Validate nonce
|
759 |
-
forminator_validate_ajax(
|
760 |
|
761 |
update_option( "forminator_currency", sanitize_text_field( $_POST['currency'] ) );
|
|
|
762 |
wp_send_json_success();
|
763 |
}
|
764 |
|
@@ -769,7 +768,7 @@ class Forminator_Admin_AJAX {
|
|
769 |
*/
|
770 |
public function load_pagination_entries() {
|
771 |
// Validate nonce
|
772 |
-
forminator_validate_ajax(
|
773 |
|
774 |
$html = forminator_template( 'settings/popup/edit-pagination-entries-content' );
|
775 |
|
@@ -783,21 +782,21 @@ class Forminator_Admin_AJAX {
|
|
783 |
*/
|
784 |
public function load_recaptcha_preview() {
|
785 |
$site_language = get_locale();
|
786 |
-
$language = get_option(
|
787 |
$language = ! empty( $language ) ? $language : $site_language;
|
788 |
|
789 |
-
$captcha = sanitize_text_field( $_POST['captcha'] )
|
790 |
|
791 |
if ( 'v2-invisible' === $captcha ) {
|
792 |
-
$captcha_key = get_option(
|
793 |
$captcha_size = 'invisible';
|
794 |
$onload = 'forminator_render_admin_captcha_v2_invisible';
|
795 |
} elseif ( 'v3' === $captcha ) {
|
796 |
-
$captcha_key = get_option(
|
797 |
$captcha_size = 'invisible';
|
798 |
$onload = 'forminator_render_admin_captcha_v3';
|
799 |
} else {
|
800 |
-
$captcha_key = get_option(
|
801 |
$captcha_size = 'normal';
|
802 |
$onload = 'forminator_render_admin_captcha_v2';
|
803 |
}
|
@@ -824,7 +823,7 @@ class Forminator_Admin_AJAX {
|
|
824 |
*/
|
825 |
public function load_pagination_listings() {
|
826 |
// Validate nonce
|
827 |
-
forminator_validate_ajax(
|
828 |
|
829 |
$html = forminator_template( 'settings/popup/edit-pagination-listings-content' );
|
830 |
|
@@ -838,18 +837,18 @@ class Forminator_Admin_AJAX {
|
|
838 |
*/
|
839 |
public function save_pagination_listings() {
|
840 |
// Validate nonce
|
841 |
-
forminator_validate_ajax(
|
842 |
|
843 |
$pagination = intval( sanitize_text_field( $_POST['pagination_listings'] ) );
|
844 |
|
845 |
if ( 0 < $pagination ) {
|
846 |
|
847 |
-
update_option(
|
848 |
wp_send_json_success();
|
849 |
|
850 |
} else {
|
851 |
|
852 |
-
wp_send_json_error( __(
|
853 |
|
854 |
}
|
855 |
|
@@ -862,7 +861,7 @@ class Forminator_Admin_AJAX {
|
|
862 |
*/
|
863 |
public function load_email_form() {
|
864 |
// Validate nonce
|
865 |
-
forminator_validate_ajax(
|
866 |
|
867 |
$html = forminator_template( 'settings/popup/edit-email-content' );
|
868 |
|
@@ -876,7 +875,7 @@ class Forminator_Admin_AJAX {
|
|
876 |
*/
|
877 |
public function load_uninstall_form() {
|
878 |
// Validate nonce
|
879 |
-
forminator_validate_ajax(
|
880 |
|
881 |
$html = forminator_template( 'settings/popup/edit-uninstall-content' );
|
882 |
|
@@ -891,12 +890,12 @@ class Forminator_Admin_AJAX {
|
|
891 |
*/
|
892 |
public function save_uninstall_form() {
|
893 |
// Validate nonce
|
894 |
-
forminator_validate_ajax(
|
895 |
|
896 |
$delete_uninstall = isset( $_POST['delete_uninstall'] ) ? sanitize_text_field( $_POST['delete_uninstall'] ) : false;
|
897 |
$delete_uninstall = filter_var( $delete_uninstall, FILTER_VALIDATE_BOOLEAN );
|
898 |
|
899 |
-
update_option(
|
900 |
wp_send_json_success();
|
901 |
|
902 |
}
|
@@ -908,7 +907,7 @@ class Forminator_Admin_AJAX {
|
|
908 |
*/
|
909 |
public function preview_custom_forms() {
|
910 |
// Validate nonce
|
911 |
-
|
912 |
|
913 |
$preview_data = false;
|
914 |
$form_id = false;
|
@@ -920,10 +919,11 @@ class Forminator_Admin_AJAX {
|
|
920 |
// Check if preview data set
|
921 |
if ( isset( $_POST['data'] ) && ! empty( $_POST['data'] ) ) {
|
922 |
$data = $_POST['data']; // WPCS: CSRF ok by forminator_validate_ajax.
|
|
|
923 |
if ( ! is_array( $data ) ) {
|
924 |
$data = json_decode( stripslashes( $data ), true );
|
925 |
}
|
926 |
-
$preview_data = forminator_data_to_model_form( $data );//
|
927 |
}
|
928 |
|
929 |
$html = forminator_form_preview( $form_id, true, $preview_data );
|
@@ -938,11 +938,11 @@ class Forminator_Admin_AJAX {
|
|
938 |
*/
|
939 |
public function preview_polls() {
|
940 |
// Validate nonce
|
941 |
-
|
942 |
|
943 |
$preview_data = false;
|
944 |
// force -1 for preview
|
945 |
-
$form_id = -
|
946 |
|
947 |
if ( isset( $_POST['id'] ) ) {
|
948 |
$form_id = intval( $_POST['id'] );
|
@@ -952,10 +952,11 @@ class Forminator_Admin_AJAX {
|
|
952 |
// Check if preview data set
|
953 |
if ( isset( $_POST['data'] ) && ! empty( $_POST['data'] ) ) {
|
954 |
$data = $_POST['data'];
|
|
|
955 |
if ( ! is_array( $data ) ) {
|
956 |
$data = json_decode( stripslashes( $data ), true );
|
957 |
}
|
958 |
-
$preview_data = forminator_data_to_model_poll( $data );//
|
959 |
}
|
960 |
|
961 |
$html = forminator_poll_preview( $form_id, true, $preview_data );
|
@@ -970,9 +971,8 @@ class Forminator_Admin_AJAX {
|
|
970 |
*/
|
971 |
public function preview_quizzes() {
|
972 |
// Validate nonce
|
973 |
-
forminator_validate_ajax(
|
974 |
|
975 |
-
$preview_data = false;
|
976 |
// force -1 for preview
|
977 |
$form_id = - 1;
|
978 |
|
@@ -997,9 +997,10 @@ class Forminator_Admin_AJAX {
|
|
997 |
*/
|
998 |
public function load_exports() {
|
999 |
// Validate nonce
|
1000 |
-
forminator_validate_ajax(
|
1001 |
|
1002 |
$form_id = isset( $_POST['id'] ) && $_POST['id'] >= 0 ? intval( $_POST['id'] ) : false;
|
|
|
1003 |
if ( $form_id ) {
|
1004 |
$args = array(
|
1005 |
'form_id' => $form_id,
|
@@ -1007,7 +1008,7 @@ class Forminator_Admin_AJAX {
|
|
1007 |
$html = forminator_template( 'settings/popup/exports-content', $args );
|
1008 |
wp_send_json_success( $html );
|
1009 |
} else {
|
1010 |
-
wp_send_json_error( __(
|
1011 |
}
|
1012 |
}
|
1013 |
|
@@ -1023,13 +1024,13 @@ class Forminator_Admin_AJAX {
|
|
1023 |
$form_id = isset( $_POST['id'] ) && $_POST['id'] >= 0 ? intval( $_POST['id'] ) : false;
|
1024 |
|
1025 |
if ( ! $form_id ) {
|
1026 |
-
wp_send_json_error( __(
|
1027 |
}
|
1028 |
|
1029 |
$was_cleared = delete_export_logs( $form_id );
|
1030 |
|
1031 |
if ( $was_cleared ) {
|
1032 |
-
wp_send_json_success( __(
|
1033 |
} else {
|
1034 |
wp_send_json_error( __( "Exports couldn't be cleared.", Forminator::DOMAIN ) );
|
1035 |
}
|
@@ -1042,7 +1043,7 @@ class Forminator_Admin_AJAX {
|
|
1042 |
* @since 1.1 change $_POST to `get_post_data`
|
1043 |
*/
|
1044 |
public function search_emails() {
|
1045 |
-
forminator_validate_ajax(
|
1046 |
if ( ! current_user_can( 'manage_options' ) ) {
|
1047 |
wp_send_json_error( array() );
|
1048 |
}
|
@@ -1130,7 +1131,7 @@ class Forminator_Admin_AJAX {
|
|
1130 |
}
|
1131 |
|
1132 |
// TODO : mark this as phpcs comply after checking usages of this function
|
1133 |
-
$post_data = $_POST
|
1134 |
|
1135 |
// do some sanitize
|
1136 |
foreach ( $sanitize_callbacks as $field => $sanitize_func ) {
|
@@ -1153,7 +1154,7 @@ class Forminator_Admin_AJAX {
|
|
1153 |
*/
|
1154 |
public function load_privacy_settings() {
|
1155 |
// Validate nonce
|
1156 |
-
forminator_validate_ajax(
|
1157 |
|
1158 |
$html = forminator_template( 'settings/popup/edit-privacy-settings' );
|
1159 |
|
@@ -1167,8 +1168,8 @@ class Forminator_Admin_AJAX {
|
|
1167 |
*/
|
1168 |
public function save_privacy_settings() {
|
1169 |
// Validate nonce
|
1170 |
-
forminator_validate_ajax(
|
1171 |
-
$post_data = $_POST
|
1172 |
|
1173 |
/**
|
1174 |
* CUSTOM FORMS
|
@@ -1183,6 +1184,7 @@ class Forminator_Admin_AJAX {
|
|
1183 |
|
1184 |
// Submissions Retention
|
1185 |
$cform_retain_forever = filter_var( $post_data['retain_submission_forever'], FILTER_VALIDATE_BOOLEAN );
|
|
|
1186 |
if ( $cform_retain_forever ) {
|
1187 |
$post_data['submissions_retention_number'] = 0;
|
1188 |
}
|
@@ -1200,6 +1202,7 @@ class Forminator_Admin_AJAX {
|
|
1200 |
|
1201 |
// IP Retention
|
1202 |
$cform_retain_ip_forever = filter_var( $post_data['retain_ip_forever'], FILTER_VALIDATE_BOOLEAN );
|
|
|
1203 |
if ( $cform_retain_ip_forever ) {
|
1204 |
$post_data['cform_retention_ip_number'] = 0;
|
1205 |
}
|
@@ -1215,12 +1218,12 @@ class Forminator_Admin_AJAX {
|
|
1215 |
update_option( 'forminator_retain_ip_interval_unit', $post_data['cform_retention_ip_unit'] );
|
1216 |
// IP Retention
|
1217 |
|
1218 |
-
|
1219 |
/**
|
1220 |
* POLLS
|
1221 |
*/
|
1222 |
// Submissions Retention
|
1223 |
$poll_retain_submissions_forever = filter_var( $post_data['poll_retain_submission_forever'], FILTER_VALIDATE_BOOLEAN );
|
|
|
1224 |
if ( $poll_retain_submissions_forever ) {
|
1225 |
$post_data['poll_submissions_retention_number'] = 0;
|
1226 |
}
|
@@ -1239,6 +1242,7 @@ class Forminator_Admin_AJAX {
|
|
1239 |
|
1240 |
// IP Retention
|
1241 |
$poll_retain_ip_forever = filter_var( $post_data['retain_poll_forever'], FILTER_VALIDATE_BOOLEAN );
|
|
|
1242 |
if ( $poll_retain_ip_forever ) {
|
1243 |
$post_data['votes_retention_number'] = 0;
|
1244 |
}
|
@@ -1259,6 +1263,7 @@ class Forminator_Admin_AJAX {
|
|
1259 |
*/
|
1260 |
// Submissions Retention
|
1261 |
$quiz_retain_submissions_forever = filter_var( $post_data['quiz_retain_submission_forever'], FILTER_VALIDATE_BOOLEAN );
|
|
|
1262 |
if ( $quiz_retain_submissions_forever ) {
|
1263 |
$post_data['quiz_submissions_retention_number'] = 0;
|
1264 |
}
|
@@ -1287,7 +1292,7 @@ class Forminator_Admin_AJAX {
|
|
1287 |
wp_send_json_success( '' );
|
1288 |
}
|
1289 |
// Validate nonce
|
1290 |
-
forminator_validate_ajax(
|
1291 |
|
1292 |
$html = forminator_template( 'custom-form/popup/export' );
|
1293 |
|
@@ -1304,7 +1309,7 @@ class Forminator_Admin_AJAX {
|
|
1304 |
wp_send_json_success( '' );
|
1305 |
}
|
1306 |
// Validate nonce
|
1307 |
-
forminator_validate_ajax(
|
1308 |
|
1309 |
$html = forminator_template( 'custom-form/popup/import' );
|
1310 |
|
@@ -1321,7 +1326,7 @@ class Forminator_Admin_AJAX {
|
|
1321 |
wp_send_json_error( __( 'Import Export Feature disabled.', Forminator::DOMAIN ) );
|
1322 |
}
|
1323 |
// Validate nonce
|
1324 |
-
forminator_validate_ajax(
|
1325 |
|
1326 |
$post_data = $this->get_post_data();
|
1327 |
$importable = isset( $post_data['importable'] ) ? $post_data['importable'] : '';// wpcs: CSRF ok
|
@@ -1622,7 +1627,7 @@ class Forminator_Admin_AJAX {
|
|
1622 |
wp_send_json_success( '' );
|
1623 |
}
|
1624 |
// Validate nonce
|
1625 |
-
forminator_validate_ajax(
|
1626 |
|
1627 |
$html = forminator_template( 'poll/popup/export' );
|
1628 |
|
@@ -1639,7 +1644,7 @@ class Forminator_Admin_AJAX {
|
|
1639 |
wp_send_json_success( '' );
|
1640 |
}
|
1641 |
// Validate nonce
|
1642 |
-
forminator_validate_ajax(
|
1643 |
|
1644 |
$html = forminator_template( 'poll/popup/import' );
|
1645 |
|
@@ -1656,7 +1661,7 @@ class Forminator_Admin_AJAX {
|
|
1656 |
wp_send_json_error( __( 'Import Export Feature disabled.', Forminator::DOMAIN ) );
|
1657 |
}
|
1658 |
// Validate nonce
|
1659 |
-
forminator_validate_ajax(
|
1660 |
|
1661 |
$post_data = $this->get_post_data();
|
1662 |
$importable = isset( $post_data['importable'] ) ? $post_data['importable'] : '';// wpcs: CSRF ok
|
@@ -1712,7 +1717,7 @@ class Forminator_Admin_AJAX {
|
|
1712 |
wp_send_json_success( '' );
|
1713 |
}
|
1714 |
// Validate nonce
|
1715 |
-
forminator_validate_ajax(
|
1716 |
|
1717 |
$html = forminator_template( 'quiz/popup/export' );
|
1718 |
|
@@ -1729,7 +1734,7 @@ class Forminator_Admin_AJAX {
|
|
1729 |
wp_send_json_success( '' );
|
1730 |
}
|
1731 |
// Validate nonce
|
1732 |
-
forminator_validate_ajax(
|
1733 |
|
1734 |
$html = forminator_template( 'quiz/popup/import' );
|
1735 |
|
@@ -1746,7 +1751,7 @@ class Forminator_Admin_AJAX {
|
|
1746 |
wp_send_json_error( __( 'Import Export Feature disabled.', Forminator::DOMAIN ) );
|
1747 |
}
|
1748 |
// Validate nonce
|
1749 |
-
forminator_validate_ajax(
|
1750 |
|
1751 |
$post_data = $this->get_post_data();
|
1752 |
$importable = isset( $post_data['importable'] ) ? $post_data['importable'] : '';// wpcs: CSRF ok
|
@@ -1800,17 +1805,17 @@ class Forminator_Admin_AJAX {
|
|
1800 |
*/
|
1801 |
public function save_pagination() {
|
1802 |
// Validate nonce
|
1803 |
-
forminator_validate_ajax(
|
1804 |
|
1805 |
$pagination = intval( sanitize_text_field( $_POST['pagination_entries'] ) );
|
1806 |
$pagination_listing = intval( sanitize_text_field( $_POST['pagination_listings'] ) );
|
1807 |
|
1808 |
if ( 1 > $pagination || 1 > $pagination_listing ) {
|
1809 |
-
wp_send_json_error( __(
|
1810 |
}
|
1811 |
|
1812 |
-
update_option(
|
1813 |
-
update_option(
|
1814 |
wp_send_json_success();
|
1815 |
|
1816 |
}
|
@@ -1822,12 +1827,12 @@ class Forminator_Admin_AJAX {
|
|
1822 |
*/
|
1823 |
public function save_accessibility_settings() {
|
1824 |
// Validate nonce
|
1825 |
-
forminator_validate_ajax(
|
1826 |
|
1827 |
$enable_accessibility = isset( $_POST['enable_accessibility'] ) ? $_POST['enable_accessibility'] : false;
|
1828 |
$enable_accessibility = filter_var( $enable_accessibility, FILTER_VALIDATE_BOOLEAN );
|
1829 |
|
1830 |
-
update_option(
|
1831 |
wp_send_json_success();
|
1832 |
}
|
1833 |
|
@@ -1838,14 +1843,14 @@ class Forminator_Admin_AJAX {
|
|
1838 |
*/
|
1839 |
public function save_dashboard_settings() {
|
1840 |
// Validate nonce
|
1841 |
-
forminator_validate_ajax(
|
1842 |
|
1843 |
$dashboard_settings = forminator_get_dashboard_settings();
|
1844 |
$widgets = array( 'forms', 'polls', 'quizzes' );
|
1845 |
|
1846 |
-
$num_recents = isset( $_POST['num_recent'] ) ? $_POST['num_recent'] : array()
|
1847 |
-
$publisheds = isset( $_POST['published'] ) ? $_POST['published'] : array()
|
1848 |
-
$drafts = isset( $_POST['draft'] ) ? $_POST['draft'] : array()
|
1849 |
|
1850 |
// value based settings
|
1851 |
foreach ( $num_recents as $widget => $value ) {
|
@@ -1881,12 +1886,13 @@ class Forminator_Admin_AJAX {
|
|
1881 |
$pagination = intval( sanitize_text_field( $_POST['pagination_entries'] ) );
|
1882 |
$pagination_listing = intval( sanitize_text_field( $_POST['pagination_listings'] ) );
|
1883 |
|
|
|
1884 |
if ( 1 > $pagination || 1 > $pagination_listing ) {
|
1885 |
-
wp_send_json_error( __(
|
1886 |
}
|
1887 |
|
1888 |
-
update_option(
|
1889 |
-
update_option(
|
1890 |
|
1891 |
wp_send_json_success();
|
1892 |
}
|
@@ -1902,7 +1908,7 @@ class Forminator_Admin_AJAX {
|
|
1902 |
forminator_validate_ajax( 'forminator_validate_calculation_formula' );
|
1903 |
|
1904 |
try {
|
1905 |
-
$formula = isset( $_POST['formula'] ) ? $_POST['formula'] : '';//
|
1906 |
|
1907 |
$formula = forminator_calculator_maybe_dummify_fields_on_formula( $formula );
|
1908 |
$calculator = new Forminator_Calculator( $formula );
|
@@ -1930,11 +1936,11 @@ class Forminator_Admin_AJAX {
|
|
1930 |
Forminator_Gateway_Stripe::store_settings( array() );
|
1931 |
}
|
1932 |
$data['notification'] = array(
|
1933 |
-
|
1934 |
-
|
1935 |
-
|
1936 |
);
|
1937 |
-
$file
|
1938 |
|
1939 |
ob_start();
|
1940 |
/** @noinspection PhpIncludeInspection */
|
@@ -1957,11 +1963,11 @@ class Forminator_Admin_AJAX {
|
|
1957 |
Forminator_PayPal_Express::store_settings( array() );
|
1958 |
}
|
1959 |
$data['notification'] = array(
|
1960 |
-
|
1961 |
-
|
1962 |
-
|
1963 |
);
|
1964 |
-
$file
|
1965 |
|
1966 |
ob_start();
|
1967 |
/** @noinspection PhpIncludeInspection */
|
@@ -1980,7 +1986,7 @@ class Forminator_Admin_AJAX {
|
|
1980 |
// Validate nonce
|
1981 |
forminator_validate_ajax( 'forminator_stripe_settings_modal' );
|
1982 |
|
1983 |
-
$file = forminator_plugin_dir() .
|
1984 |
|
1985 |
ob_start();
|
1986 |
/** @noinspection PhpIncludeInspection */
|
@@ -1999,7 +2005,7 @@ class Forminator_Admin_AJAX {
|
|
1999 |
// Validate nonce
|
2000 |
forminator_validate_ajax( 'forminator_paypal_settings_modal' );
|
2001 |
|
2002 |
-
$file = forminator_plugin_dir() .
|
2003 |
|
2004 |
ob_start();
|
2005 |
/** @noinspection PhpIncludeInspection */
|
@@ -2024,7 +2030,7 @@ class Forminator_Admin_AJAX {
|
|
2024 |
|
2025 |
$data = array();
|
2026 |
|
2027 |
-
$post_data = $_POST;//
|
2028 |
$is_connect_request = isset( $post_data['connect'] ) ? filter_var( $post_data['connect'] ) : false;
|
2029 |
$template_vars = array();
|
2030 |
try {
|
@@ -2041,7 +2047,6 @@ class Forminator_Admin_AJAX {
|
|
2041 |
$template_vars['live_key'] = $live_key;
|
2042 |
$template_vars['live_secret'] = $live_secret;
|
2043 |
|
2044 |
-
|
2045 |
if ( ! empty( $is_connect_request ) ) {
|
2046 |
if ( empty( $test_key ) ) {
|
2047 |
throw new Forminator_Gateway_Exception(
|
@@ -2083,7 +2088,6 @@ class Forminator_Admin_AJAX {
|
|
2083 |
)
|
2084 |
);
|
2085 |
|
2086 |
-
|
2087 |
$data['notification'] = array(
|
2088 |
'type' => 'success',
|
2089 |
'text' => __( 'Stripe account connected successfully. You can now add the Stripe field to your forms and start collecting payments.', Forminator::DOMAIN ),
|
@@ -2091,8 +2095,6 @@ class Forminator_Admin_AJAX {
|
|
2091 |
);
|
2092 |
|
2093 |
}
|
2094 |
-
|
2095 |
-
|
2096 |
} catch ( Forminator_Gateway_Exception $e ) {
|
2097 |
forminator_maybe_log( __METHOD__, $e->getMessage(), $e->getTrace() );
|
2098 |
$template_vars['error_message'] = $e->getMessage();
|
@@ -2137,7 +2139,7 @@ class Forminator_Admin_AJAX {
|
|
2137 |
'<span class="sui-loading-text">' . esc_html__( 'Connect', Forminator::DOMAIN ) . '</span>' .
|
2138 |
'<i class="sui-icon-loader sui-loading" aria-hidden="true"></i>' .
|
2139 |
'</button>' .
|
2140 |
-
|
2141 |
|
2142 |
wp_send_json_success( $data );
|
2143 |
}
|
@@ -2149,29 +2151,27 @@ class Forminator_Admin_AJAX {
|
|
2149 |
*/
|
2150 |
public function paypal_settings_modal() {
|
2151 |
// Validate nonce
|
2152 |
-
|
2153 |
forminator_validate_ajax( 'forminator_paypal_settings_modal' );
|
2154 |
|
2155 |
$data = array();
|
2156 |
|
2157 |
-
$post_data = $_POST;//
|
2158 |
$is_connect_request = isset( $post_data['connect'] ) ? filter_var( $post_data['connect'] ) : false;
|
2159 |
$template_vars = array();
|
2160 |
|
2161 |
try {
|
2162 |
$paypal = new Forminator_PayPal_Express();
|
2163 |
|
2164 |
-
$sandbox_id
|
2165 |
-
$sandbox_secret
|
2166 |
-
$live_id
|
2167 |
$live_secret = isset( $post_data['live_secret'] ) ? $post_data['live_secret'] : $paypal->get_live_secret();// WPCS: CSRF ok by forminator_validate_ajax.
|
2168 |
$default_currency = $paypal->get_default_currency();
|
2169 |
|
2170 |
-
$template_vars['sandbox_id']
|
2171 |
$template_vars['sandbox_secret'] = $sandbox_secret;
|
2172 |
-
$template_vars['live_id']
|
2173 |
-
$template_vars['live_secret']
|
2174 |
-
|
2175 |
|
2176 |
if ( ! empty( $is_connect_request ) ) {
|
2177 |
if ( empty( $sandbox_id ) ) {
|
@@ -2206,15 +2206,14 @@ class Forminator_Admin_AJAX {
|
|
2206 |
|
2207 |
Forminator_PayPal_Express::store_settings(
|
2208 |
array(
|
2209 |
-
'sandbox_id'
|
2210 |
-
'sandbox_secret'
|
2211 |
-
'live_id'
|
2212 |
-
'live_secret'
|
2213 |
-
'currency'
|
2214 |
)
|
2215 |
);
|
2216 |
|
2217 |
-
|
2218 |
$data['notification'] = array(
|
2219 |
'type' => 'success',
|
2220 |
'text' => __( 'PayPal account connected successfully. You can now add the PayPal field to your forms and start collecting payments.', Forminator::DOMAIN ),
|
@@ -2222,8 +2221,6 @@ class Forminator_Admin_AJAX {
|
|
2222 |
);
|
2223 |
|
2224 |
}
|
2225 |
-
|
2226 |
-
|
2227 |
} catch ( Forminator_Gateway_Exception $e ) {
|
2228 |
forminator_maybe_log( __METHOD__, $e->getMessage(), $e->getTrace() );
|
2229 |
$template_vars['error_message'] = $e->getMessage();
|
@@ -2264,11 +2261,11 @@ class Forminator_Admin_AJAX {
|
|
2264 |
$data['buttons'] = array();
|
2265 |
|
2266 |
$data['buttons']['connect']['markup'] = '<div class="sui-actions-right">' .
|
2267 |
-
|
2268 |
-
|
2269 |
-
|
2270 |
-
|
2271 |
-
|
2272 |
|
2273 |
wp_send_json_success( $data );
|
2274 |
}
|
@@ -2279,7 +2276,7 @@ class Forminator_Admin_AJAX {
|
|
2279 |
* @since 1.9
|
2280 |
*/
|
2281 |
public function dismiss_notice() {
|
2282 |
-
forminator_validate_ajax(
|
2283 |
|
2284 |
$notification_name = filter_input( INPUT_POST, 'prop', FILTER_SANITIZE_STRING );
|
2285 |
|
@@ -2310,7 +2307,7 @@ class Forminator_Admin_AJAX {
|
|
2310 |
* @since 1.7
|
2311 |
*/
|
2312 |
public function save_payments() {
|
2313 |
-
forminator_validate_ajax(
|
2314 |
|
2315 |
// stripe
|
2316 |
if ( isset( $_POST['stripe-default-currency'] ) && ! empty( $_POST['stripe-default-currency'] ) ) {
|
@@ -2334,7 +2331,6 @@ class Forminator_Admin_AJAX {
|
|
2334 |
)
|
2335 |
);
|
2336 |
|
2337 |
-
|
2338 |
} catch ( Forminator_Gateway_Exception $e ) {
|
2339 |
wp_send_json_error( $e->getMessage() );
|
2340 |
}
|
@@ -2347,10 +2343,10 @@ class Forminator_Admin_AJAX {
|
|
2347 |
try {
|
2348 |
$paypal = new Forminator_PayPal_Express();
|
2349 |
|
2350 |
-
$sandbox_id
|
2351 |
$sandbox_secret = $paypal->get_sandbox_secret();
|
2352 |
-
$live_id
|
2353 |
-
$live_secret
|
2354 |
|
2355 |
Forminator_PayPal_Express::store_settings(
|
2356 |
array(
|
@@ -2362,7 +2358,6 @@ class Forminator_Admin_AJAX {
|
|
2362 |
)
|
2363 |
);
|
2364 |
|
2365 |
-
|
2366 |
} catch ( Forminator_Gateway_Exception $e ) {
|
2367 |
wp_send_json_error( $e->getMessage() );
|
2368 |
}
|
@@ -2379,11 +2374,13 @@ class Forminator_Admin_AJAX {
|
|
2379 |
*/
|
2380 |
public function delete_poll_submissions() {
|
2381 |
forminator_validate_ajax( 'forminatorPollEntries' );
|
|
|
2382 |
if ( ! empty( $_POST['id'] ) ) {
|
2383 |
$form_id = intval( $_POST['id'] );
|
|
|
2384 |
Forminator_Form_Entry_Model::delete_by_form( $form_id );
|
2385 |
|
2386 |
-
$file = forminator_plugin_dir() .
|
2387 |
|
2388 |
ob_start();
|
2389 |
/** @noinspection PhpIncludeInspection */
|
17 |
*/
|
18 |
public function __construct() {
|
19 |
// Handle close welcome box
|
20 |
+
add_action( 'wp_ajax_forminator_dismiss_welcome', array( $this, 'dismiss_welcome' ) );
|
21 |
+
add_action( 'wp_ajax_nopriv_forminator_dismiss_welcome', array( $this, 'dismiss_welcome' ) );
|
22 |
|
23 |
// Handle load google fonts
|
24 |
+
add_action( 'wp_ajax_forminator_load_google_fonts', array( $this, 'load_google_fonts' ) );
|
25 |
|
26 |
// Handle load reCaptcha preview
|
27 |
+
add_action( 'wp_ajax_forminator_load_recaptcha_preview', array( $this, 'load_recaptcha_preview' ) );
|
28 |
|
29 |
// Handle save settings
|
30 |
+
add_action( 'wp_ajax_forminator_save_builder', array( $this, 'save_builder' ) );
|
31 |
+
add_action( 'wp_ajax_forminator_save_poll', array( $this, 'save_poll_form' ) );
|
32 |
+
add_action( 'wp_ajax_forminator_save_quiz_nowrong', array( $this, 'save_quiz' ) );
|
33 |
+
add_action( 'wp_ajax_forminator_save_quiz_knowledge', array( $this, 'save_quiz' ) );
|
34 |
+
add_action( 'wp_ajax_forminator_save_login', array( $this, 'save_login' ) );
|
35 |
+
add_action( 'wp_ajax_forminator_save_register', array( $this, 'save_register' ) );
|
36 |
|
37 |
// Handle settings popups
|
38 |
+
add_action( 'wp_ajax_forminator_load_captcha_popup', array( $this, 'load_captcha' ) );
|
39 |
+
add_action( 'wp_ajax_forminator_save_captcha_popup', array( $this, 'save_captcha' ) );
|
40 |
|
41 |
+
add_action( 'wp_ajax_forminator_load_currency_popup', array( $this, 'load_currency' ) );
|
42 |
+
add_action( 'wp_ajax_forminator_save_currency_popup', array( $this, 'save_currency' ) );
|
43 |
|
44 |
+
add_action( 'wp_ajax_forminator_load_pagination_entries_popup', array( $this, 'load_pagination_entries' ) );
|
45 |
+
add_action( 'wp_ajax_forminator_save_pagination_entries_popup', array( $this, 'save_pagination_entries' ) );
|
46 |
|
47 |
+
add_action( 'wp_ajax_forminator_load_pagination_listings_popup', array( $this, 'load_pagination_listings' ) );
|
48 |
+
add_action( 'wp_ajax_forminator_save_pagination_listings_popup', array( $this, 'save_pagination_listings' ) );
|
49 |
|
50 |
+
add_action( 'wp_ajax_forminator_load_email_settings_popup', array( $this, 'load_email_form' ) );
|
51 |
|
52 |
+
add_action( 'wp_ajax_forminator_load_uninstall_settings_popup', array( $this, 'load_uninstall_form' ) );
|
53 |
+
add_action( 'wp_ajax_forminator_save_uninstall_settings_popup', array( $this, 'save_uninstall_form' ) );
|
54 |
|
55 |
+
add_action( 'wp_ajax_forminator_load_preview_cforms_popup', array( $this, 'preview_custom_forms' ) );
|
56 |
+
add_action( 'wp_ajax_forminator_load_preview_polls_popup', array( $this, 'preview_polls' ) );
|
57 |
+
add_action( 'wp_ajax_forminator_load_preview_quizzes_popup', array( $this, 'preview_quizzes' ) );
|
58 |
|
59 |
// Handle exports popup
|
60 |
+
add_action( 'wp_ajax_forminator_load_exports_popup', array( $this, 'load_exports' ) );
|
61 |
+
add_action( 'wp_ajax_forminator_clear_exports_popup', array( $this, 'clear_exports' ) );
|
62 |
|
63 |
// Handle search user email
|
64 |
+
add_action( 'wp_ajax_forminator_builder_search_emails', array( $this, 'search_emails' ) );
|
65 |
|
66 |
+
add_action( 'wp_ajax_forminator_load_privacy_settings_popup', array( $this, 'load_privacy_settings' ) );
|
67 |
+
add_action( 'wp_ajax_forminator_save_privacy_settings_popup', array( $this, 'save_privacy_settings' ) );
|
68 |
|
69 |
+
add_action( 'wp_ajax_forminator_load_export_custom_form_popup', array( $this, 'load_export_custom_form' ) );
|
70 |
+
add_action( 'wp_ajax_forminator_load_import_custom_form_popup', array( $this, 'load_import_custom_form' ) );
|
71 |
+
add_action( 'wp_ajax_forminator_save_import_custom_form_popup', array( $this, 'save_import_custom_form' ) );
|
72 |
|
73 |
add_action( "wp_ajax_forminator_load_import_custom_form_cf7_popup", array( $this, "load_import_custom_form_cf7" ) );
|
74 |
add_action( "wp_ajax_forminator_save_import_custom_form_cf7_popup", array( $this, "save_import_custom_form_cf7" ) );
|
83 |
add_action( "wp_ajax_forminator_load_import_poll_popup", array( $this, "load_import_poll" ) );
|
84 |
add_action( "wp_ajax_forminator_save_import_poll_popup", array( $this, "save_import_poll" ) );
|
85 |
|
86 |
+
add_action( 'wp_ajax_forminator_delete_poll_submissions', array( $this, 'delete_poll_submissions' ) );
|
87 |
|
88 |
+
add_action( 'wp_ajax_forminator_load_export_quiz_popup', array( $this, 'load_export_quiz' ) );
|
89 |
+
add_action( 'wp_ajax_forminator_load_import_quiz_popup', array( $this, 'load_import_quiz' ) );
|
90 |
+
add_action( 'wp_ajax_forminator_save_import_quiz_popup', array( $this, 'save_import_quiz' ) );
|
91 |
|
92 |
+
add_action( 'wp_ajax_forminator_save_accessibility_settings_popup', array( $this, 'save_accessibility_settings' ) );
|
93 |
|
94 |
+
add_action( 'wp_ajax_forminator_validate_calculation_formula', array( $this, 'validate_calculation_formula' ) );
|
95 |
+
add_action( 'wp_ajax_forminator_save_dashboard_settings_popup', array( $this, 'save_dashboard_settings' ) );
|
96 |
|
97 |
+
add_action( 'wp_ajax_forminator_stripe_settings_modal', array( $this, 'stripe_settings_modal' ) );
|
98 |
+
add_action( 'wp_ajax_forminator_stripe_update_page', array( $this, 'stripe_update_page' ) );
|
99 |
+
add_action( 'wp_ajax_forminator_disconnect_stripe', array( $this, 'stripe_disconnect' ) );
|
100 |
|
101 |
+
add_action( 'wp_ajax_forminator_paypal_settings_modal', array( $this, 'paypal_settings_modal' ) );
|
102 |
+
add_action( 'wp_ajax_forminator_paypal_update_page', array( $this, 'paypal_update_page' ) );
|
103 |
+
add_action( 'wp_ajax_forminator_disconnect_paypal', array( $this, 'paypal_disconnect' ) );
|
104 |
|
105 |
+
add_action( 'wp_ajax_forminator_save_payments_settings_popup', array( $this, 'save_payments' ) );
|
106 |
+
add_action( 'wp_ajax_forminator_dismiss_notification', array( $this, 'dismiss_notice' ) );
|
107 |
|
108 |
+
add_action( 'wp_ajax_forminator_later_notification', array( $this, 'later_notice' ) );
|
109 |
}
|
110 |
|
111 |
/**
|
119 |
return;
|
120 |
}
|
121 |
|
122 |
+
forminator_validate_ajax( 'forminator_save_quiz' );
|
123 |
|
124 |
$submitted_data = $this->get_post_data();
|
125 |
|
126 |
+
$quiz_data = array();
|
127 |
if ( isset( $submitted_data['data'] ) ) {
|
128 |
$quiz_data = $submitted_data['data'];
|
129 |
$quiz_data = json_decode( stripslashes( $quiz_data ), true );
|
130 |
}
|
131 |
|
132 |
+
$questions = array();
|
133 |
+
$results = array();
|
134 |
+
$settings = array();
|
135 |
$msg_count = false;
|
136 |
$id = isset( $submitted_data['form_id'] ) ? $submitted_data['form_id'] : null;
|
137 |
$id = intval( $id );
|
205 |
// Handle quiz questions
|
206 |
$form_model->questions = $questions;
|
207 |
|
208 |
+
if ( isset( $quiz_data['settings']['msg_count'] ) ) {
|
209 |
$msg_count = $quiz_data['settings']['msg_count']; //Backup, we allow html here
|
210 |
}
|
211 |
|
229 |
}
|
230 |
|
231 |
// Update with backuped version
|
232 |
+
if ( $msg_count ) {
|
233 |
$settings['msg_count'] = $msg_count;
|
234 |
}
|
235 |
|
277 |
return;
|
278 |
}
|
279 |
|
280 |
+
forminator_validate_ajax( 'forminator_save_poll' );
|
281 |
|
282 |
$submitted_data = $this->get_post_data();
|
283 |
$poll_data = array();
|
399 |
return;
|
400 |
}
|
401 |
|
402 |
+
forminator_validate_ajax( 'forminator_save_builder_fields' );
|
403 |
|
404 |
$submitted_data = $this->get_post_data();
|
405 |
$form_data = $submitted_data['data'];
|
406 |
$form_data = json_decode( stripslashes( $form_data ), true );
|
407 |
+
$fields = array();
|
408 |
$notifications = array();
|
409 |
$id = isset( $submitted_data['form_id'] ) ? $submitted_data['form_id'] : null;
|
410 |
$id = intval( $id );
|
457 |
|
458 |
// Sanitize settings
|
459 |
$settings = forminator_sanitize_field( $form_data['settings'] );
|
460 |
+
$settings = apply_filters( 'forminator_builder_data_settings_before_saving', $settings, $form_data['settings'] );
|
461 |
|
462 |
// Sanitize custom css
|
463 |
if ( isset( $form_data['settings']['custom_css'] ) ) {
|
555 |
return;
|
556 |
}
|
557 |
|
558 |
+
forminator_validate_ajax( 'forminator_save_builder_fields' );
|
559 |
|
560 |
$submitted_data = $this->get_post_data();
|
561 |
$fields = array();
|
648 |
*/
|
649 |
public function load_existing_cfields() {
|
650 |
|
651 |
+
forminator_validate_ajax( 'forminator_load_existing_cfields' );
|
652 |
|
653 |
$keys = array();
|
654 |
$html = '';
|
666 |
* @since 1.0
|
667 |
*/
|
668 |
public function dismiss_welcome() {
|
669 |
+
forminator_validate_ajax( 'forminator_dismiss_welcome' );
|
670 |
+
update_option( 'forminator_welcome_dismissed', true );
|
671 |
wp_send_json_success();
|
672 |
}
|
673 |
|
677 |
* @since 1.0
|
678 |
*/
|
679 |
public function load_fonts() {
|
680 |
+
forminator_validate_ajax( 'forminator_load_fonts' );
|
681 |
_deprecated_function( 'load_fonts', '1.0.5', 'load_google_fonts' );
|
682 |
wp_send_json_error( array() );
|
683 |
}
|
689 |
* @since 1.0.5
|
690 |
*/
|
691 |
public function load_google_fonts() {
|
692 |
+
forminator_validate_ajax( 'forminator_load_google_fonts' );
|
693 |
|
694 |
+
$is_object = isset( $_POST['data']['isObject'] ) ? sanitize_text_field( $_POST['data']['isObject'] ) : false;// phpcs:ignore -- by forminator_validate_ajax
|
695 |
|
|
|
|
|
|
|
696 |
$fonts = forminator_get_font_families( $is_object );
|
697 |
wp_send_json_success( $fonts );
|
698 |
}
|
704 |
*/
|
705 |
public function load_captcha() {
|
706 |
// Validate nonce
|
707 |
+
forminator_validate_ajax( 'forminator_popup_captcha' );
|
708 |
|
709 |
$html = forminator_template( 'settings/popup/edit-captcha-content' );
|
710 |
|
718 |
*/
|
719 |
public function save_captcha() {
|
720 |
// Validate nonce
|
721 |
+
forminator_validate_ajax( 'forminator_save_popup_captcha' );
|
722 |
|
723 |
update_option( "forminator_captcha_key", sanitize_text_field( $_POST['v2_captcha_key'] ) );
|
724 |
update_option( "forminator_captcha_secret", sanitize_text_field( $_POST['v2_captcha_secret'] ) );
|
740 |
* @since 1.0
|
741 |
*/
|
742 |
public function load_currency() {
|
743 |
+
forminator_validate_ajax( 'forminator_popup_currency' );
|
744 |
|
745 |
$html = forminator_template( 'settings/popup/edit-currency-content' );
|
746 |
|
754 |
*/
|
755 |
public function save_currency() {
|
756 |
// Validate nonce
|
757 |
+
forminator_validate_ajax( 'forminator_save_popup_currency' );
|
758 |
|
759 |
update_option( "forminator_currency", sanitize_text_field( $_POST['currency'] ) );
|
760 |
+
|
761 |
wp_send_json_success();
|
762 |
}
|
763 |
|
768 |
*/
|
769 |
public function load_pagination_entries() {
|
770 |
// Validate nonce
|
771 |
+
forminator_validate_ajax( 'forminator_popup_pagination_entries' );
|
772 |
|
773 |
$html = forminator_template( 'settings/popup/edit-pagination-entries-content' );
|
774 |
|
782 |
*/
|
783 |
public function load_recaptcha_preview() {
|
784 |
$site_language = get_locale();
|
785 |
+
$language = get_option( 'forminator_captcha_language', '' );
|
786 |
$language = ! empty( $language ) ? $language : $site_language;
|
787 |
|
788 |
+
$captcha = sanitize_text_field( $_POST['captcha'] );// phpcs:ignore -- data without nonce verification
|
789 |
|
790 |
if ( 'v2-invisible' === $captcha ) {
|
791 |
+
$captcha_key = get_option( 'forminator_v2_invisible_captcha_key', '' );
|
792 |
$captcha_size = 'invisible';
|
793 |
$onload = 'forminator_render_admin_captcha_v2_invisible';
|
794 |
} elseif ( 'v3' === $captcha ) {
|
795 |
+
$captcha_key = get_option( 'forminator_v3_captcha_key', '' );
|
796 |
$captcha_size = 'invisible';
|
797 |
$onload = 'forminator_render_admin_captcha_v3';
|
798 |
} else {
|
799 |
+
$captcha_key = get_option( 'forminator_captcha_key', '' );
|
800 |
$captcha_size = 'normal';
|
801 |
$onload = 'forminator_render_admin_captcha_v2';
|
802 |
}
|
823 |
*/
|
824 |
public function load_pagination_listings() {
|
825 |
// Validate nonce
|
826 |
+
forminator_validate_ajax( 'forminator_popup_pagination_listings' );
|
827 |
|
828 |
$html = forminator_template( 'settings/popup/edit-pagination-listings-content' );
|
829 |
|
837 |
*/
|
838 |
public function save_pagination_listings() {
|
839 |
// Validate nonce
|
840 |
+
forminator_validate_ajax( 'forminator_save_popup_pagination_listings' );
|
841 |
|
842 |
$pagination = intval( sanitize_text_field( $_POST['pagination_listings'] ) );
|
843 |
|
844 |
if ( 0 < $pagination ) {
|
845 |
|
846 |
+
update_option( 'forminator_pagination_listings', $pagination );
|
847 |
wp_send_json_success();
|
848 |
|
849 |
} else {
|
850 |
|
851 |
+
wp_send_json_error( __( 'Limit per page can not be less than one.', Forminator::DOMAIN ) );
|
852 |
|
853 |
}
|
854 |
|
861 |
*/
|
862 |
public function load_email_form() {
|
863 |
// Validate nonce
|
864 |
+
forminator_validate_ajax( 'forminator_load_popup_email_settings' );
|
865 |
|
866 |
$html = forminator_template( 'settings/popup/edit-email-content' );
|
867 |
|
875 |
*/
|
876 |
public function load_uninstall_form() {
|
877 |
// Validate nonce
|
878 |
+
forminator_validate_ajax( 'forminator_popup_uninstall_form' );
|
879 |
|
880 |
$html = forminator_template( 'settings/popup/edit-uninstall-content' );
|
881 |
|
890 |
*/
|
891 |
public function save_uninstall_form() {
|
892 |
// Validate nonce
|
893 |
+
forminator_validate_ajax( 'forminator_save_popup_uninstall_settings' );
|
894 |
|
895 |
$delete_uninstall = isset( $_POST['delete_uninstall'] ) ? sanitize_text_field( $_POST['delete_uninstall'] ) : false;
|
896 |
$delete_uninstall = filter_var( $delete_uninstall, FILTER_VALIDATE_BOOLEAN );
|
897 |
|
898 |
+
update_option( 'forminator_uninstall_clear_data', $delete_uninstall );
|
899 |
wp_send_json_success();
|
900 |
|
901 |
}
|
907 |
*/
|
908 |
public function preview_custom_forms() {
|
909 |
// Validate nonce
|
910 |
+
forminator_validate_ajax( 'forminator_popup_preview_cforms' );
|
911 |
|
912 |
$preview_data = false;
|
913 |
$form_id = false;
|
919 |
// Check if preview data set
|
920 |
if ( isset( $_POST['data'] ) && ! empty( $_POST['data'] ) ) {
|
921 |
$data = $_POST['data']; // WPCS: CSRF ok by forminator_validate_ajax.
|
922 |
+
|
923 |
if ( ! is_array( $data ) ) {
|
924 |
$data = json_decode( stripslashes( $data ), true );
|
925 |
}
|
926 |
+
$preview_data = forminator_data_to_model_form( $data );// phpcs:ignore -- by forminator_validate_ajax
|
927 |
}
|
928 |
|
929 |
$html = forminator_form_preview( $form_id, true, $preview_data );
|
938 |
*/
|
939 |
public function preview_polls() {
|
940 |
// Validate nonce
|
941 |
+
forminator_validate_ajax( 'forminator_popup_preview_polls' );
|
942 |
|
943 |
$preview_data = false;
|
944 |
// force -1 for preview
|
945 |
+
$form_id = isset( $_POST['id'] ) ? intval( $_POST['id'] ) : -1;// phpcs:ignore -- by forminator_validate_ajax
|
946 |
|
947 |
if ( isset( $_POST['id'] ) ) {
|
948 |
$form_id = intval( $_POST['id'] );
|
952 |
// Check if preview data set
|
953 |
if ( isset( $_POST['data'] ) && ! empty( $_POST['data'] ) ) {
|
954 |
$data = $_POST['data'];
|
955 |
+
|
956 |
if ( ! is_array( $data ) ) {
|
957 |
$data = json_decode( stripslashes( $data ), true );
|
958 |
}
|
959 |
+
$preview_data = forminator_data_to_model_poll( $data );// phpcs:ignore -- by forminator_validate_ajax
|
960 |
}
|
961 |
|
962 |
$html = forminator_poll_preview( $form_id, true, $preview_data );
|
971 |
*/
|
972 |
public function preview_quizzes() {
|
973 |
// Validate nonce
|
974 |
+
forminator_validate_ajax( 'forminator_popup_preview_quizzes' );
|
975 |
|
|
|
976 |
// force -1 for preview
|
977 |
$form_id = - 1;
|
978 |
|
997 |
*/
|
998 |
public function load_exports() {
|
999 |
// Validate nonce
|
1000 |
+
forminator_validate_ajax( 'forminator_load_exports' );
|
1001 |
|
1002 |
$form_id = isset( $_POST['id'] ) && $_POST['id'] >= 0 ? intval( $_POST['id'] ) : false;
|
1003 |
+
|
1004 |
if ( $form_id ) {
|
1005 |
$args = array(
|
1006 |
'form_id' => $form_id,
|
1008 |
$html = forminator_template( 'settings/popup/exports-content', $args );
|
1009 |
wp_send_json_success( $html );
|
1010 |
} else {
|
1011 |
+
wp_send_json_error( __( 'Not valid module ID provided.', Forminator::DOMAIN ) );
|
1012 |
}
|
1013 |
}
|
1014 |
|
1024 |
$form_id = isset( $_POST['id'] ) && $_POST['id'] >= 0 ? intval( $_POST['id'] ) : false;
|
1025 |
|
1026 |
if ( ! $form_id ) {
|
1027 |
+
wp_send_json_error( __( 'No ID was provided.', Forminator::DOMAIN ) );
|
1028 |
}
|
1029 |
|
1030 |
$was_cleared = delete_export_logs( $form_id );
|
1031 |
|
1032 |
if ( $was_cleared ) {
|
1033 |
+
wp_send_json_success( __( 'Exports cleared.', Forminator::DOMAIN ) );
|
1034 |
} else {
|
1035 |
wp_send_json_error( __( "Exports couldn't be cleared.", Forminator::DOMAIN ) );
|
1036 |
}
|
1043 |
* @since 1.1 change $_POST to `get_post_data`
|
1044 |
*/
|
1045 |
public function search_emails() {
|
1046 |
+
forminator_validate_ajax( 'forminator_search_emails' );
|
1047 |
if ( ! current_user_can( 'manage_options' ) ) {
|
1048 |
wp_send_json_error( array() );
|
1049 |
}
|
1131 |
}
|
1132 |
|
1133 |
// TODO : mark this as phpcs comply after checking usages of this function
|
1134 |
+
$post_data = $_POST;// phpcs:ignore -- by forminator_validate_ajax
|
1135 |
|
1136 |
// do some sanitize
|
1137 |
foreach ( $sanitize_callbacks as $field => $sanitize_func ) {
|
1154 |
*/
|
1155 |
public function load_privacy_settings() {
|
1156 |
// Validate nonce
|
1157 |
+
forminator_validate_ajax( 'forminator_popup_privacy_settings' );
|
1158 |
|
1159 |
$html = forminator_template( 'settings/popup/edit-privacy-settings' );
|
1160 |
|
1168 |
*/
|
1169 |
public function save_privacy_settings() {
|
1170 |
// Validate nonce
|
1171 |
+
forminator_validate_ajax( 'forminator_save_privacy_settings' );
|
1172 |
+
$post_data = $_POST;// phpcs:ignore -- by forminator_validate_ajax
|
1173 |
|
1174 |
/**
|
1175 |
* CUSTOM FORMS
|
1184 |
|
1185 |
// Submissions Retention
|
1186 |
$cform_retain_forever = filter_var( $post_data['retain_submission_forever'], FILTER_VALIDATE_BOOLEAN );
|
1187 |
+
update_option( 'retain_submission_forever', $cform_retain_forever );
|
1188 |
if ( $cform_retain_forever ) {
|
1189 |
$post_data['submissions_retention_number'] = 0;
|
1190 |
}
|
1202 |
|
1203 |
// IP Retention
|
1204 |
$cform_retain_ip_forever = filter_var( $post_data['retain_ip_forever'], FILTER_VALIDATE_BOOLEAN );
|
1205 |
+
update_option( 'retain_ip_forever', $cform_retain_ip_forever );
|
1206 |
if ( $cform_retain_ip_forever ) {
|
1207 |
$post_data['cform_retention_ip_number'] = 0;
|
1208 |
}
|
1218 |
update_option( 'forminator_retain_ip_interval_unit', $post_data['cform_retention_ip_unit'] );
|
1219 |
// IP Retention
|
1220 |
|
|
|
1221 |
/**
|
1222 |
* POLLS
|
1223 |
*/
|
1224 |
// Submissions Retention
|
1225 |
$poll_retain_submissions_forever = filter_var( $post_data['poll_retain_submission_forever'], FILTER_VALIDATE_BOOLEAN );
|
1226 |
+
update_option( 'poll_retain_submission_forever', $poll_retain_submissions_forever );
|
1227 |
if ( $poll_retain_submissions_forever ) {
|
1228 |
$post_data['poll_submissions_retention_number'] = 0;
|
1229 |
}
|
1242 |
|
1243 |
// IP Retention
|
1244 |
$poll_retain_ip_forever = filter_var( $post_data['retain_poll_forever'], FILTER_VALIDATE_BOOLEAN );
|
1245 |
+
update_option( 'retain_poll_forever', $poll_retain_ip_forever );
|
1246 |
if ( $poll_retain_ip_forever ) {
|
1247 |
$post_data['votes_retention_number'] = 0;
|
1248 |
}
|
1263 |
*/
|
1264 |
// Submissions Retention
|
1265 |
$quiz_retain_submissions_forever = filter_var( $post_data['quiz_retain_submission_forever'], FILTER_VALIDATE_BOOLEAN );
|
1266 |
+
update_option( 'quiz_retain_submission_forever', $quiz_retain_submissions_forever );
|
1267 |
if ( $quiz_retain_submissions_forever ) {
|
1268 |
$post_data['quiz_submissions_retention_number'] = 0;
|
1269 |
}
|
1292 |
wp_send_json_success( '' );
|
1293 |
}
|
1294 |
// Validate nonce
|
1295 |
+
forminator_validate_ajax( 'forminator_popup_export_cform' );
|
1296 |
|
1297 |
$html = forminator_template( 'custom-form/popup/export' );
|
1298 |
|
1309 |
wp_send_json_success( '' );
|
1310 |
}
|
1311 |
// Validate nonce
|
1312 |
+
forminator_validate_ajax( 'forminator_popup_import_cform' );
|
1313 |
|
1314 |
$html = forminator_template( 'custom-form/popup/import' );
|
1315 |
|
1326 |
wp_send_json_error( __( 'Import Export Feature disabled.', Forminator::DOMAIN ) );
|
1327 |
}
|
1328 |
// Validate nonce
|
1329 |
+
forminator_validate_ajax( 'forminator_save_import_custom_form' );
|
1330 |
|
1331 |
$post_data = $this->get_post_data();
|
1332 |
$importable = isset( $post_data['importable'] ) ? $post_data['importable'] : '';// wpcs: CSRF ok
|
1627 |
wp_send_json_success( '' );
|
1628 |
}
|
1629 |
// Validate nonce
|
1630 |
+
forminator_validate_ajax( 'forminator_popup_export_poll' );
|
1631 |
|
1632 |
$html = forminator_template( 'poll/popup/export' );
|
1633 |
|
1644 |
wp_send_json_success( '' );
|
1645 |
}
|
1646 |
// Validate nonce
|
1647 |
+
forminator_validate_ajax( 'forminator_popup_import_poll' );
|
1648 |
|
1649 |
$html = forminator_template( 'poll/popup/import' );
|
1650 |
|
1661 |
wp_send_json_error( __( 'Import Export Feature disabled.', Forminator::DOMAIN ) );
|
1662 |
}
|
1663 |
// Validate nonce
|
1664 |
+
forminator_validate_ajax( 'forminator_save_import_poll' );
|
1665 |
|
1666 |
$post_data = $this->get_post_data();
|
1667 |
$importable = isset( $post_data['importable'] ) ? $post_data['importable'] : '';// wpcs: CSRF ok
|
1717 |
wp_send_json_success( '' );
|
1718 |
}
|
1719 |
// Validate nonce
|
1720 |
+
forminator_validate_ajax( 'forminator_popup_export_quiz' );
|
1721 |
|
1722 |
$html = forminator_template( 'quiz/popup/export' );
|
1723 |
|
1734 |
wp_send_json_success( '' );
|
1735 |
}
|
1736 |
// Validate nonce
|
1737 |
+
forminator_validate_ajax( 'forminator_popup_import_quiz' );
|
1738 |
|
1739 |
$html = forminator_template( 'quiz/popup/import' );
|
1740 |
|
1751 |
wp_send_json_error( __( 'Import Export Feature disabled.', Forminator::DOMAIN ) );
|
1752 |
}
|
1753 |
// Validate nonce
|
1754 |
+
forminator_validate_ajax( 'forminator_save_import_quiz' );
|
1755 |
|
1756 |
$post_data = $this->get_post_data();
|
1757 |
$importable = isset( $post_data['importable'] ) ? $post_data['importable'] : '';// wpcs: CSRF ok
|
1805 |
*/
|
1806 |
public function save_pagination() {
|
1807 |
// Validate nonce
|
1808 |
+
forminator_validate_ajax( 'forminator_save_popup_pagination' );
|
1809 |
|
1810 |
$pagination = intval( sanitize_text_field( $_POST['pagination_entries'] ) );
|
1811 |
$pagination_listing = intval( sanitize_text_field( $_POST['pagination_listings'] ) );
|
1812 |
|
1813 |
if ( 1 > $pagination || 1 > $pagination_listing ) {
|
1814 |
+
wp_send_json_error( __( 'Limit per page can not be less than one.', Forminator::DOMAIN ) );
|
1815 |
}
|
1816 |
|
1817 |
+
update_option( 'forminator_pagination_entries', $pagination );
|
1818 |
+
update_option( 'forminator_pagination_listings', $pagination_listing );
|
1819 |
wp_send_json_success();
|
1820 |
|
1821 |
}
|
1827 |
*/
|
1828 |
public function save_accessibility_settings() {
|
1829 |
// Validate nonce
|
1830 |
+
forminator_validate_ajax( 'forminator_save_accessibility_settings' );
|
1831 |
|
1832 |
$enable_accessibility = isset( $_POST['enable_accessibility'] ) ? $_POST['enable_accessibility'] : false;
|
1833 |
$enable_accessibility = filter_var( $enable_accessibility, FILTER_VALIDATE_BOOLEAN );
|
1834 |
|
1835 |
+
update_option( 'forminator_enable_accessibility', $enable_accessibility );
|
1836 |
wp_send_json_success();
|
1837 |
}
|
1838 |
|
1843 |
*/
|
1844 |
public function save_dashboard_settings() {
|
1845 |
// Validate nonce
|
1846 |
+
forminator_validate_ajax( 'forminator_save_dashboard_settings' );
|
1847 |
|
1848 |
$dashboard_settings = forminator_get_dashboard_settings();
|
1849 |
$widgets = array( 'forms', 'polls', 'quizzes' );
|
1850 |
|
1851 |
+
$num_recents = isset( $_POST['num_recent'] ) ? $_POST['num_recent'] : array();// phpcs:ignore -- by forminator_validate_ajax
|
1852 |
+
$publisheds = isset( $_POST['published'] ) ? $_POST['published'] : array();// phpcs:ignore -- by forminator_validate_ajax
|
1853 |
+
$drafts = isset( $_POST['draft'] ) ? $_POST['draft'] : array();// phpcs:ignore -- by forminator_validate_ajax
|
1854 |
|
1855 |
// value based settings
|
1856 |
foreach ( $num_recents as $widget => $value ) {
|
1886 |
$pagination = intval( sanitize_text_field( $_POST['pagination_entries'] ) );
|
1887 |
$pagination_listing = intval( sanitize_text_field( $_POST['pagination_listings'] ) );
|
1888 |
|
1889 |
+
|
1890 |
if ( 1 > $pagination || 1 > $pagination_listing ) {
|
1891 |
+
wp_send_json_error( __( 'Limit per page can not be less than one.', Forminator::DOMAIN ) );
|
1892 |
}
|
1893 |
|
1894 |
+
update_option( 'forminator_pagination_entries', $pagination );
|
1895 |
+
update_option( 'forminator_pagination_listings', $pagination_listing );
|
1896 |
|
1897 |
wp_send_json_success();
|
1898 |
}
|
1908 |
forminator_validate_ajax( 'forminator_validate_calculation_formula' );
|
1909 |
|
1910 |
try {
|
1911 |
+
$formula = isset( $_POST['formula'] ) ? $_POST['formula'] : '';// phpcs:ignore -- by forminator_validate_ajax
|
1912 |
|
1913 |
$formula = forminator_calculator_maybe_dummify_fields_on_formula( $formula );
|
1914 |
$calculator = new Forminator_Calculator( $formula );
|
1936 |
Forminator_Gateway_Stripe::store_settings( array() );
|
1937 |
}
|
1938 |
$data['notification'] = array(
|
1939 |
+
'type' => 'success',
|
1940 |
+
'text' => __( 'Stripe account disconnected successfully.', Forminator::DOMAIN ),
|
1941 |
+
'duration' => '4000',
|
1942 |
);
|
1943 |
+
$file = forminator_plugin_dir() . 'admin/views/settings/payments/section-stripe.php';
|
1944 |
|
1945 |
ob_start();
|
1946 |
/** @noinspection PhpIncludeInspection */
|
1963 |
Forminator_PayPal_Express::store_settings( array() );
|
1964 |
}
|
1965 |
$data['notification'] = array(
|
1966 |
+
'type' => 'success',
|
1967 |
+
'text' => __( 'PayPal account disconnected successfully.', Forminator::DOMAIN ),
|
1968 |
+
'duration' => '4000',
|
1969 |
);
|
1970 |
+
$file = forminator_plugin_dir() . 'admin/views/settings/payments/section-paypal.php';
|
1971 |
|
1972 |
ob_start();
|
1973 |
/** @noinspection PhpIncludeInspection */
|
1986 |
// Validate nonce
|
1987 |
forminator_validate_ajax( 'forminator_stripe_settings_modal' );
|
1988 |
|
1989 |
+
$file = forminator_plugin_dir() . 'admin/views/settings/payments/section-stripe.php';
|
1990 |
|
1991 |
ob_start();
|
1992 |
/** @noinspection PhpIncludeInspection */
|
2005 |
// Validate nonce
|
2006 |
forminator_validate_ajax( 'forminator_paypal_settings_modal' );
|
2007 |
|
2008 |
+
$file = forminator_plugin_dir() . 'admin/views/settings/payments/section-paypal.php';
|
2009 |
|
2010 |
ob_start();
|
2011 |
/** @noinspection PhpIncludeInspection */
|
2030 |
|
2031 |
$data = array();
|
2032 |
|
2033 |
+
$post_data = $_POST;// phpcs:ignore -- by forminator_validate_ajax
|
2034 |
$is_connect_request = isset( $post_data['connect'] ) ? filter_var( $post_data['connect'] ) : false;
|
2035 |
$template_vars = array();
|
2036 |
try {
|
2047 |
$template_vars['live_key'] = $live_key;
|
2048 |
$template_vars['live_secret'] = $live_secret;
|
2049 |
|
|
|
2050 |
if ( ! empty( $is_connect_request ) ) {
|
2051 |
if ( empty( $test_key ) ) {
|
2052 |
throw new Forminator_Gateway_Exception(
|
2088 |
)
|
2089 |
);
|
2090 |
|
|
|
2091 |
$data['notification'] = array(
|
2092 |
'type' => 'success',
|
2093 |
'text' => __( 'Stripe account connected successfully. You can now add the Stripe field to your forms and start collecting payments.', Forminator::DOMAIN ),
|
2095 |
);
|
2096 |
|
2097 |
}
|
|
|
|
|
2098 |
} catch ( Forminator_Gateway_Exception $e ) {
|
2099 |
forminator_maybe_log( __METHOD__, $e->getMessage(), $e->getTrace() );
|
2100 |
$template_vars['error_message'] = $e->getMessage();
|
2139 |
'<span class="sui-loading-text">' . esc_html__( 'Connect', Forminator::DOMAIN ) . '</span>' .
|
2140 |
'<i class="sui-icon-loader sui-loading" aria-hidden="true"></i>' .
|
2141 |
'</button>' .
|
2142 |
+
'</div>';
|
2143 |
|
2144 |
wp_send_json_success( $data );
|
2145 |
}
|
2151 |
*/
|
2152 |
public function paypal_settings_modal() {
|
2153 |
// Validate nonce
|
|
|
2154 |
forminator_validate_ajax( 'forminator_paypal_settings_modal' );
|
2155 |
|
2156 |
$data = array();
|
2157 |
|
2158 |
+
$post_data = $_POST;// phpcs:ignore -- by forminator_validate_ajax
|
2159 |
$is_connect_request = isset( $post_data['connect'] ) ? filter_var( $post_data['connect'] ) : false;
|
2160 |
$template_vars = array();
|
2161 |
|
2162 |
try {
|
2163 |
$paypal = new Forminator_PayPal_Express();
|
2164 |
|
2165 |
+
$sandbox_id = isset( $post_data['sandbox_id'] ) ? $post_data['sandbox_id'] : $paypal->get_sandbox_id();// WPCS: CSRF ok by forminator_validate_ajax.
|
2166 |
+
$sandbox_secret = isset( $post_data['sandbox_secret'] ) ? $post_data['sandbox_secret'] : $paypal->get_sandbox_secret();// WPCS: CSRF ok by forminator_validate_ajax.
|
2167 |
+
$live_id = isset( $post_data['live_id'] ) ? $post_data['live_id'] : $paypal->get_live_id();// WPCS: CSRF ok by forminator_validate_ajax.
|
2168 |
$live_secret = isset( $post_data['live_secret'] ) ? $post_data['live_secret'] : $paypal->get_live_secret();// WPCS: CSRF ok by forminator_validate_ajax.
|
2169 |
$default_currency = $paypal->get_default_currency();
|
2170 |
|
2171 |
+
$template_vars['sandbox_id'] = $sandbox_id;
|
2172 |
$template_vars['sandbox_secret'] = $sandbox_secret;
|
2173 |
+
$template_vars['live_id'] = $live_id;
|
2174 |
+
$template_vars['live_secret'] = $live_secret;
|
|
|
2175 |
|
2176 |
if ( ! empty( $is_connect_request ) ) {
|
2177 |
if ( empty( $sandbox_id ) ) {
|
2206 |
|
2207 |
Forminator_PayPal_Express::store_settings(
|
2208 |
array(
|
2209 |
+
'sandbox_id' => $sandbox_id,
|
2210 |
+
'sandbox_secret' => $sandbox_secret,
|
2211 |
+
'live_id' => $live_id,
|
2212 |
+
'live_secret' => $live_secret,
|
2213 |
+
'currency' => $default_currency,
|
2214 |
)
|
2215 |
);
|
2216 |
|
|
|
2217 |
$data['notification'] = array(
|
2218 |
'type' => 'success',
|
2219 |
'text' => __( 'PayPal account connected successfully. You can now add the PayPal field to your forms and start collecting payments.', Forminator::DOMAIN ),
|
2221 |
);
|
2222 |
|
2223 |
}
|
|
|
|
|
2224 |
} catch ( Forminator_Gateway_Exception $e ) {
|
2225 |
forminator_maybe_log( __METHOD__, $e->getMessage(), $e->getTrace() );
|
2226 |
$template_vars['error_message'] = $e->getMessage();
|
2261 |
$data['buttons'] = array();
|
2262 |
|
2263 |
$data['buttons']['connect']['markup'] = '<div class="sui-actions-right">' .
|
2264 |
+
'<button class="sui-button forminator-paypal-connect" type="button" data-nonce="' . wp_create_nonce( 'forminator_paypal_settings_modal' ) . '">' .
|
2265 |
+
'<span class="sui-loading-text">' . esc_html__( 'Connect', Forminator::DOMAIN ) . '</span>' .
|
2266 |
+
'<i class="sui-icon-loader sui-loading" aria-hidden="true"></i>' .
|
2267 |
+
'</button>' .
|
2268 |
+
'</div>';
|
2269 |
|
2270 |
wp_send_json_success( $data );
|
2271 |
}
|
2276 |
* @since 1.9
|
2277 |
*/
|
2278 |
public function dismiss_notice() {
|
2279 |
+
forminator_validate_ajax( 'forminator_dismiss_notification' );
|
2280 |
|
2281 |
$notification_name = filter_input( INPUT_POST, 'prop', FILTER_SANITIZE_STRING );
|
2282 |
|
2307 |
* @since 1.7
|
2308 |
*/
|
2309 |
public function save_payments() {
|
2310 |
+
forminator_validate_ajax( 'forminator_save_payments_settings' );
|
2311 |
|
2312 |
// stripe
|
2313 |
if ( isset( $_POST['stripe-default-currency'] ) && ! empty( $_POST['stripe-default-currency'] ) ) {
|
2331 |
)
|
2332 |
);
|
2333 |
|
|
|
2334 |
} catch ( Forminator_Gateway_Exception $e ) {
|
2335 |
wp_send_json_error( $e->getMessage() );
|
2336 |
}
|
2343 |
try {
|
2344 |
$paypal = new Forminator_PayPal_Express();
|
2345 |
|
2346 |
+
$sandbox_id = $paypal->get_sandbox_id();
|
2347 |
$sandbox_secret = $paypal->get_sandbox_secret();
|
2348 |
+
$live_id = $paypal->get_live_id();
|
2349 |
+
$live_secret = $paypal->get_live_secret();
|
2350 |
|
2351 |
Forminator_PayPal_Express::store_settings(
|
2352 |
array(
|
2358 |
)
|
2359 |
);
|
2360 |
|
|
|
2361 |
} catch ( Forminator_Gateway_Exception $e ) {
|
2362 |
wp_send_json_error( $e->getMessage() );
|
2363 |
}
|
2374 |
*/
|
2375 |
public function delete_poll_submissions() {
|
2376 |
forminator_validate_ajax( 'forminatorPollEntries' );
|
2377 |
+
|
2378 |
if ( ! empty( $_POST['id'] ) ) {
|
2379 |
$form_id = intval( $_POST['id'] );
|
2380 |
+
|
2381 |
Forminator_Form_Entry_Model::delete_by_form( $form_id );
|
2382 |
|
2383 |
+
$file = forminator_plugin_dir() . 'admin/views/poll/entries/content-none.php';
|
2384 |
|
2385 |
ob_start();
|
2386 |
/** @noinspection PhpIncludeInspection */
|
admin/classes/class-admin-data.php
CHANGED
@@ -34,7 +34,7 @@ class Forminator_Admin_Data {
|
|
34 |
*/
|
35 |
public function get_options_data() {
|
36 |
$data = $this->admin_js_defaults();
|
37 |
-
$data = apply_filters(
|
38 |
$data['fields'] = forminator_get_fields_sorted( 'position', SORT_ASC );
|
39 |
|
40 |
return $data;
|
@@ -59,6 +59,37 @@ class Forminator_Admin_Data {
|
|
59 |
return $this->_nonce;
|
60 |
}
|
61 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
62 |
/**
|
63 |
* Default Admin properties
|
64 |
*
|
@@ -75,9 +106,9 @@ class Forminator_Admin_Data {
|
|
75 |
'is_touch' => wp_is_mobile(),
|
76 |
'dashboardUrl' => menu_page_url( 'forminator', false ),
|
77 |
'formEditUrl' => menu_page_url( 'forminator-cform-wizard', false ),
|
78 |
-
'noWrongEditUrl'
|
79 |
'knowledgeEditUrl' => menu_page_url( 'forminator-knowledge-wizard', false ),
|
80 |
-
'pollEditUrl'
|
81 |
'settingsUrl' => menu_page_url( 'forminator-settings', false ),
|
82 |
'integrationsUrl' => menu_page_url( 'forminator-integrations', false ),
|
83 |
'hasCaptcha' => forminator_has_captcha_settings(),
|
@@ -116,8 +147,12 @@ class Forminator_Admin_Data {
|
|
116 |
'postTypeList' => forminator_post_type_list(),
|
117 |
'postCategories' => forminator_post_categories(),
|
118 |
'isPro' => FORMINATOR_PRO,
|
|
|
|
|
119 |
'hasPayPal' => forminator_has_paypal_settings(),
|
120 |
'pollAnswerColors' => forminator_get_poll_chart_colors(),
|
|
|
|
|
121 |
);
|
122 |
}
|
123 |
}
|
34 |
*/
|
35 |
public function get_options_data() {
|
36 |
$data = $this->admin_js_defaults();
|
37 |
+
$data = apply_filters( 'forminator_data', $data );
|
38 |
$data['fields'] = forminator_get_fields_sorted( 'position', SORT_ASC );
|
39 |
|
40 |
return $data;
|
59 |
return $this->_nonce;
|
60 |
}
|
61 |
|
62 |
+
/**
|
63 |
+
* Return published pages
|
64 |
+
*
|
65 |
+
* @since 1.8
|
66 |
+
*
|
67 |
+
* @return mixed
|
68 |
+
*/
|
69 |
+
public function get_pages() {
|
70 |
+
$args = array(
|
71 |
+
'sort_order' => 'DESC',
|
72 |
+
'sort_column' => 'ID',
|
73 |
+
'hierarchical' => 1,
|
74 |
+
'exclude' => '',
|
75 |
+
'include' => '',
|
76 |
+
'meta_key' => '',
|
77 |
+
'meta_value' => '',
|
78 |
+
'authors' => '',
|
79 |
+
'child_of' => 0,
|
80 |
+
'parent' => -1,
|
81 |
+
'exclude_tree' => '',
|
82 |
+
'number' => '',
|
83 |
+
'offset' => 0,
|
84 |
+
'post_type' => 'page',
|
85 |
+
'post_status' => 'publish'
|
86 |
+
);
|
87 |
+
|
88 |
+
$pages = get_pages($args);
|
89 |
+
|
90 |
+
return $pages;
|
91 |
+
}
|
92 |
+
|
93 |
/**
|
94 |
* Default Admin properties
|
95 |
*
|
106 |
'is_touch' => wp_is_mobile(),
|
107 |
'dashboardUrl' => menu_page_url( 'forminator', false ),
|
108 |
'formEditUrl' => menu_page_url( 'forminator-cform-wizard', false ),
|
109 |
+
'noWrongEditUrl' => menu_page_url( 'forminator-nowrong-wizard', false ),
|
110 |
'knowledgeEditUrl' => menu_page_url( 'forminator-knowledge-wizard', false ),
|
111 |
+
'pollEditUrl' => menu_page_url( 'forminator-poll-wizard', false ),
|
112 |
'settingsUrl' => menu_page_url( 'forminator-settings', false ),
|
113 |
'integrationsUrl' => menu_page_url( 'forminator-integrations', false ),
|
114 |
'hasCaptcha' => forminator_has_captcha_settings(),
|
147 |
'postTypeList' => forminator_post_type_list(),
|
148 |
'postCategories' => forminator_post_categories(),
|
149 |
'isPro' => FORMINATOR_PRO,
|
150 |
+
'userRoles' => get_editable_roles(),
|
151 |
+
'pages' => $this->get_pages(),
|
152 |
'hasPayPal' => forminator_has_paypal_settings(),
|
153 |
'pollAnswerColors' => forminator_get_poll_chart_colors(),
|
154 |
+
'isMainSite' => forminator_is_main_site(),
|
155 |
+
'isSubdomainNetwork' => forminator_is_subdomain_network(),
|
156 |
);
|
157 |
}
|
158 |
}
|
admin/classes/class-admin-l10n.php
CHANGED
@@ -18,9 +18,9 @@ class Forminator_Admin_L10n {
|
|
18 |
public function get_l10n_strings() {
|
19 |
$l10n = $this->admin_l10n();
|
20 |
|
21 |
-
$admin_locale
|
22 |
|
23 |
-
$locale
|
24 |
'' => array(
|
25 |
'localeSlug' => 'default',
|
26 |
),
|
@@ -28,7 +28,6 @@ class Forminator_Admin_L10n {
|
|
28 |
|
29 |
$l10n['locale'] = array_merge( $locale, (array) $admin_locale );
|
30 |
|
31 |
-
|
32 |
return apply_filters( 'forminator_l10n', $l10n );
|
33 |
}
|
34 |
|
@@ -114,8 +113,8 @@ class Forminator_Admin_L10n {
|
|
114 |
"disable" => __( 'Disable', Forminator::DOMAIN ),
|
115 |
"enable" => __( 'Enable', Forminator::DOMAIN ),
|
116 |
"enter_name" => __( 'Enter a name', Forminator::DOMAIN ),
|
117 |
-
"new_form_desc2" => __( 'Name your new form, then
|
118 |
-
"new_poll_desc2" => __( 'Name your new poll, then
|
119 |
"new_quiz_desc2" => __( 'Choose a name for your new quiz, then start adding questions and answers!'),
|
120 |
"input_label" => __( 'Input Label', Forminator::DOMAIN ),
|
121 |
"form_name_validation" => __( 'Form name cannot be empty.', Forminator::DOMAIN ),
|
@@ -128,102 +127,107 @@ class Forminator_Admin_L10n {
|
|
128 |
'reset' => __( 'RESET', Forminator::DOMAIN ),
|
129 |
"disconnect" => __( 'Disconnect', Forminator::DOMAIN ),
|
130 |
"apply_submission_filter" => __( 'Apply Submission Filters', Forminator::DOMAIN ),
|
|
|
|
|
|
|
|
|
|
|
131 |
),
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
),
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
),
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
-
|
150 |
-
|
151 |
-
|
152 |
-
|
153 |
-
|
154 |
-
|
155 |
-
|
156 |
),
|
157 |
-
|
158 |
-
|
159 |
-
|
160 |
-
|
161 |
-
|
162 |
-
|
163 |
-
|
164 |
-
|
165 |
-
|
166 |
-
|
167 |
-
|
168 |
-
|
169 |
),
|
170 |
-
|
171 |
-
|
172 |
-
|
173 |
-
|
174 |
-
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
-
|
182 |
-
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
-
|
197 |
-
|
198 |
-
|
199 |
-
|
200 |
-
|
201 |
-
|
202 |
-
|
203 |
-
|
204 |
-
|
205 |
-
|
206 |
-
|
207 |
-
|
208 |
-
|
209 |
-
|
210 |
-
|
211 |
-
|
212 |
-
|
213 |
-
|
214 |
-
|
215 |
-
|
216 |
-
|
217 |
-
|
218 |
-
|
219 |
-
|
220 |
-
|
221 |
-
|
222 |
-
|
223 |
-
|
224 |
-
|
225 |
-
|
226 |
-
|
227 |
),
|
228 |
"commons" => array(
|
229 |
"color" => __( "Color", Forminator::DOMAIN ),
|
@@ -301,16 +305,18 @@ class Forminator_Admin_L10n {
|
|
301 |
"vanilla_message" => __( "Vanilla Theme will provide you a clean design (with no styles) and simple markup.", Forminator::DOMAIN ),
|
302 |
"no_file_chosen" => __( "No file chosen", Forminator::DOMAIN ),
|
303 |
"update_successfully" => __( "saved succesfully!", Forminator::DOMAIN ),
|
304 |
-
"update_unsuccessfull" => __( "Error! Settings were not saved.", Forminator::DOMAIN )
|
|
|
|
|
305 |
),
|
306 |
-
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
),
|
312 |
-
|
313 |
-
|
314 |
esc_html__( 'Su', Forminator::DOMAIN ),
|
315 |
esc_html__( 'Mo', Forminator::DOMAIN ),
|
316 |
esc_html__( 'Tu', Forminator::DOMAIN ),
|
@@ -319,7 +325,7 @@ class Forminator_Admin_L10n {
|
|
319 |
esc_html__( 'Fr', Forminator::DOMAIN ),
|
320 |
esc_html__( 'Sa', Forminator::DOMAIN ),
|
321 |
),
|
322 |
-
|
323 |
esc_html__( 'January', Forminator::DOMAIN ),
|
324 |
esc_html__( 'February', Forminator::DOMAIN ),
|
325 |
esc_html__( 'March', Forminator::DOMAIN ),
|
@@ -333,24 +339,24 @@ class Forminator_Admin_L10n {
|
|
333 |
esc_html__( 'November', Forminator::DOMAIN ),
|
334 |
esc_html__( 'December', Forminator::DOMAIN ),
|
335 |
),
|
336 |
-
|
337 |
-
|
338 |
),
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
-
|
346 |
-
|
347 |
-
|
348 |
-
|
349 |
'if_new' => forminator_get_exporter_info( 'if_new', forminator_get_form_id_helper() . forminator_get_form_type_helper() ),
|
350 |
'noResults' => esc_html__( 'No Result Found', Forminator::DOMAIN ),
|
351 |
'searching' => esc_html__( 'Searching', Forminator::DOMAIN ),
|
352 |
),
|
353 |
-
|
354 |
);
|
355 |
}
|
356 |
|
@@ -394,7 +400,6 @@ class Forminator_Admin_L10n {
|
|
394 |
esc_html__( 'December', Forminator::DOMAIN ),
|
395 |
);
|
396 |
|
397 |
-
|
398 |
}
|
399 |
|
400 |
}
|
18 |
public function get_l10n_strings() {
|
19 |
$l10n = $this->admin_l10n();
|
20 |
|
21 |
+
$admin_locale = require_once forminator_plugin_dir() . 'admin/locale.php';
|
22 |
|
23 |
+
$locale = array(
|
24 |
'' => array(
|
25 |
'localeSlug' => 'default',
|
26 |
),
|
28 |
|
29 |
$l10n['locale'] = array_merge( $locale, (array) $admin_locale );
|
30 |
|
|
|
31 |
return apply_filters( 'forminator_l10n', $l10n );
|
32 |
}
|
33 |
|
113 |
"disable" => __( 'Disable', Forminator::DOMAIN ),
|
114 |
"enable" => __( 'Enable', Forminator::DOMAIN ),
|
115 |
"enter_name" => __( 'Enter a name', Forminator::DOMAIN ),
|
116 |
+
"new_form_desc2" => __( 'Name your new form, then let\'s start building!', Forminator::DOMAIN ),
|
117 |
+
"new_poll_desc2" => __( 'Name your new poll, then let\'s start building!', Forminator::DOMAIN ),
|
118 |
"new_quiz_desc2" => __( 'Choose a name for your new quiz, then start adding questions and answers!'),
|
119 |
"input_label" => __( 'Input Label', Forminator::DOMAIN ),
|
120 |
"form_name_validation" => __( 'Form name cannot be empty.', Forminator::DOMAIN ),
|
127 |
'reset' => __( 'RESET', Forminator::DOMAIN ),
|
128 |
"disconnect" => __( 'Disconnect', Forminator::DOMAIN ),
|
129 |
"apply_submission_filter" => __( 'Apply Submission Filters', Forminator::DOMAIN ),
|
130 |
+
'registration_notice' => __( "This template allows you to create your own registration form and insert it on a custom page. This doesn't modify the default registration form.", Forminator::DOMAIN ),
|
131 |
+
'login_notice' => __( "This template allows you to create your own login form and insert it on a custom page. This doesn't modify the default login form.", Forminator::DOMAIN ),
|
132 |
+
'approve_user' => __( 'Approve', Forminator::DOMAIN ),
|
133 |
+
'registration_name' => __( 'User Registration', Forminator::DOMAIN ),
|
134 |
+
'login_name' => __( 'User Login', Forminator::DOMAIN ),
|
135 |
),
|
136 |
+
'quiz' => array(
|
137 |
+
'choose_quiz_title' => __( 'Choose Quiz Type', Forminator::DOMAIN ),
|
138 |
+
'choose_quiz_description' => __( "Let's start by choosing an appropriate quiz type based on your goal.", Forminator::DOMAIN ),
|
139 |
+
'knowledge_label' => __( 'Knowledge Quiz', Forminator::DOMAIN ),
|
140 |
+
'knowledge_description' => __( 'Test the knowledge of your visitors on a subject and final score is calculated based on number of right answers. E.g. Test your music knowledge.', Forminator::DOMAIN ),
|
141 |
+
'nowrong_label' => __( 'Personality Quiz', Forminator::DOMAIN ),
|
142 |
+
'nowrong_description' => __( "Show different outcomes depending on the visitor's answers. There are no wrong answers. E.g. Which superhero are you?", Forminator::DOMAIN ),
|
143 |
+
'continue_button' => __( 'Continue', Forminator::DOMAIN ),
|
144 |
),
|
145 |
+
'form' => array(
|
146 |
+
'form_template_title' => __( 'Choose a template', Forminator::DOMAIN ),
|
147 |
+
'form_template_description' => __( 'Customize one of our pre-made form templates, or start from scratch.' ),
|
148 |
+
'continue_button' => __( 'Continue', Forminator::DOMAIN ),
|
149 |
),
|
150 |
+
'sidebar' => array(
|
151 |
+
'label' => __( 'Label', Forminator::DOMAIN ),
|
152 |
+
'value' => __( 'Value', Forminator::DOMAIN ),
|
153 |
+
'add_option' => __( 'Add Option', Forminator::DOMAIN ),
|
154 |
+
'delete' => __( 'Delete', Forminator::DOMAIN ),
|
155 |
+
'pick_field' => __( 'Pick a field', Forminator::DOMAIN ),
|
156 |
+
'field_will_be' => __( 'This field will be', Forminator::DOMAIN ),
|
157 |
+
'if' => __( 'if', Forminator::DOMAIN ),
|
158 |
+
'shown' => __( 'Shown', Forminator::DOMAIN ),
|
159 |
+
'hidden' => __( 'Hidden', Forminator::DOMAIN ),
|
160 |
),
|
161 |
+
'colors' => array(
|
162 |
+
'poll_shadow' => __( 'Poll shadow', Forminator::DOMAIN ),
|
163 |
+
'title' => __( 'Title text', Forminator::DOMAIN ),
|
164 |
+
'question' => __( 'Question text', Forminator::DOMAIN ),
|
165 |
+
'answer' => __( 'Answer text', Forminator::DOMAIN ),
|
166 |
+
'input_background' => __( 'Input field bg', Forminator::DOMAIN ),
|
167 |
+
'input_border' => __( 'Input field border', Forminator::DOMAIN ),
|
168 |
+
'input_placeholder' => __( 'Input field placeholder', Forminator::DOMAIN ),
|
169 |
+
'input_text' => __( 'Input field text', Forminator::DOMAIN ),
|
170 |
+
'btn_background' => __( 'Button background', Forminator::DOMAIN ),
|
171 |
+
'btn_text' => __( 'Button text', Forminator::DOMAIN ),
|
172 |
+
'link_res' => __( 'Results link', Forminator::DOMAIN ),
|
173 |
),
|
174 |
+
'options' => array(
|
175 |
+
'browse' => __( 'Browse', Forminator::DOMAIN ),
|
176 |
+
'clear' => __( 'Clear', Forminator::DOMAIN ),
|
177 |
+
'no_results' => __( "You don't have any results yet.", Forminator::DOMAIN ),
|
178 |
+
'select_result' => __( 'Select result', Forminator::DOMAIN ),
|
179 |
+
'no_answers' => __( "You don't have any answer yet.", Forminator::DOMAIN ),
|
180 |
+
'placeholder_image' => __( 'Click browse to add image...', Forminator::DOMAIN ),
|
181 |
+
'placeholder_image_alt' => __( 'Click on browse to add an image', Forminator::DOMAIN ),
|
182 |
+
'placeholder_answer' => __( 'Add an answer here', Forminator::DOMAIN ),
|
183 |
+
'multiqs_empty' => __( "You don't have any questions yet.", Forminator::DOMAIN ),
|
184 |
+
'add_question' => __( 'Add Question', Forminator::DOMAIN ),
|
185 |
+
'add_new_question' => __( 'Add New Question', Forminator::DOMAIN ),
|
186 |
+
'question_title' => __( 'Question title', Forminator::DOMAIN ),
|
187 |
+
'question_title_error' => __( 'Question title cannot be empty! Please, add some content to your question.', Forminator::DOMAIN ),
|
188 |
+
'answers' => __( 'Answers', Forminator::DOMAIN ),
|
189 |
+
'add_answer' => __( 'Add Answer', Forminator::DOMAIN ),
|
190 |
+
'add_new_answer' => __( 'Add New Answer', Forminator::DOMAIN ),
|
191 |
+
'add_result' => __( 'Add Result', Forminator::DOMAIN ),
|
192 |
+
'delete_result' => __( 'Delete Result', Forminator::DOMAIN ),
|
193 |
+
'title' => __( 'Title', Forminator::DOMAIN ),
|
194 |
+
'image' => __( 'Image (optional)', Forminator::DOMAIN ),
|
195 |
+
'description' => __( 'Description', Forminator::DOMAIN ),
|
196 |
+
'trash_answer' => __( 'Delete this answer', Forminator::DOMAIN ),
|
197 |
+
'correct' => __( 'Correct answer', Forminator::DOMAIN ),
|
198 |
+
'no_options' => __( "You don't have any options yet.", Forminator::DOMAIN ),
|
199 |
+
'delete' => __( 'Delete', Forminator::DOMAIN ),
|
200 |
+
'restricted_dates' => __( 'Restricted dates:', Forminator::DOMAIN ),
|
201 |
+
'add' => __( 'Add', Forminator::DOMAIN ),
|
202 |
+
'custom_date' => __( 'Pick custom date(s) to restrict:', Forminator::DOMAIN ),
|
203 |
+
'form_data' => __( 'Form Data', Forminator::DOMAIN ),
|
204 |
+
'required_form_fields' => __( 'Required Fields', Forminator::DOMAIN ),
|
205 |
+
'optional_form_fields' => __( 'Optional Fields', Forminator::DOMAIN ),
|
206 |
+
'all_fields' => __( 'All Submitted Fields', Forminator::DOMAIN ),
|
207 |
+
'form_name' => __( 'Form Name', Forminator::DOMAIN ),
|
208 |
+
'misc_data' => __( 'Misc Data', Forminator::DOMAIN ),
|
209 |
+
'form_based_data' => __( 'Add form data', Forminator::DOMAIN ),
|
210 |
+
'been_saved' => __( 'has been saved.', Forminator::DOMAIN ),
|
211 |
+
'been_published' => __( 'has been published.', Forminator::DOMAIN ),
|
212 |
+
'error_saving' => __( 'Error! Form cannot be saved.' ),
|
213 |
+
'default_value' => __( 'Default Value', Forminator::DOMAIN ),
|
214 |
+
'admin_email' => get_option( 'admin_email' ),
|
215 |
+
'delete_question' => __( 'Delete this question', Forminator::DOMAIN ),
|
216 |
+
'remove_image' => __( 'Remove image', Forminator::DOMAIN ),
|
217 |
+
'answer_settings' => __( 'Show extra settings', Forminator::DOMAIN ),
|
218 |
+
'add_new_result' => __( 'Add New Result', Forminator::DOMAIN ),
|
219 |
+
'multiorder_validation' => __( 'You need to add at least one result for this quiz so you can re-order the results priority.', Forminator::DOMAIN ),
|
220 |
+
'user_ip_address' => __( 'User IP Address', Forminator::DOMAIN ),
|
221 |
+
'date' => __( 'Date', Forminator::DOMAIN ),
|
222 |
+
'embed_id' => __( 'Embed Post/Page ID', Forminator::DOMAIN ),
|
223 |
+
'embed_title' => __( 'Embed Post/Page Title', Forminator::DOMAIN ),
|
224 |
+
'embed_url' => __( 'Embed URL', Forminator::DOMAIN ),
|
225 |
+
'user_agent' => __( 'HTTP User Agent', Forminator::DOMAIN ),
|
226 |
+
'refer_url' => __( 'HTTP Refer URL', Forminator::DOMAIN ),
|
227 |
+
'display_name' => __( 'User Display Name', Forminator::DOMAIN ),
|
228 |
+
'user_email' => __( 'User Email', Forminator::DOMAIN ),
|
229 |
+
'user_login' => __( 'User Login', Forminator::DOMAIN ),
|
230 |
+
'shortcode_copied' => __( 'Shortcode has been copied successfully.', Forminator::DOMAIN ),
|
231 |
),
|
232 |
"commons" => array(
|
233 |
"color" => __( "Color", Forminator::DOMAIN ),
|
305 |
"vanilla_message" => __( "Vanilla Theme will provide you a clean design (with no styles) and simple markup.", Forminator::DOMAIN ),
|
306 |
"no_file_chosen" => __( "No file chosen", Forminator::DOMAIN ),
|
307 |
"update_successfully" => __( "saved succesfully!", Forminator::DOMAIN ),
|
308 |
+
"update_unsuccessfull" => __( "Error! Settings were not saved.", Forminator::DOMAIN ),
|
309 |
+
"approve_user_successfull" => __( "User approved succesfully.", Forminator::DOMAIN ),
|
310 |
+
"approve_user_unsuccessfull" => __( "Error! User was not approved.", Forminator::DOMAIN )
|
311 |
),
|
312 |
+
'social' => array(
|
313 |
+
'facebook' => __( 'Facebook', Forminator::DOMAIN ),
|
314 |
+
'twitter' => __( 'Twitter', Forminator::DOMAIN ),
|
315 |
+
'google_plus' => __( 'Google+', Forminator::DOMAIN ),
|
316 |
+
'linkedin' => __( 'LinkedIn', Forminator::DOMAIN ),
|
317 |
),
|
318 |
+
'calendar' => array(
|
319 |
+
'day_names_min' => array(
|
320 |
esc_html__( 'Su', Forminator::DOMAIN ),
|
321 |
esc_html__( 'Mo', Forminator::DOMAIN ),
|
322 |
esc_html__( 'Tu', Forminator::DOMAIN ),
|
325 |
esc_html__( 'Fr', Forminator::DOMAIN ),
|
326 |
esc_html__( 'Sa', Forminator::DOMAIN ),
|
327 |
),
|
328 |
+
'month_names' => array(
|
329 |
esc_html__( 'January', Forminator::DOMAIN ),
|
330 |
esc_html__( 'February', Forminator::DOMAIN ),
|
331 |
esc_html__( 'March', Forminator::DOMAIN ),
|
339 |
esc_html__( 'November', Forminator::DOMAIN ),
|
340 |
esc_html__( 'December', Forminator::DOMAIN ),
|
341 |
),
|
342 |
+
'day_names_min' => self::get_short_days_names(),
|
343 |
+
'month_names' => self::get_months_names(),
|
344 |
),
|
345 |
+
'exporter' => array(
|
346 |
+
'export_nonce' => wp_create_nonce( 'forminator_export' ),
|
347 |
+
'form_id' => forminator_get_form_id_helper(),
|
348 |
+
'form_type' => forminator_get_form_type_helper(),
|
349 |
+
'enabled' => filter_var( forminator_get_exporter_info( 'enabled', forminator_get_form_id_helper() . forminator_get_form_type_helper() ), FILTER_VALIDATE_BOOLEAN ),
|
350 |
+
'interval' => forminator_get_exporter_info( 'interval', forminator_get_form_id_helper() . forminator_get_form_type_helper() ),
|
351 |
+
'month_day' => forminator_get_exporter_info( 'month_day', forminator_get_form_id_helper() . forminator_get_form_type_helper() ),
|
352 |
+
'day' => forminator_get_exporter_info( 'day', forminator_get_form_id_helper() . forminator_get_form_type_helper() ),
|
353 |
+
'hour' => forminator_get_exporter_info( 'hour', forminator_get_form_id_helper() . forminator_get_form_type_helper() ),
|
354 |
+
'email' => forminator_get_exporter_info( 'email', forminator_get_form_id_helper() . forminator_get_form_type_helper() ),
|
355 |
'if_new' => forminator_get_exporter_info( 'if_new', forminator_get_form_id_helper() . forminator_get_form_type_helper() ),
|
356 |
'noResults' => esc_html__( 'No Result Found', Forminator::DOMAIN ),
|
357 |
'searching' => esc_html__( 'Searching', Forminator::DOMAIN ),
|
358 |
),
|
359 |
+
'exporter_logs' => forminator_get_export_logs( forminator_get_form_id_helper() ),
|
360 |
);
|
361 |
}
|
362 |
|
400 |
esc_html__( 'December', Forminator::DOMAIN ),
|
401 |
);
|
402 |
|
|
|
403 |
}
|
404 |
|
405 |
}
|
admin/classes/class-admin.php
CHANGED
@@ -81,11 +81,11 @@ class Forminator_Admin {
|
|
81 |
*/
|
82 |
public function add_dashboard_page() {
|
83 |
$title = __( 'Forminator', Forminator::DOMAIN );
|
84 |
-
if( FORMINATOR_PRO ) {
|
85 |
$title = __( 'Forminator Pro', Forminator::DOMAIN );
|
86 |
}
|
87 |
|
88 |
-
$this->pages['forminator']
|
89 |
$this->pages['forminator-dashboard'] = new Forminator_Dashboard_Page( 'forminator', 'dashboard', __( 'Forminator Dashboard', Forminator::DOMAIN ), __( 'Dashboard', Forminator::DOMAIN ), 'forminator' );
|
90 |
}
|
91 |
|
@@ -114,11 +114,11 @@ class Forminator_Admin {
|
|
114 |
|
115 |
//TODO: remove this after converted to JS
|
116 |
$addons = Forminator_Addon_Loader::get_instance()->get_addons()->to_array();
|
117 |
-
foreach ($addons as $slug => $addon_array) {
|
118 |
-
$addon_class = forminator_get_addon($slug);
|
119 |
|
120 |
-
if ($addon_class && is_callable( array( $addon_class, 'admin_hook_html_version' ))) {
|
121 |
-
call_user_func( array( $addon_class, 'admin_hook_html_version' ));
|
122 |
}
|
123 |
}
|
124 |
|
@@ -176,7 +176,7 @@ class Forminator_Admin {
|
|
176 |
public function has_stripe_forms() {
|
177 |
$forms = Forminator_Custom_Form_Model::model()->get_models_by_field( 'stripe-1' );
|
178 |
|
179 |
-
if( count( $forms ) > 0 ) {
|
180 |
return true;
|
181 |
}
|
182 |
|
@@ -304,7 +304,7 @@ class Forminator_Admin {
|
|
304 |
e.preventDefault();
|
305 |
|
306 |
var $notice = jQuery( e.currentTarget ).closest( '.forminator-notice' );
|
307 |
-
var ajaxUrl = '<?php echo forminator_ajax_url()
|
308 |
|
309 |
jQuery.post(
|
310 |
ajaxUrl,
|
@@ -349,82 +349,82 @@ class Forminator_Admin {
|
|
349 |
return;
|
350 |
}
|
351 |
|
352 |
-
|
353 |
$notice_dismissed = get_option( 'forminator_rating_dismissed', false );
|
354 |
|
355 |
if ( $notice_dismissed || $notice_success ) {
|
356 |
-
|
357 |
}
|
358 |
|
359 |
$published_modules = forminator_total_forms( 'publish' );
|
360 |
-
|
361 |
-
|
362 |
|
363 |
-
|
364 |
|
365 |
-
|
366 |
?>
|
367 |
|
368 |
-
|
369 |
|
370 |
-
|
371 |
|
372 |
-
|
373 |
-
|
374 |
|
375 |
-
|
376 |
|
377 |
-
|
378 |
-
|
379 |
|
380 |
</div>
|
381 |
|
382 |
-
|
383 |
|
384 |
$install_date = get_site_option( 'forminator_free_install_date' );
|
385 |
|
386 |
if ( $install_date && current_time( 'timestamp' ) > strtotime( '+30 days', $install_date ) && ! $publish_later && ! $publish_later_dismiss ) { ?>
|
387 |
|
388 |
-
|
389 |
|
390 |
-
|
391 |
|
392 |
-
|
393 |
-
|
394 |
|
395 |
-
|
396 |
-
|
397 |
|
398 |
</div>
|
399 |
|
400 |
<?php
|
401 |
}
|
402 |
-
|
403 |
?>
|
404 |
|
405 |
<script type="text/javascript">
|
406 |
-
|
407 |
-
|
408 |
-
|
409 |
-
|
410 |
-
|
411 |
-
|
412 |
-
|
413 |
-
|
414 |
-
|
415 |
-
|
416 |
-
|
417 |
-
|
418 |
-
|
419 |
-
|
420 |
-
|
421 |
-
|
422 |
-
|
423 |
-
|
424 |
-
|
425 |
-
|
426 |
-
|
427 |
-
|
428 |
</script>
|
429 |
|
430 |
<?php }
|
81 |
*/
|
82 |
public function add_dashboard_page() {
|
83 |
$title = __( 'Forminator', Forminator::DOMAIN );
|
84 |
+
if ( FORMINATOR_PRO ) {
|
85 |
$title = __( 'Forminator Pro', Forminator::DOMAIN );
|
86 |
}
|
87 |
|
88 |
+
$this->pages['forminator'] = new Forminator_Dashboard_Page( 'forminator', 'dashboard', $title, $title, false, false );
|
89 |
$this->pages['forminator-dashboard'] = new Forminator_Dashboard_Page( 'forminator', 'dashboard', __( 'Forminator Dashboard', Forminator::DOMAIN ), __( 'Dashboard', Forminator::DOMAIN ), 'forminator' );
|
90 |
}
|
91 |
|
114 |
|
115 |
//TODO: remove this after converted to JS
|
116 |
$addons = Forminator_Addon_Loader::get_instance()->get_addons()->to_array();
|
117 |
+
foreach ( $addons as $slug => $addon_array ) {
|
118 |
+
$addon_class = forminator_get_addon( $slug );
|
119 |
|
120 |
+
if ( $addon_class && is_callable( array( $addon_class, 'admin_hook_html_version' ) ) ) {
|
121 |
+
call_user_func( array( $addon_class, 'admin_hook_html_version' ) );
|
122 |
}
|
123 |
}
|
124 |
|
176 |
public function has_stripe_forms() {
|
177 |
$forms = Forminator_Custom_Form_Model::model()->get_models_by_field( 'stripe-1' );
|
178 |
|
179 |
+
if ( count( $forms ) > 0 ) {
|
180 |
return true;
|
181 |
}
|
182 |
|
304 |
e.preventDefault();
|
305 |
|
306 |
var $notice = jQuery( e.currentTarget ).closest( '.forminator-notice' );
|
307 |
+
var ajaxUrl = '<?php echo forminator_ajax_url();// phpcs:ignore ?>';
|
308 |
|
309 |
jQuery.post(
|
310 |
ajaxUrl,
|
349 |
return;
|
350 |
}
|
351 |
|
352 |
+
$notice_success = get_option( 'forminator_rating_success', false );
|
353 |
$notice_dismissed = get_option( 'forminator_rating_dismissed', false );
|
354 |
|
355 |
if ( $notice_dismissed || $notice_success ) {
|
356 |
+
return;
|
357 |
}
|
358 |
|
359 |
$published_modules = forminator_total_forms( 'publish' );
|
360 |
+
$publish_later = get_option( 'forminator_publish_rating_later', false );
|
361 |
+
$publish_later_dismiss = get_option( 'forminator_publish_rating_later_dismiss', false );
|
362 |
|
363 |
+
if ( ( ( 5 < $published_modules && 10 >= $published_modules ) && ! $publish_later ) || ( 10 < $published_modules && ! $publish_later_dismiss ) ) {
|
364 |
|
365 |
+
$milestone = ( 10 >= $published_modules ) ? 5 : 10;
|
366 |
?>
|
367 |
|
368 |
+
<div id="forminator-free-publish-notice" class="forminator-rating-notice notice notice-info fui-wordpress-notice" data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminator_dismiss_notification' ) ); ?>">
|
369 |
|
370 |
+
<p style="color: #72777C; line-height: 22px;"><?php printf( __( 'Awesome! You\'ve published more than %d modules with Forminator. Hope you are enjoying it so far. We have spent countless hours developing this free plugin for you, and we would really appreciate it if you could drop us a rating on wp.org to help us spread the word and boost our motivation.', Forminator::DOMAIN ), $milestone ); ?></p>
|
371 |
|
372 |
+
<p>
|
373 |
+
<a type="button" href="#" target="_blank" class="button button-primary button-large" data-prop="forminator_rating_success"><?php esc_html_e( 'Rate Forminator', Forminator::DOMAIN ); ?></a>
|
374 |
|
375 |
+
<button type="button" class="button button-large" style="margin-left: 11px;" data-prop="<?php echo 10 > $published_modules ? 'forminator_publish_rating_later' : 'forminator_publish_rating_later_dismiss'; ?>"><?php esc_html_e( 'Maybe later', Forminator::DOMAIN ); ?></button>
|
376 |
|
377 |
+
<a href="#" class="dismiss" style="margin-left: 11px; color: #555; line-height: 16px; font-weight: 500; text-decoration: none;" data-prop="forminator_rating_dismissed"><?php esc_html_e( 'No Thanks', Forminator::DOMAIN ); ?></a>
|
378 |
+
</p>
|
379 |
|
380 |
</div>
|
381 |
|
382 |
+
<?php } else {
|
383 |
|
384 |
$install_date = get_site_option( 'forminator_free_install_date' );
|
385 |
|
386 |
if ( $install_date && current_time( 'timestamp' ) > strtotime( '+30 days', $install_date ) && ! $publish_later && ! $publish_later_dismiss ) { ?>
|
387 |
|
388 |
+
<div id="forminator-free-usage-notice" class="forminator-rating-notice notice notice-info fui-wordpress-notice" data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminator_dismiss_notification' ) ); ?>">
|
389 |
|
390 |
+
<p style="color: #72777C; line-height: 22px;"><?php esc_html_e( 'Excellent! You\'ve been using Forminator for over a month. Hope you are enjoying it so far. We have spent countless hours developing this free plugin for you, and we would really appreciate it if you could drop us a rating on wp.org to help us spread the word and boost our motivation.', Forminator::DOMAIN ); ?></p>
|
391 |
|
392 |
+
<p>
|
393 |
+
<a type="button" href="#" target="_blank" class="button button-primary button-large" data-prop="forminator_rating_success"><?php esc_html_e( 'Rate Forminator', Forminator::DOMAIN ); ?></a>
|
394 |
|
395 |
+
<a href="#" class="dismiss" style="margin-left: 11px; color: #555; line-height: 16px; font-weight: 500; text-decoration: none;" data-prop="forminator_rating_dismissed"><?php esc_html_e( 'No Thanks', Forminator::DOMAIN ); ?></a>
|
396 |
+
</p>
|
397 |
|
398 |
</div>
|
399 |
|
400 |
<?php
|
401 |
}
|
402 |
+
}
|
403 |
?>
|
404 |
|
405 |
<script type="text/javascript">
|
406 |
+
jQuery( '.forminator-rating-notice a, .forminator-rating-notice button' ).on('click', function (e) {
|
407 |
+
e.preventDefault();
|
408 |
+
|
409 |
+
var $notice = jQuery(e.currentTarget).closest('.forminator-rating-notice'),
|
410 |
+
prop = jQuery(this).data('prop'),
|
411 |
+
ajaxUrl = '<?php echo forminator_ajax_url(); ?>';
|
412 |
+
|
413 |
+
if ('forminator_rating_success' === prop) {
|
414 |
+
window.open('https://wordpress.org/support/plugin/forminator/reviews/#new-post', '_blank');
|
415 |
+
}
|
416 |
+
|
417 |
+
jQuery.post(
|
418 |
+
ajaxUrl,
|
419 |
+
{
|
420 |
+
action: 'forminator_dismiss_notification',
|
421 |
+
prop: prop,
|
422 |
+
_ajax_nonce: $notice.data('nonce')
|
423 |
+
}
|
424 |
+
).always(function () {
|
425 |
+
$notice.hide();
|
426 |
+
});
|
427 |
+
});
|
428 |
</script>
|
429 |
|
430 |
<?php }
|
admin/locale.php
CHANGED
@@ -1,11 +1,13 @@
|
|
1 |
<?php
|
2 |
/* THIS IS A GENERATED FILE. DO NOT EDIT DIRECTLY. */
|
3 |
$forminator_admin_locale = array(
|
4 |
-
"Appearance" => array( null, __("Appearance", "forminator" ), ), // src/form/components/appearance.js:
|
5 |
-
"Fields" => array( null, __("Fields", "forminator" ), ), // src/form/components/appearance.js:
|
6 |
-
"Behaviour" => array( null, __("Behaviour", "forminator" ), ), // src/form/components/appearance.js:
|
|
|
|
|
7 |
"Colors" => array( null, __("Colors", "forminator" ), ), // src/form/components/appearance/colors.js:169
|
8 |
-
"Adjust
|
9 |
"Use Default Colors" => array( null, __("Use Default Colors", "forminator" ), ), // src/form/components/appearance/colors.js:184
|
10 |
"Custom" => array( null, __("Custom", "forminator" ), ), // src/form/components/appearance/colors.js:187
|
11 |
"Element" => array( null, __("Element", "forminator" ), ), // src/form/components/appearance/colors.js:192
|
@@ -36,41 +38,41 @@ $forminator_admin_locale = array(
|
|
36 |
"Container" => array( null, __("Container", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:22
|
37 |
"Border" => array( null, __("Border", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:28
|
38 |
"Header background" => array( null, __("Header background", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:29
|
39 |
-
"Background" => array( null, __("Background", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:
|
40 |
-
"Main background" => array( null, __("Main background", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:
|
41 |
-
"Navigation" => array( null, __("Navigation", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:
|
42 |
-
"Arrows background" => array( null, __("Arrows background", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:
|
43 |
-
"Arrows color" => array( null, __("Arrows color", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:
|
44 |
-
"Color" => array( null, __("Color", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:
|
45 |
"Default" => array( null, __("Default", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:22
|
46 |
"Table head color" => array( null, __("Table head color", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:27
|
47 |
-
"Table cell border" => array( null, __("Table cell border", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:
|
48 |
-
"Table cell BG" => array( null, __("Table cell BG", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:
|
49 |
-
"Table cell color" => array( null, __("Table cell color", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:
|
50 |
-
"Hover" => array( null, __("Hover", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:
|
51 |
"Active" => array( null, __("Active", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:86
|
52 |
-
"Current" => array( null, __("Current", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:
|
53 |
"Border color" => array( null, __("Border color", "forminator" ), ), // src/form/components/appearance/colors/dropdown-search.js:23
|
54 |
-
"Background color" => array( null, __("Background color", "forminator" ), ), // src/form/components/appearance/colors/dropdown-search.js:
|
55 |
-
"Text color" => array( null, __("Text color", "forminator" ), ), // src/form/components/appearance/colors/dropdown-search.js:
|
56 |
"Container border" => array( null, __("Container border", "forminator" ), ), // src/form/components/appearance/colors/dropdown.js:33
|
57 |
-
"Container BG" => array( null, __("Container BG", "forminator" ), ), // src/form/components/appearance/colors/dropdown.js:
|
58 |
-
"Option color" => array( null, __("Option color", "forminator" ), ), // src/form/components/appearance/colors/dropdown.js:
|
59 |
-
"Option background" => array( null, __("Option background", "forminator" ), ), // src/form/components/appearance/colors/dropdown.js:
|
60 |
-
"Selected" => array( null, __("Selected", "forminator" ), ), // src/form/components/appearance/colors/dropdown.js:
|
61 |
"Label" => array( null, __("Label", "forminator" ), ), // src/form/components/appearance/colors/fields-basics.js:18
|
62 |
"Required asterisk" => array( null, __("Required asterisk", "forminator" ), ), // src/form/components/appearance/colors/fields-basics.js:24
|
63 |
"Description" => array( null, __("Description", "forminator" ), ), // src/form/components/appearance/colors/fields-basics.js:30
|
64 |
"Error message BG" => array( null, __("Error message BG", "forminator" ), ), // src/form/components/appearance/colors/fields-basics.js:37
|
65 |
-
"Error message color" => array( null, __("Error message color", "forminator" ), ), // src/form/components/appearance/colors/fields-basics.js:
|
66 |
-
"Global error color" => array( null, __("Global error color", "forminator" ), ), // src/form/components/appearance/colors/fields-basics.js:
|
67 |
-
"This color will be used when fields throw an error as text color, border color, etc." => array( null, __("This color will be used when fields throw an error as text color, border color, etc.", "forminator" ), ), // src/form/components/appearance/colors/fields-basics.js:
|
68 |
"Icon color" => array( null, __("Icon color", "forminator" ), ), // src/form/components/appearance/colors/file-delete.js:36
|
69 |
"Focus" => array( null, __("Focus", "forminator" ), ), // src/form/components/appearance/colors/file-delete.js:60
|
70 |
"Suffix color" => array( null, __("Suffix color", "forminator" ), ), // src/form/components/appearance/colors/inputs-extra.js:48
|
71 |
"Only Stripe card icon will show this color variation." => array( null, __("Only Stripe card icon will show this color variation.", "forminator" ), ), // src/form/components/appearance/colors/inputs-extra.js:96
|
72 |
-
"Placeholder" => array( null, __("Placeholder", "forminator" ), ), // src/form/components/appearance/colors/inputs.js:
|
73 |
-
"Error" => array( null, __("Error", "forminator" ), ), // src/form/components/appearance/colors/inputs.js:
|
74 |
"Option border" => array( null, __("Option border", "forminator" ), ), // src/form/components/appearance/colors/multi-select.js:32
|
75 |
"Label color" => array( null, __("Label color", "forminator" ), ), // src/form/components/appearance/colors/pagination-back.js:33
|
76 |
"Progress bar BG" => array( null, __("Progress bar BG", "forminator" ), ), // src/form/components/appearance/colors/pagination-progress.js:24
|
@@ -80,7 +82,7 @@ $forminator_admin_locale = array(
|
|
80 |
"Page number color" => array( null, __("Page number color", "forminator" ), ), // src/form/components/appearance/colors/pagination-steps.js:95
|
81 |
"Current state colors" => array( null, __("Current state colors", "forminator" ), ), // src/form/components/appearance/colors/pagination-steps.js:106
|
82 |
"Footer border color" => array( null, __("Footer border color", "forminator" ), ), // src/form/components/appearance/colors/pagination.js:15
|
83 |
-
"Checked" => array( null, __("Checked", "forminator" ), ), // src/form/components/appearance/colors/radio.js:
|
84 |
"Title color" => array( null, __("Title color", "forminator" ), ), // src/form/components/appearance/colors/section.js:15
|
85 |
"Subtitle color" => array( null, __("Subtitle color", "forminator" ), ), // src/form/components/appearance/colors/section.js:19
|
86 |
"Custom CSS" => array( null, __("Custom CSS", "forminator" ), ), // src/form/components/appearance/custom-css.js:16
|
@@ -126,7 +128,7 @@ $forminator_admin_locale = array(
|
|
126 |
"Solid" => array( null, __("Solid", "forminator" ), ), // src/form/components/appearance/form-container/border-custom.js:44
|
127 |
"Dashed" => array( null, __("Dashed", "forminator" ), ), // src/form/components/appearance/form-container/border-custom.js:47
|
128 |
"Dotted" => array( null, __("Dotted", "forminator" ), ), // src/form/components/appearance/form-container/border-custom.js:50
|
129 |
-
"Note: Set the
|
130 |
"Top" => array( null, __("Top", "forminator" ), ), // src/form/components/appearance/form-container/padding-custom.js:20
|
131 |
"Bottom" => array( null, __("Bottom", "forminator" ), ), // src/form/components/appearance/form-container/padding-custom.js:29
|
132 |
"Left" => array( null, __("Left", "forminator" ), ), // src/form/components/appearance/form-container/padding-custom.js:38
|
@@ -144,7 +146,7 @@ $forminator_admin_locale = array(
|
|
144 |
"Show" => array( null, __("Show", "forminator" ), ), // src/form/components/appearance/pagination.js:63
|
145 |
"Progress Bar" => array( null, __("Progress Bar", "forminator" ), ), // src/form/components/appearance/pagination.js:72
|
146 |
"Steps" => array( null, __("Steps", "forminator" ), ), // src/form/components/appearance/pagination.js:78
|
147 |
-
"Email Notifications" => array( null, __("Email Notifications", "forminator" ), ), // src/form/components/behaviour.js:
|
148 |
"Form does not have fields that can be autofilled." => array( null, __("Form does not have fields that can be autofilled.", "forminator" ), ), // src/form/components/behaviour/autofill.js:61
|
149 |
"Autofill" => array( null, __("Autofill", "forminator" ), ), // src/form/components/behaviour/autofill.js:159
|
150 |
"If the user filling out the form is logged in, we can auto-fill fields with any available data." => array( null, __("If the user filling out the form is logged in, we can auto-fill fields with any available data.", "forminator" ), ), // src/form/components/behaviour/autofill.js:161
|
@@ -155,7 +157,7 @@ $forminator_admin_locale = array(
|
|
155 |
"No" => array( null, __("No", "forminator" ), ), // src/form/components/behaviour/autofill.js:234
|
156 |
"Yes" => array( null, __("Yes", "forminator" ), ), // src/form/components/behaviour/autofill.js:237
|
157 |
"Lifespan" => array( null, __("Lifespan", "forminator" ), ), // src/form/components/behaviour/lifespan.js:17
|
158 |
-
"By default this form will always be available for submissions.
|
159 |
"Expiry" => array( null, __("Expiry", "forminator" ), ), // src/form/components/behaviour/lifespan.js:31
|
160 |
"Date" => array( null, __("Date", "forminator" ), ), // src/form/components/behaviour/lifespan.js:46
|
161 |
"20 April 2018" => array( null, __("20 April 2018", "forminator" ), ), // src/form/components/behaviour/lifespan.js:49
|
@@ -173,52 +175,53 @@ $forminator_admin_locale = array(
|
|
173 |
"Enabling this feature will load the form via AJAX after the page has loaded up, effectively speeding up your page load time. This method can also (in most cases) avoid page caching issues with your form." => array( null, __("Enabling this feature will load the form via AJAX after the page has loaded up, effectively speeding up your page load time. This method can also (in most cases) avoid page caching issues with your form.", "forminator" ), ), // src/form/components/behaviour/render.js:23
|
174 |
"Prevent page caching on form pages" => array( null, __("Prevent page caching on form pages", "forminator" ), ), // src/form/components/behaviour/render.js:34
|
175 |
"Page caching plugins serve a static HTML version of the page which can cause issues to your dynamic forms. By enabling this, we'll use {{strong}}DONOTCACHEPAGE{{/strong}} constant to prevent pages with this form on it from being cached." => array( null, __("Page caching plugins serve a static HTML version of the page which can cause issues to your dynamic forms. By enabling this, we'll use {{strong}}DONOTCACHEPAGE{{/strong}} constant to prevent pages with this form on it from being cached.", "forminator" ), ), // src/form/components/behaviour/render.js:35
|
176 |
-
"Security" => array( null, __("Security", "forminator" ), ), // src/form/components/behaviour/security.js:
|
177 |
-
"Added layers of security to prevent spam submissions." => array( null, __("Added layers of security to prevent spam submissions.", "forminator" ), ), // src/form/components/behaviour/security.js:
|
178 |
-
"Enable Honeypot protection" => array( null, __("Enable Honeypot protection", "forminator" ), ), // src/form/components/behaviour/security.js:
|
179 |
-
"Enabling this feature tricks spam bots by giving them a hidden challenge only bots will see. If the bot tries the challenge we know it's not a human and prevent the form being submitted." => array( null, __("Enabling this feature tricks spam bots by giving them a hidden challenge only bots will see. If the bot tries the challenge we know it's not a human and prevent the form being submitted.", "forminator" ), ), // src/form/components/behaviour/security.js:
|
180 |
-
"Enable logged in submission only" => array( null, __("Enable logged in submission only", "forminator" ), ), // src/form/components/behaviour/security.js:
|
181 |
-
"Lock down your form submissions to registered users only." => array( null, __("Lock down your form submissions to registered users only.", "forminator" ), ), // src/form/components/behaviour/security.js:
|
182 |
-
"Submission Behaviour" => array( null, __("Submission Behaviour", "forminator" ), ), // src/form/components/behaviour/submission.js:
|
183 |
-
"Choose what you want to happen after your visitor has successfully submitted this form." => array( null, __("Choose what you want to happen after your visitor has successfully submitted this form.", "forminator" ), ), // src/form/components/behaviour/submission.js:
|
184 |
-
"
|
185 |
-
"Choose
|
186 |
-
"
|
187 |
-
"
|
188 |
-
"
|
189 |
-
"
|
190 |
-
"
|
191 |
-
"
|
192 |
-
"
|
193 |
-
"
|
194 |
-
"
|
195 |
-
"
|
196 |
-
"Redirect user to a URL" => array( null, __("Redirect user to a URL", "forminator" ), ), // src/form/components/behaviour/submission.js:147
|
197 |
-
"Redirect URL" => array( null, __("Redirect URL", "forminator" ), ), // src/form/components/behaviour/submission.js:152
|
198 |
-
"https://www.mywebsite.com" => array( null, __("https://www.mywebsite.com", "forminator" ), ), // src/form/components/behaviour/submission.js:153
|
199 |
-
"URL Redirect" => array( null, __("URL Redirect", "forminator" ), ), // src/form/components/behaviour/submission.js:157
|
200 |
"Redirection Option" => array( null, __("Redirection Option", "forminator" ), ), // src/form/components/behaviour/submission.js:167
|
201 |
-
"Redirect on the same tab" => array( null, __("Redirect on the same tab", "forminator" ), ), // src/form/components/behaviour/submission.js:
|
202 |
-
"Redirect on new tab and show thank you message on form page" => array( null, __("Redirect on new tab and show thank you message on form page", "forminator" ), ), // src/form/components/behaviour/submission.js:
|
203 |
-
"Redirect on new tab and hide form on the form page" => array( null, __("Redirect on new tab and hide form on the form page", "forminator" ), ), // src/form/components/behaviour/submission.js:
|
204 |
-
"Hide form" => array( null, __("Hide form", "forminator" ), ), // src/form/components/behaviour/submission.js:
|
205 |
-
"Submit Message" => array( null, __("Submit Message", "forminator" ), ), // src/form/components/behaviour/submission.js:
|
206 |
-
"
|
207 |
-
"
|
208 |
-
"
|
209 |
-
"
|
210 |
-
"
|
211 |
-
"
|
212 |
-
"
|
213 |
-
"
|
214 |
-
"
|
215 |
-
"
|
216 |
-
"
|
217 |
-
"
|
218 |
-
"
|
219 |
-
"
|
220 |
-
"
|
221 |
-
"
|
|
|
|
|
|
|
|
|
|
|
222 |
"Insert Fields" => array( null, __("Insert Fields", "forminator" ), ), // src/form/components/builder/insert-fields.js:17
|
223 |
" Insert Fields" => array( null, __(" Insert Fields", "forminator" ), ), // src/form/components/builder/insert-fields.js:43
|
224 |
"A form without fields isn’t going to be very useful… Add your first field above!" => array( null, __("A form without fields isn’t going to be very useful… Add your first field above!", "forminator" ), ), // src/form/components/builder/insert-fields.js:58
|
@@ -276,7 +279,7 @@ $forminator_admin_locale = array(
|
|
276 |
"0.9" => array( null, __("0.9", "forminator" ), ), // src/form/components/fields/captcha.js:199
|
277 |
"1.0" => array( null, __("1.0", "forminator" ), ), // src/form/components/fields/captcha.js:200
|
278 |
"Language" => array( null, __("Language", "forminator" ), ), // src/form/components/fields/captcha.js:219
|
279 |
-
"By default, we will use the language
|
280 |
"Automatic" => array( null, __("Automatic", "forminator" ), ), // src/form/components/fields/captcha.js:237
|
281 |
"Error Message" => array( null, __("Error Message", "forminator" ), ), // src/form/components/fields/captcha.js:255
|
282 |
"Choose the error message you want to display on your form when reCAPTCHA verification fails." => array( null, __("Choose the error message you want to display on your form when reCAPTCHA verification fails.", "forminator" ), ), // src/form/components/fields/captcha.js:260
|
@@ -362,6 +365,21 @@ $forminator_admin_locale = array(
|
|
362 |
"Previous Button" => array( null, __("Previous Button", "forminator" ), ), // src/form/components/fields/pagination.js:49
|
363 |
"Enter text" => array( null, __("Enter text", "forminator" ), ), // src/form/components/fields/pagination.js:50
|
364 |
"Next Button" => array( null, __("Next Button", "forminator" ), ), // src/form/components/fields/pagination.js:55
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
365 |
"In %s" => array( null, __("In %s", "forminator" ), ), // src/form/components/fields/paypal.js:49
|
366 |
"You have not connected your PayPal account with Forminator. Connect your PayPal account {{link}}here{{/link}} and then come back to configure this field." => array( null, __("You have not connected your PayPal account with Forminator. Connect your PayPal account {{link}}here{{/link}} and then come back to configure this field.", "forminator" ), ), // src/form/components/fields/paypal.js:69
|
367 |
"Mode of payment" => array( null, __("Mode of payment", "forminator" ), ), // src/form/components/fields/paypal.js:88
|
@@ -410,12 +428,9 @@ $forminator_admin_locale = array(
|
|
410 |
"Elo" => array( null, __("Elo", "forminator" ), ), // src/form/components/fields/paypal.js:491
|
411 |
"Hiper" => array( null, __("Hiper", "forminator" ), ), // src/form/components/fields/paypal.js:498
|
412 |
"Debug Mode" => array( null, __("Debug Mode", "forminator" ), ), // src/form/components/fields/paypal.js:509
|
413 |
-
"PayPal debug mode helps troubleshoot any issues. However, it
|
414 |
"Disable" => array( null, __("Disable", "forminator" ), ), // src/form/components/fields/paypal.js:531
|
415 |
"Enable" => array( null, __("Enable", "forminator" ), ), // src/form/components/fields/paypal.js:532
|
416 |
-
"Validate" => array( null, __("Validate", "forminator" ), ), // src/form/components/fields/phone.js:34
|
417 |
-
"Make sure the user has filled out this field correctly and warn them when they haven't." => array( null, __("Make sure the user has filled out this field correctly and warn them when they haven't.", "forminator" ), ), // src/form/components/fields/phone.js:36
|
418 |
-
"Validate Field" => array( null, __("Validate Field", "forminator" ), ), // src/form/components/fields/phone.js:55
|
419 |
"Validation Type" => array( null, __("Validation Type", "forminator" ), ), // src/form/components/fields/phone.js:61
|
420 |
"National" => array( null, __("National", "forminator" ), ), // src/form/components/fields/phone.js:64
|
421 |
"International" => array( null, __("International", "forminator" ), ), // src/form/components/fields/phone.js:65
|
@@ -423,8 +438,6 @@ $forminator_admin_locale = array(
|
|
423 |
"Limit to:" => array( null, __("Limit to:", "forminator" ), ), // src/form/components/fields/phone.js:73
|
424 |
"10" => array( null, __("10", "forminator" ), ), // src/form/components/fields/phone.js:75
|
425 |
"Select country" => array( null, __("Select country", "forminator" ), ), // src/form/components/fields/phone.js:84
|
426 |
-
"Validation message" => array( null, __("Validation message", "forminator" ), ), // src/form/components/fields/phone.js:96
|
427 |
-
"Enter validation message" => array( null, __("Enter validation message", "forminator" ), ), // src/form/components/fields/phone.js:98
|
428 |
"Title" => array( null, __("Title", "forminator" ), ), // src/form/components/fields/postdata.js:24
|
429 |
"Content" => array( null, __("Content", "forminator" ), ), // src/form/components/fields/postdata.js:29
|
430 |
"Excerpt" => array( null, __("Excerpt", "forminator" ), ), // src/form/components/fields/postdata.js:34
|
@@ -443,7 +456,7 @@ $forminator_admin_locale = array(
|
|
443 |
"Pending Review" => array( null, __("Pending Review", "forminator" ), ), // src/form/components/fields/postdata.js:293
|
444 |
"Published" => array( null, __("Published", "forminator" ), ), // src/form/components/fields/postdata.js:296
|
445 |
"Default author" => array( null, __("Default author", "forminator" ), ), // src/form/components/fields/postdata.js:309
|
446 |
-
"By default we
|
447 |
"Always assign posts to this user" => array( null, __("Always assign posts to this user", "forminator" ), ), // src/form/components/fields/postdata.js:341
|
448 |
"Taxonomies limits" => array( null, __("Taxonomies limits", "forminator" ), ), // src/form/components/fields/postdata.js:356
|
449 |
"Choose whether to allow single or multiple categories or tags on this post." => array( null, __("Choose whether to allow single or multiple categories or tags on this post.", "forminator" ), ), // src/form/components/fields/postdata.js:359
|
@@ -460,74 +473,76 @@ $forminator_admin_locale = array(
|
|
460 |
"Choose whether to allow this field to be used in calculations or not. The value used in calculations is the same as the input value of this field." => array( null, __("Choose whether to allow this field to be used in calculations or not. The value used in calculations is the same as the input value of this field.", "forminator" ), ), // src/form/components/fields/singlevalue.js:209
|
461 |
"Credit / Debit Card" => array( null, __("Credit / Debit Card", "forminator" ), ), // src/form/components/fields/stripe.js:115
|
462 |
"Choose your preferred language for the Stripe field. This will affect the placeholders language, and the card validation errors returned by the Stripe." => array( null, __("Choose your preferred language for the Stripe field. This will affect the placeholders language, and the card validation errors returned by the Stripe.", "forminator" ), ), // src/form/components/fields/stripe.js:140
|
463 |
-
"Auto" => array( null, __("Auto", "forminator" ), ), // src/form/components/fields/stripe.js:
|
464 |
-
"English (en)" => array( null, __("English (en)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
465 |
-
"Simplified Chinese (zh)" => array( null, __("Simplified Chinese (zh)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
466 |
-
"Danish (da)" => array( null, __("Danish (da)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
467 |
-
"Dutch (nl)" => array( null, __("Dutch (nl)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
468 |
-
"Finnish (fi)" => array( null, __("Finnish (fi)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
469 |
-
"French (fr)" => array( null, __("French (fr)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
470 |
-
"German (de)" => array( null, __("German (de)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
471 |
-
"Italian (it)" => array( null, __("Italian (it)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
472 |
-
"Japanese (ja)" => array( null, __("Japanese (ja)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
473 |
-
"Norwegian (no)" => array( null, __("Norwegian (no)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
474 |
-
"Spanish (es)" => array( null, __("Spanish (es)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
475 |
-
"Swedish (sv)" => array( null, __("Swedish (sv)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
476 |
-
"Card icon" => array( null, __("Card icon", "forminator" ), ), // src/form/components/fields/stripe.js:
|
477 |
-
"Choose whether you want to show the card icon on the Stripe field." => array( null, __("Choose whether you want to show the card icon on the Stripe field.", "forminator" ), ), // src/form/components/fields/stripe.js:
|
478 |
-
"Postal code" => array( null, __("Postal code", "forminator" ), ), // src/form/components/fields/stripe.js:
|
479 |
-
"Choose whether you want to collect the postal code on the Stripe field." => array( null, __("Choose whether you want to collect the postal code on the Stripe field.", "forminator" ), ), // src/form/components/fields/stripe.js:
|
480 |
-
"Prefill (optional)" => array( null, __("Prefill (optional)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
481 |
-
"If you are already collecting ZIP code on your form, you can pre-fill it on the Stripe field." => array( null, __("If you are already collecting ZIP code on your form, you can pre-fill it on the Stripe field.", "forminator" ), ), // src/form/components/fields/stripe.js:
|
482 |
-
"You have not connected your Stripe account with Forminator. Connect your Stripe account {{link}}here{{/link}} and then come back to configure this field." => array( null, __("You have not connected your Stripe account with Forminator. Connect your Stripe account {{link}}here{{/link}} and then come back to configure this field.", "forminator" ), ), // src/form/components/fields/stripe.js:
|
483 |
-
"We recommend using test mode to ensure the payments are working as expected and when you are ready to start collecting live payments, switch to Live payments mode." => array( null, __("We recommend using test mode to ensure the payments are working as expected and when you are ready to start collecting live payments, switch to Live payments mode.", "forminator" ), ), // src/form/components/fields/stripe.js:
|
484 |
-
"Test" => array( null, __("Test", "forminator" ), ), // src/form/components/fields/stripe.js:
|
485 |
-
"It's recommended to charge in your customers' currency to drive more sales and avoid foreign exchange fee to your customers. Read more about Stripe’s currency conversions {{link}}here{{/link}}." => array( null, __("It's recommended to charge in your customers' currency to drive more sales and avoid foreign exchange fee to your customers. Read more about Stripe’s currency conversions {{link}}here{{/link}}.", "forminator" ), ), // src/form/components/fields/stripe.js:
|
486 |
-
"Minimum amount required to process Stripe payments is equivalent to {{strong}}0.5 USD{{/strong}}." => array( null, __("Minimum amount required to process Stripe payments is equivalent to {{strong}}0.5 USD{{/strong}}.", "forminator" ), ), // src/form/components/fields/stripe.js:
|
487 |
-
"Payment Receipt" => array( null, __("Payment Receipt", "forminator" ), ), // src/form/components/fields/stripe.js:
|
488 |
-
"Choose whether you want Stripe to email a receipt to your customers on successful payment. Note that Stripe sends the email receipt only for live payments. {{link}}Customize email template{{/link}}." => array( null, __("Choose whether you want Stripe to email a receipt to your customers on successful payment. Note that Stripe sends the email receipt only for live payments. {{link}}Customize email template{{/link}}.", "forminator" ), ), // src/form/components/fields/stripe.js:
|
489 |
-
"Email address" => array( null, __("Email address", "forminator" ), ), // src/form/components/fields/stripe.js:
|
490 |
-
"E.g. john@doe.com" => array( null, __("E.g. john@doe.com", "forminator" ), ), // src/form/components/fields/stripe.js:
|
491 |
-
"Select an email field" => array( null, __("Select an email field", "forminator" ), ), // src/form/components/fields/stripe.js:
|
492 |
-
"Payment Details (optional)" => array( null, __("Payment Details (optional)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
493 |
-
"You can add a statement decipher and a description to help you and your customers
|
494 |
-
"Statement decipher" => array( null, __("Statement decipher", "forminator" ), ), // src/form/components/fields/stripe.js:
|
495 |
-
"E.g. Company Name" => array( null, __("E.g. Company Name", "forminator" ), ), // src/form/components/fields/stripe.js:
|
496 |
-
"this is the business name your customers will see on their card statement." => array( null, __("this is the business name your customers will see on their card statement.", "forminator" ), ), // src/form/components/fields/stripe.js:
|
497 |
-
"Up to 22 characters only" => array( null, __("Up to 22 characters only", "forminator" ), ), // src/form/components/fields/stripe.js:
|
498 |
-
"Payment description" => array( null, __("Payment description", "forminator" ), ), // src/form/components/fields/stripe.js:
|
499 |
-
"Enter your payment description here" => array( null, __("Enter your payment description here", "forminator" ), ), // src/form/components/fields/stripe.js:
|
500 |
-
"This appears on your Stripe account and on the payment receipt sent to your customers." => array( null, __("This appears on your Stripe account and on the payment receipt sent to your customers.", "forminator" ), ), // src/form/components/fields/stripe.js:
|
501 |
-
"Card Validation" => array( null, __("Card Validation", "forminator" ), ), // src/form/components/fields/stripe.js:
|
502 |
-
"Note: Stripe field automatically validates the card as the user fills the card details regardless of the validation behaviour set on the Behaviours tab." => array( null, __("Note: Stripe field automatically validates the card as the user fills the card details regardless of the validation behaviour set on the Behaviours tab.", "forminator" ), ), // src/form/components/fields/stripe.js:
|
503 |
-
"Billing Details" => array( null, __("Billing Details", "forminator" ), ), // src/form/components/fields/stripe.js:
|
504 |
-
"If you are collection billing details on your forms, you can send that data to Stripe. The billing details will appear on your Stripe dashboard for each payment." => array( null, __("If you are collection billing details on your forms, you can send that data to Stripe. The billing details will appear on your Stripe dashboard for each payment.", "forminator" ), ), // src/form/components/fields/stripe.js:
|
505 |
-
"Customer name (optional)" => array( null, __("Customer name (optional)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
506 |
-
"Select a name field" => array( null, __("Select a name field", "forminator" ), ), // src/form/components/fields/stripe.js:
|
507 |
-
"Customer email address (optional)" => array( null, __("Customer email address (optional)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
508 |
-
"Select an name field" => array( null, __("Select an name field", "forminator" ), ), // src/form/components/fields/stripe.js:
|
509 |
-
"Billing address (optional)" => array( null, __("Billing address (optional)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
510 |
-
"Select an address field" => array( null, __("Select an address field", "forminator" ), ), // src/form/components/fields/stripe.js:
|
511 |
-
"Meta Data" => array( null, __("Meta Data", "forminator" ), ), // src/form/components/fields/stripe.js:
|
512 |
-
"You can send custom meta data to Stripe. This would appear under the MetaData section of every payment. A
|
513 |
-
"MetaData" => array( null, __("MetaData", "forminator" ), ), // src/form/components/fields/stripe.js:
|
514 |
-
"Additional CSS Classes" => array( null, __("Additional CSS Classes", "forminator" ), ), // src/form/components/fields/stripe.js:
|
515 |
-
"Stripe automatically adds classes to the container DOM element based on the field state. However, you can customize them here. {{link}}Read more{{/link}}" => array( null, __("Stripe automatically adds classes to the container DOM element based on the field state. However, you can customize them here. {{link}}Read more{{/link}}", "forminator" ), ), // src/form/components/fields/stripe.js:
|
516 |
-
"Base class" => array( null, __("Base class", "forminator" ), ), // src/form/components/fields/stripe.js:
|
517 |
-
"Complete" => array( null, __("Complete", "forminator" ), ), // src/form/components/fields/stripe.js:
|
518 |
-
"Empty" => array( null, __("Empty", "forminator" ), ), // src/form/components/fields/stripe.js:
|
519 |
-
"Focused" => array( null, __("Focused", "forminator" ), ), // src/form/components/fields/stripe.js:
|
520 |
-
"Invalid" => array( null, __("Invalid", "forminator" ), ), // src/form/components/fields/stripe.js:
|
521 |
-
"Autofilled (Chrome and Safari only)" => array( null, __("Autofilled (Chrome and Safari only)", "forminator" ), ), // src/form/components/fields/stripe.js:
|
522 |
"Max characters" => array( null, __("Max characters", "forminator" ), ), // src/form/components/fields/text.js:80
|
523 |
"By default the user can enter as many characters as they want. Use this setting to limit the number of characters the user can enter. Leave field blank to allow unlimited characters." => array( null, __("By default the user can enter as many characters as they want. Use this setting to limit the number of characters the user can enter. Leave field blank to allow unlimited characters.", "forminator" ), ), // src/form/components/fields/text.js:81
|
524 |
"Character limit" => array( null, __("Character limit", "forminator" ), ), // src/form/components/fields/text.js:89
|
525 |
"E.g. 100" => array( null, __("E.g. 100", "forminator" ), ), // src/form/components/fields/text.js:96
|
526 |
"Characters" => array( null, __("Characters", "forminator" ), ), // src/form/components/fields/text.js:106
|
527 |
"Words" => array( null, __("Words", "forminator" ), ), // src/form/components/fields/text.js:107
|
528 |
-
"
|
529 |
-
"Enable TinyMCE editor to
|
530 |
-
"
|
|
|
|
|
531 |
"Number inputs" => array( null, __("Number inputs", "forminator" ), ), // src/form/components/fields/time.js:56
|
532 |
"12 hour" => array( null, __("12 hour", "forminator" ), ), // src/form/components/fields/time.js:64
|
533 |
"24 hour" => array( null, __("24 hour", "forminator" ), ), // src/form/components/fields/time.js:65
|
@@ -541,11 +556,14 @@ $forminator_admin_locale = array(
|
|
541 |
"Use this feature to specify a default selected time." => array( null, __("Use this feature to specify a default selected time.", "forminator" ), ), // src/form/components/fields/time.js:208
|
542 |
"AM" => array( null, __("AM", "forminator" ), ), // src/form/components/fields/time.js:260
|
543 |
"PM" => array( null, __("PM", "forminator" ), ), // src/form/components/fields/time.js:261
|
544 |
-
"Filesize limit" => array( null, __("Filesize limit", "forminator" ), ), // src/form/components/fields/upload.js:
|
545 |
-
"
|
546 |
-
"
|
547 |
-
"
|
548 |
-
"
|
|
|
|
|
|
|
549 |
"Edit Form" => array( null, __("Edit Form", "forminator" ), ), // src/form/components/header.js:9
|
550 |
"View Documentation" => array( null, __("View Documentation", "forminator" ), ), // src/form/components/header/documentation.js:14
|
551 |
"Name your form" => array( null, __("Name your form", "forminator" ), ), // src/form/components/header/title.js:35
|
@@ -558,6 +576,29 @@ $forminator_admin_locale = array(
|
|
558 |
"Applications" => array( null, __("Applications", "forminator" ), ), // src/form/components/integrations.js:138
|
559 |
"You can send this form’s data to any of the connected third party apps. Connect to more apps on the {{link}}Integrations{{/link}} page." => array( null, __("You can send this form’s data to any of the connected third party apps. Connect to more apps on the {{link}}Integrations{{/link}} page.", "forminator" ), ), // src/form/components/integrations.js:139
|
560 |
"Settings" => array( null, __("Settings", "forminator" ), ), // src/form/components/integrations.js:165
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
561 |
"Unpublish" => array( null, __("Unpublish", "forminator" ), ), // src/form/components/meta/buttons.js:71
|
562 |
"Save Draft" => array( null, __("Save Draft", "forminator" ), ), // src/form/components/meta/buttons.js:73
|
563 |
"Update" => array( null, __("Update", "forminator" ), ), // src/form/components/meta/buttons.js:88
|
@@ -588,32 +629,35 @@ $forminator_admin_locale = array(
|
|
588 |
"Please enter recipients" => array( null, __("Please enter recipients", "forminator" ), ), // src/form/components/modals/notification.js:200
|
589 |
"Please select rule" => array( null, __("Please select rule", "forminator" ), ), // src/form/components/modals/notification.js:212
|
590 |
"Please add email routing" => array( null, __("Please add email routing", "forminator" ), ), // src/form/components/modals/notification.js:217
|
591 |
-
"
|
592 |
-
"Email" => array( null, __("Email", "forminator" ), ), // src/form/components/modals/notification.js:
|
593 |
-
"
|
594 |
-
"
|
595 |
-
"
|
596 |
-
"
|
597 |
-
"
|
598 |
-
"E.g.
|
599 |
-
"
|
600 |
-
"
|
601 |
-
"
|
602 |
-
"
|
603 |
-
"
|
604 |
-
"
|
605 |
-
"
|
606 |
-
"
|
607 |
-
"
|
608 |
-
"
|
609 |
-
"
|
610 |
-
"
|
611 |
-
"
|
612 |
-
"
|
613 |
-
"
|
614 |
-
"
|
615 |
-
"
|
616 |
-
"
|
|
|
|
|
|
|
617 |
"Labels" => array( null, __("Labels", "forminator" ), ), // src/form/components/modals/pagination.js:79
|
618 |
"Your form is divided into multiple pages by Page Break field(s), and you can customize the label of each page here. Page names appear on your form header along with the progress indicator." => array( null, __("Your form is divided into multiple pages by Page Break field(s), and you can customize the label of each page here. Page names appear on your form header along with the progress indicator.", "forminator" ), ), // src/form/components/modals/pagination.js:107
|
619 |
"Finish" => array( null, __("Finish", "forminator" ), ), // src/form/components/modals/pagination.js:134
|
@@ -622,21 +666,22 @@ $forminator_admin_locale = array(
|
|
622 |
"Loading preview…" => array( null, __("Loading preview…", "forminator" ), ), // src/form/components/modals/preview.js:73
|
623 |
"Publishing form…" => array( null, __("Publishing form…", "forminator" ), ), // src/form/components/modals/publish.js:18
|
624 |
"Great work! Please hold tight a few moments while we publish your form to the world." => array( null, __("Great work! Please hold tight a few moments while we publish your form to the world.", "forminator" ), ), // src/form/components/modals/publish.js:25
|
625 |
-
"Please fill required fields" => array( null, __("Please fill required fields", "forminator" ), ), // src/form/components/modals/settings.js:
|
626 |
-
"Calculation values are
|
627 |
-
"Option labels are required!" => array( null, __("Option labels are required!", "forminator" ), ), // src/form/components/modals/settings.js:
|
628 |
-
"Please, connect your Stripe account first!" => array( null, __("Please, connect your Stripe account first!", "forminator" ), ), // src/form/components/modals/settings.js:
|
629 |
-
"Please, enter Stripe payment amount!" => array( null, __("Please, enter Stripe payment amount!", "forminator" ), ), // src/form/components/modals/settings.js:
|
630 |
-
"Please
|
631 |
-
"
|
632 |
-
"
|
633 |
-
"
|
634 |
-
"
|
635 |
-
"
|
636 |
-
"
|
637 |
-
"
|
638 |
-
"
|
639 |
-
"
|
|
|
640 |
"Shortcode has been copied successfully." => array( null, __("Shortcode has been copied successfully.", "forminator" ), ), // src/form/components/modals/shortcode.js:20
|
641 |
"Ready to go!" => array( null, __("Ready to go!", "forminator" ), ), // src/form/components/modals/shortcode.js:31
|
642 |
"Your form is now ready to be embedded into a page or template of your choice. Simply copy and paste the shortcode below to display it!" => array( null, __("Your form is now ready to be embedded into a page or template of your choice. Simply copy and paste the shortcode below to display it!", "forminator" ), ), // src/form/components/modals/shortcode.js:37
|
@@ -644,7 +689,7 @@ $forminator_admin_locale = array(
|
|
644 |
"Copy shortcode" => array( null, __("Copy shortcode", "forminator" ), ), // src/form/components/modals/shortcode.js:49
|
645 |
"Button text" => array( null, __("Button text", "forminator" ), ), // src/form/components/modals/submit.js:102
|
646 |
"Enter message" => array( null, __("Enter message", "forminator" ), ), // src/form/components/modals/submit.js:115
|
647 |
-
"Navigate" => array( null, __("Navigate", "forminator" ), ), // src/form/components/navigation/menu.js:
|
648 |
"Preview" => array( null, __("Preview", "forminator" ), ), // src/form/components/navigation/preview.js:16
|
649 |
"You can send customized email notifications to your site admins and visitors on successful form submission. Advanced features like email routing and conditional emails provide granular control over the email notifications." => array( null, __("You can send customized email notifications to your site admins and visitors on successful form submission. Advanced features like email routing and conditional emails provide granular control over the email notifications.", "forminator" ), ), // src/form/components/notifications.js:36
|
650 |
"Admin Email" => array( null, __("Admin Email", "forminator" ), ), // src/form/components/notifications/admin-email.js:294
|
@@ -689,41 +734,78 @@ $forminator_admin_locale = array(
|
|
689 |
"Send a confirmation email to the user" => array( null, __("Send a confirmation email to the user", "forminator" ), ), // src/form/components/notifications/confirmation-email.js:308
|
690 |
"If you leave it blank, we will automatically find first email field in the form as recipient. If there is no email field and user is logged in we will use their email." => array( null, __("If you leave it blank, we will automatically find first email field in the form as recipient. If there is no email field and user is logged in we will use their email.", "forminator" ), ), // src/form/components/notifications/confirmation-email.js:353
|
691 |
"Send to {{strong}}\"%(label)s\"{{/strong}} if {{strong}}%(field)s{{/strong}} %(rule)s {{strong}}%(value)s{{/strong}}" => array( null, __("Send to {{strong}}\"%(label)s\"{{/strong}} if {{strong}}%(field)s{{/strong}} %(rule)s {{strong}}%(value)s{{/strong}}", "forminator" ), ), // src/form/components/notifications/email-routing-rule.js:168
|
692 |
-
"Routing Condition" => array( null, __("Routing Condition", "forminator" ), ), // src/form/components/notifications/email-routing-rule.js:
|
693 |
-
"Enter value" => array( null, __("Enter value", "forminator" ), ), // src/form/components/notifications/email-routing-rule.js:
|
694 |
"You haven't defined any email routing rules yet. Click on the \"+ Add Rule\" button to add the recipients along with the routing rules." => array( null, __("You haven't defined any email routing rules yet. Click on the \"+ Add Rule\" button to add the recipients along with the routing rules.", "forminator" ), ), // src/form/components/notifications/email-routing.js:142
|
695 |
"Email routing is enabled" => array( null, __("Email routing is enabled", "forminator" ), ), // src/form/components/notifications/notification.js:195
|
696 |
"more recipient(s)" => array( null, __("more recipient(s)", "forminator" ), ), // src/form/components/notifications/notification.js:203
|
697 |
"Open field settings" => array( null, __("Open field settings", "forminator" ), ), // src/form/components/notifications/notification.js:246
|
698 |
"Edit" => array( null, __("Edit", "forminator" ), ), // src/form/components/notifications/notification.js:253
|
699 |
-
"
|
700 |
-
"
|
701 |
-
"
|
702 |
-
"
|
703 |
-
"
|
704 |
-
"
|
705 |
-
"
|
706 |
-
"
|
707 |
-
"
|
708 |
-
"
|
709 |
-
"
|
710 |
-
"
|
711 |
-
"
|
712 |
-
"
|
713 |
-
"
|
714 |
-
"
|
715 |
-
"
|
716 |
-
"
|
717 |
-
"
|
718 |
-
"
|
719 |
-
"
|
720 |
-
"
|
721 |
-
" the
|
722 |
-
"
|
723 |
-
"
|
724 |
-
"
|
725 |
-
"
|
726 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
727 |
"Unknown setting" => array( null, __("Unknown setting", "forminator" ), ), // src/form/components/settings/advanced.js:108
|
728 |
"Assign a calculation value to each option. These values will not be shown on the form. You can assign only a numeric value." => array( null, __("Assign a calculation value to each option. These values will not be shown on the form. You can assign only a numeric value.", "forminator" ), ), // src/form/components/settings/calculations/options.js:39
|
729 |
"Calculation value" => array( null, __("Calculation value", "forminator" ), ), // src/form/components/settings/calculations/options.js:58
|
@@ -732,16 +814,16 @@ $forminator_admin_locale = array(
|
|
732 |
"Pick a date" => array( null, __("Pick a date", "forminator" ), ), // src/form/components/settings/date-multiple.js:74
|
733 |
"Add selected date" => array( null, __("Add selected date", "forminator" ), ), // src/form/components/settings/date-multiple.js:81
|
734 |
"Restricted dates" => array( null, __("Restricted dates", "forminator" ), ), // src/form/components/settings/date-multiple.js:92
|
735 |
-
"Allowed filetypes" => array( null, __("Allowed filetypes", "forminator" ), ), // src/form/components/settings/filetypes.js:
|
736 |
-
"By default we will use {{a}}WordPress Default Allowed Mime Types{{/a}}. You can choose which types of files you want to allow users to upload." => array( null, __("By default we will use {{a}}WordPress Default Allowed Mime Types{{/a}}. You can choose which types of files you want to allow users to upload.", "forminator" ), ), // src/form/components/settings/filetypes.js:
|
737 |
-
"Images" => array( null, __("Images", "forminator" ), ), // src/form/components/settings/filetypes.js:
|
738 |
-
"Documents" => array( null, __("Documents", "forminator" ), ), // src/form/components/settings/filetypes.js:
|
739 |
-
"Audio" => array( null, __("Audio", "forminator" ), ), // src/form/components/settings/filetypes.js:
|
740 |
-
"Video" => array( null, __("Video", "forminator" ), ), // src/form/components/settings/filetypes.js:
|
741 |
-
"Archive" => array( null, __("Archive", "forminator" ), ), // src/form/components/settings/filetypes.js:
|
742 |
-
"Spreadsheet" => array( null, __("Spreadsheet", "forminator" ), ), // src/form/components/settings/filetypes.js:
|
743 |
-
"Interactive" => array( null, __("Interactive", "forminator" ), ), // src/form/components/settings/filetypes.js:
|
744 |
-
"If you're having trouble uploading one of these filetypes, it may be an issue with your hosting provider." => array( null, __("If you're having trouble uploading one of these filetypes, it may be an issue with your hosting provider.", "forminator" ), ), // src/form/components/settings/filetypes.js:
|
745 |
"Roboto" => array( null, __("Roboto", "forminator" ), ), // src/form/components/settings/fonts.js:55
|
746 |
"Font Family" => array( null, __("Font Family", "forminator" ), ), // src/form/components/settings/fonts.js:56
|
747 |
"Custom user font" => array( null, __("Custom user font", "forminator" ), ), // src/form/components/settings/fonts.js:70
|
@@ -751,13 +833,12 @@ $forminator_admin_locale = array(
|
|
751 |
"Font Size" => array( null, __("Font Size", "forminator" ), ), // src/form/components/settings/fonts.js:135
|
752 |
"Font Weight" => array( null, __("Font Weight", "forminator" ), ), // src/form/components/settings/fonts.js:142
|
753 |
"Select font weight" => array( null, __("Select font weight", "forminator" ), ), // src/form/components/settings/fonts.js:143
|
754 |
-
"Select a Field" => array( null, __("Select a Field", "forminator" ), ), // src/form/components/settings/metadata-option.js:78
|
755 |
"Delete MetaData" => array( null, __("Delete MetaData", "forminator" ), ), // src/form/components/settings/metadata-option.js:97
|
756 |
"Add Custom Meta" => array( null, __("Add Custom Meta", "forminator" ), ), // src/form/components/settings/metadata-value.js:131
|
757 |
"No custom meta data created yet. Click on \"+ Add Custom to create custom meta and map form fields to it." => array( null, __("No custom meta data created yet. Click on \"+ Add Custom to create custom meta and map form fields to it.", "forminator" ), ), // src/form/components/settings/metadata-value.js:140
|
758 |
-
"Delete
|
759 |
-
"Add Custom Field" => array( null, __("Add Custom Field", "forminator" ), ), // src/form/components/settings/multi-custom-field-value.js:137
|
760 |
"Default value" => array( null, __("Default value", "forminator" ), ), // src/form/components/settings/multi-name.js:54
|
|
|
761 |
"Submission limit" => array( null, __("Submission limit", "forminator" ), ), // src/form/components/settings/multi-option.js:97
|
762 |
"Options" => array( null, __("Options", "forminator" ), ), // src/form/components/settings/multi-value.js:139
|
763 |
"Add Option" => array( null, __("Add Option", "forminator" ), ), // src/form/components/settings/multi-value.js:159
|
@@ -769,10 +850,13 @@ $forminator_admin_locale = array(
|
|
769 |
"Pre-populate" => array( null, __("Pre-populate", "forminator" ), ), // src/form/components/settings/prefill.js:25
|
770 |
"You can pre-populate this field dynamically using the query parameter passed in your form URL. Enter the query parameter key to fetch its value from your form URL below." => array( null, __("You can pre-populate this field dynamically using the query parameter passed in your form URL. Enter the query parameter key to fetch its value from your form URL below.", "forminator" ), ), // src/form/components/settings/prefill.js:33
|
771 |
"Query parameter (optional)" => array( null, __("Query parameter (optional)", "forminator" ), ), // src/form/components/settings/prefill.js:45
|
772 |
-
"Require" => array( null, __("Require", "forminator" ), ), // src/form/components/settings/required.js:
|
773 |
-
"Optional" => array( null, __("Optional", "forminator" ), ), // src/form/components/settings/required.js:
|
774 |
-
"Required" => array( null, __("Required", "forminator" ), ), // src/form/components/settings/required.js:
|
775 |
-
"
|
|
|
|
|
|
|
776 |
"Add classes that will be output on this field’s container to aid your theme's default styling." => array( null, __("Add classes that will be output on this field’s container to aid your theme's default styling.", "forminator" ), ), // src/form/components/settings/styling.js:21
|
777 |
"E.g. form-field" => array( null, __("E.g. form-field", "forminator" ), ), // src/form/components/settings/styling.js:30
|
778 |
"These will be output as you see them here." => array( null, __("These will be output as you see them here.", "forminator" ), ), // src/form/components/settings/styling.js:38
|
@@ -780,9 +864,8 @@ $forminator_admin_locale = array(
|
|
780 |
"You need more than one field to configure visibility conditions. Add more fields!" => array( null, __("You need more than one field to configure visibility conditions. Add more fields!", "forminator" ), ), // src/form/components/settings/visibility.js:171
|
781 |
"Rules" => array( null, __("Rules", "forminator" ), ), // src/form/components/settings/visibility.js:182
|
782 |
"By default field will always be visible. If you want to hide or show fields based on user input you can add conditions." => array( null, __("By default field will always be visible. If you want to hide or show fields based on user input you can add conditions.", "forminator" ), ), // src/form/components/settings/visibility.js:196
|
783 |
-
"You have unsaved changes, are you sure want to leave this page" => array( null, __("You have unsaved changes, are you sure want to leave this page", "forminator" ), ), // src/form/containers/main.js:
|
784 |
"Details" => array( null, __("Details", "forminator" ), ), // src/poll/components/appearance.js:51
|
785 |
-
"Adjust the default colour combinations to match your theme styling." => array( null, __("Adjust the default colour combinations to match your theme styling.", "forminator" ), ), // src/poll/components/appearance/colors.js:33
|
786 |
"Use default colors" => array( null, __("Use default colors", "forminator" ), ), // src/poll/components/appearance/colors.js:47
|
787 |
"Poll Container" => array( null, __("Poll Container", "forminator" ), ), // src/poll/components/appearance/colors.js:63
|
788 |
"Poll Basics" => array( null, __("Poll Basics", "forminator" ), ), // src/poll/components/appearance/colors.js:70
|
@@ -817,10 +900,6 @@ $forminator_admin_locale = array(
|
|
817 |
"Allow Multiple" => array( null, __("Allow Multiple", "forminator" ), ), // src/poll/components/behaviour/limits.js:69
|
818 |
"minute(s)" => array( null, __("minute(s)", "forminator" ), ), // src/poll/components/behaviour/limits.js:90
|
819 |
"hour(s)" => array( null, __("hour(s)", "forminator" ), ), // src/poll/components/behaviour/limits.js:91
|
820 |
-
"day(s)" => array( null, __("day(s)", "forminator" ), ), // src/poll/components/behaviour/limits.js:92
|
821 |
-
"week(s)" => array( null, __("week(s)", "forminator" ), ), // src/poll/components/behaviour/limits.js:93
|
822 |
-
"month(s)" => array( null, __("month(s)", "forminator" ), ), // src/poll/components/behaviour/limits.js:94
|
823 |
-
"year(s)" => array( null, __("year(s)", "forminator" ), ), // src/poll/components/behaviour/limits.js:95
|
824 |
"Choose the method you want to use to limit the number of votes." => array( null, __("Choose the method you want to use to limit the number of votes.", "forminator" ), ), // src/poll/components/behaviour/limits.js:109
|
825 |
"User IP" => array( null, __("User IP", "forminator" ), ), // src/poll/components/behaviour/limits.js:117
|
826 |
"Browser Cookie" => array( null, __("Browser Cookie", "forminator" ), ), // src/poll/components/behaviour/limits.js:118
|
@@ -885,10 +964,24 @@ $forminator_admin_locale = array(
|
|
885 |
"Option Unselected" => array( null, __("Option Unselected", "forminator" ), ), // src/quiz/global/components/appearance/design-style/bold.js:20
|
886 |
"Option Selected" => array( null, __("Option Selected", "forminator" ), ), // src/quiz/global/components/appearance/design-style/bold.js:32
|
887 |
"You have opted for no stylesheet to be enqueued. The quiz will inherit styles from your theme's CSS." => array( null, __("You have opted for no stylesheet to be enqueued. The quiz will inherit styles from your theme's CSS.", "forminator" ), ), // src/quiz/global/components/appearance/design-style/none.js:13
|
888 |
-
"
|
889 |
-
"Choose
|
890 |
-
"List" => array( null, __("List", "forminator" ), ), // src/quiz/global/components/appearance/options-layout.js:
|
891 |
-
"Grid" => array( null, __("Grid", "forminator" ), ), // src/quiz/global/components/appearance/options-layout.js:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
892 |
"Messages" => array( null, __("Messages", "forminator" ), ), // src/quiz/global/components/behaviour/messages.js:12
|
893 |
"Choose the copy of the messages for the correct and wrong answers and also for the final score count." => array( null, __("Choose the copy of the messages for the correct and wrong answers and also for the final score count.", "forminator" ), ), // src/quiz/global/components/behaviour/messages.js:15
|
894 |
"Correct Answer Message" => array( null, __("Correct Answer Message", "forminator" ), ), // src/quiz/global/components/behaviour/messages.js:22
|
@@ -899,13 +992,20 @@ $forminator_admin_locale = array(
|
|
899 |
"Quiz Name" => array( null, __("Quiz Name", "forminator" ), ), // src/quiz/global/components/behaviour/messages.js:73
|
900 |
"Quiz Answer" => array( null, __("Quiz Answer", "forminator" ), ), // src/quiz/global/components/behaviour/messages.js:74
|
901 |
"Quiz Result" => array( null, __("Quiz Result", "forminator" ), ), // src/quiz/global/components/behaviour/messages.js:75
|
|
|
902 |
"Load quiz using AJAX" => array( null, __("Load quiz using AJAX", "forminator" ), ), // src/quiz/global/components/behaviour/render.js:22
|
903 |
"Enabling this feature will load the quiz via AJAX after the page has loaded up, effectively speeding up your page load time. This method can also (in most cases) avoid page caching issues with your quiz." => array( null, __("Enabling this feature will load the quiz via AJAX after the page has loaded up, effectively speeding up your page load time. This method can also (in most cases) avoid page caching issues with your quiz.", "forminator" ), ), // src/quiz/global/components/behaviour/render.js:23
|
904 |
"Prevent page caching on quiz pages" => array( null, __("Prevent page caching on quiz pages", "forminator" ), ), // src/quiz/global/components/behaviour/render.js:34
|
905 |
"Page caching plugins serve a static HTML version of the page which can cause issues to your dynamic quizzes. By enabling this, we'll use {{strong}}DONOTCACHEPAGE{{/strong}} constant to prevent pages with this quiz on it from being cached." => array( null, __("Page caching plugins serve a static HTML version of the page which can cause issues to your dynamic quizzes. By enabling this, we'll use {{strong}}DONOTCACHEPAGE{{/strong}} constant to prevent pages with this quiz on it from being cached.", "forminator" ), ), // src/quiz/global/components/behaviour/render.js:35
|
906 |
-
"
|
907 |
-
"
|
908 |
-
"
|
|
|
|
|
|
|
|
|
|
|
|
|
909 |
"Social Sharing" => array( null, __("Social Sharing", "forminator" ), ), // src/quiz/global/components/behaviour/share.js:14
|
910 |
"Choose whether you want to allow the quiz participants to share their results on social media." => array( null, __("Choose whether you want to allow the quiz participants to share their results on social media.", "forminator" ), ), // src/quiz/global/components/behaviour/share.js:15
|
911 |
"Social Sharing Platforms" => array( null, __("Social Sharing Platforms", "forminator" ), ), // src/quiz/global/components/behaviour/social-sharing/social-enable.js:20
|
@@ -945,8 +1045,11 @@ $forminator_admin_locale = array(
|
|
945 |
"Please validate your fields!" => array( null, __("Please validate your fields!", "forminator" ), ), // src/quiz/global/components/modals/personality.js:167
|
946 |
"Publishing quiz…" => array( null, __("Publishing quiz…", "forminator" ), ), // src/quiz/global/components/modals/publish.js:18
|
947 |
"Great work! Please hold tight a few moments while we publish your quiz to the world." => array( null, __("Great work! Please hold tight a few moments while we publish your quiz to the world.", "forminator" ), ), // src/quiz/global/components/modals/publish.js:24
|
948 |
-
"
|
949 |
-
"You
|
|
|
|
|
|
|
950 |
"Your quiz is now ready to be embedded into a page or template of your choice. Simply copy and paste the shortcode below to display it!" => array( null, __("Your quiz is now ready to be embedded into a page or template of your choice. Simply copy and paste the shortcode below to display it!", "forminator" ), ), // src/quiz/global/components/modals/shortcode.js:37
|
951 |
"Button Processing Text" => array( null, __("Button Processing Text", "forminator" ), ), // src/quiz/global/components/modals/submit.js:64
|
952 |
"Sending..." => array( null, __("Sending...", "forminator" ), ), // src/quiz/global/components/modals/submit.js:65
|
@@ -959,7 +1062,9 @@ $forminator_admin_locale = array(
|
|
959 |
"e.g. 0.75em" => array( null, __("e.g. 0.75em", "forminator" ), ), // src/quiz/global/components/settings/fonts.js:102
|
960 |
"Choose how you want to handle this quiz’s data storage. By default we'll use the configuration you've set in your {{link}}global privacy settings{{/link}}." => array( null, __("Choose how you want to handle this quiz’s data storage. By default we'll use the configuration you've set in your {{link}}global privacy settings{{/link}}.", "forminator" ), ), // src/quiz/global/components/settings/privacy.js:34
|
961 |
"How long do you want to retain this quiz's submissions for?" => array( null, __("How long do you want to retain this quiz's submissions for?", "forminator" ), ), // src/quiz/global/components/settings/privacy.js:52
|
962 |
-
"
|
|
|
|
|
963 |
"Answer text color" => array( null, __("Answer text color", "forminator" ), ), // src/quiz/knowledge/components/appearance/colors/answer-text.js:28
|
964 |
"Answer result message" => array( null, __("Answer result message", "forminator" ), ), // src/quiz/knowledge/components/appearance/colors/answer-text.js:34
|
965 |
"Quiz result color" => array( null, __("Quiz result color", "forminator" ), ), // src/quiz/knowledge/components/appearance/colors/basic.js:39
|
@@ -983,10 +1088,10 @@ $forminator_admin_locale = array(
|
|
983 |
"Large" => array( null, __("Large", "forminator" ), ), // src/quiz/knowledge/components/appearance/fonts/social-icons.js:26
|
984 |
"Retake Button" => array( null, __("Retake Button", "forminator" ), ), // src/quiz/personality/components/appearance/colors/colors-table.js:68
|
985 |
"Main" => array( null, __("Main", "forminator" ), ), // src/quiz/personality/components/appearance/colors/quiz-result.js:24
|
986 |
-
"Container background" => array( null, __("Container background", "forminator" ), ), // src/quiz/personality/components/appearance/colors/quiz-result.js:
|
987 |
-
"Header" => array( null, __("Header", "forminator" ), ), // src/quiz/personality/components/appearance/colors/quiz-result.js:
|
988 |
-
"Content background" => array( null, __("Content background", "forminator" ), ), // src/quiz/personality/components/appearance/colors/quiz-result.js:
|
989 |
-
"Retake" => array( null, __("Retake", "forminator" ), ), // src/quiz/personality/components/appearance/fonts/quiz-result.js:
|
990 |
"Let's add the different personalities. Each of the following personality is a possible outcome of your quiz. In case of a tie, the personality is chosen as per their order below." => array( null, __("Let's add the different personalities. Each of the following personality is a possible outcome of your quiz. In case of a tie, the personality is chosen as per their order below.", "forminator" ), ), // src/quiz/personality/components/personalities.js:33
|
991 |
"Reorder the personalities to set the priority order." => array( null, __("Reorder the personalities to set the priority order.", "forminator" ), ), // src/quiz/personality/components/personalities.js:50
|
992 |
"Define the different personalities possible as the outcome of your quiz here." => array( null, __("Define the different personalities possible as the outcome of your quiz here.", "forminator" ), ), // src/quiz/personality/components/personalities/personalities.js:104
|
@@ -998,9 +1103,9 @@ $forminator_admin_locale = array(
|
|
998 |
"Poll" => array( null, __("Poll", "forminator" ), ), // src/settings/inputs/ace-editor.js:122
|
999 |
"Answer Input" => array( null, __("Answer Input", "forminator" ), ), // src/settings/inputs/ace-editor.js:132
|
1000 |
"Answer Label" => array( null, __("Answer Label", "forminator" ), ), // src/settings/inputs/ace-editor.js:137
|
1001 |
-
"Quiz" => array( null, __("Quiz", "forminator" ), ), // src/settings/inputs/ace-editor.js:
|
1002 |
-
"Answer Container" => array( null, __("Answer Container", "forminator" ), ), // src/settings/inputs/ace-editor.js:
|
1003 |
-
"Answer Text" => array( null, __("Answer Text", "forminator" ), ), // src/settings/inputs/ace-editor.js:
|
1004 |
"%s does not exist in your form. Please insert a valid field from the merged tags option." => array( null, __("%s does not exist in your form. Please insert a valid field from the merged tags option.", "forminator" ), ), // src/settings/inputs/calculation.js:157
|
1005 |
"Infinity calculation result." => array( null, __("Infinity calculation result.", "forminator" ), ), // src/settings/inputs/calculation.js:193
|
1006 |
"Calculation Formula" => array( null, __("Calculation Formula", "forminator" ), ), // src/settings/inputs/calculation.js:253
|
@@ -1015,34 +1120,34 @@ $forminator_admin_locale = array(
|
|
1015 |
"You can preview your form and check if the formula is generating expected results." => array( null, __("You can preview your form and check if the formula is generating expected results.", "forminator" ), ), // src/settings/inputs/calculation.js:361
|
1016 |
"Formula Preview" => array( null, __("Formula Preview", "forminator" ), ), // src/settings/inputs/calculation.js:370
|
1017 |
"Remove this date range" => array( null, __("Remove this date range", "forminator" ), ), // src/settings/inputs/date-picker.js:73
|
1018 |
-
"This field is required!" => array( null, __("This field is required!", "forminator" ), ), // src/settings/inputs/input.js:
|
1019 |
-
"Please enter valid number." => array( null, __("Please enter valid number.", "forminator" ), ), // src/settings/inputs/input.js:
|
1020 |
"Select image" => array( null, __("Select image", "forminator" ), ), // src/settings/inputs/uploads.js:25
|
1021 |
"Upload image" => array( null, __("Upload image", "forminator" ), ), // src/settings/inputs/uploads.js:134
|
1022 |
"Upload file" => array( null, __("Upload file", "forminator" ), ), // src/settings/inputs/uploads.js:135
|
1023 |
"Remove uploaded image" => array( null, __("Remove uploaded image", "forminator" ), ), // src/settings/inputs/uploads.js:144
|
1024 |
"Remove uploaded file" => array( null, __("Remove uploaded file", "forminator" ), ), // src/settings/inputs/uploads.js:145
|
1025 |
-
"Required Fields" => array( null, __("Required Fields", "forminator" ), ), // src/settings/inputs/wp-editor.js:
|
1026 |
-
"Optional Fields" => array( null, __("Optional Fields", "forminator" ), ), // src/settings/inputs/wp-editor.js:
|
1027 |
-
"Misc Data" => array( null, __("Misc Data", "forminator" ), ), // src/settings/inputs/wp-editor.js:
|
1028 |
-
"Payment Data" => array( null, __("Payment Data", "forminator" ), ), // src/settings/inputs/wp-editor.js:
|
1029 |
-
"Form Name" => array( null, __("Form Name", "forminator" ), ), // src/settings/inputs/wp-editor.js:
|
1030 |
-
"All Form Fields" => array( null, __("All Form Fields", "forminator" ), ), // src/settings/inputs/wp-editor.js:
|
1031 |
-
"All Non Empty Fields" => array( null, __("All Non Empty Fields", "forminator" ), ), // src/settings/inputs/wp-editor.js:
|
1032 |
-
"Add form data" => array( null, __("Add form data", "forminator" ), ), // src/settings/inputs/wp-editor.js:
|
1033 |
-
"is having" => array( null, __("is having", "forminator" ), ), // src/utils.js:
|
1034 |
-
"is" => array( null, __("is", "forminator" ), ), // src/utils.js:
|
1035 |
-
"is not having" => array( null, __("is not having", "forminator" ), ), // src/utils.js:
|
1036 |
-
"is not" => array( null, __("is not", "forminator" ), ), // src/utils.js:
|
1037 |
-
"day is" => array( null, __("day is", "forminator" ), ), // src/utils.js:
|
1038 |
-
"day is not" => array( null, __("day is not", "forminator" ), ), // src/utils.js:
|
1039 |
-
"month is not" => array( null, __("month is not", "forminator" ), ), // src/utils.js:
|
1040 |
-
"month is" => array( null, __("month is", "forminator" ), ), // src/utils.js:
|
1041 |
-
"is greater than" => array( null, __("is greater than", "forminator" ), ), // src/utils.js:
|
1042 |
-
"is less than" => array( null, __("is less than", "forminator" ), ), // src/utils.js:
|
1043 |
-
"contains" => array( null, __("contains", "forminator" ), ), // src/utils.js:
|
1044 |
-
"starts with" => array( null, __("starts with", "forminator" ), ), // src/utils.js:
|
1045 |
-
"ends with" => array( null, __("ends with", "forminator" ), ), // src/utils.js:
|
1046 |
);
|
1047 |
return $forminator_admin_locale;
|
1048 |
/* THIS IS THE END OF THE GENERATED FILE */
|
1 |
<?php
|
2 |
/* THIS IS A GENERATED FILE. DO NOT EDIT DIRECTLY. */
|
3 |
$forminator_admin_locale = array(
|
4 |
+
"Appearance" => array( null, __("Appearance", "forminator" ), ), // src/form/components/appearance.js:76
|
5 |
+
"Fields" => array( null, __("Fields", "forminator" ), ), // src/form/components/appearance.js:104
|
6 |
+
"Behaviour" => array( null, __("Behaviour", "forminator" ), ), // src/form/components/appearance.js:113
|
7 |
+
"User Registration" => array( null, __("User Registration", "forminator" ), ), // src/form/components/appearance.js:121
|
8 |
+
"User Login" => array( null, __("User Login", "forminator" ), ), // src/form/components/appearance.js:129
|
9 |
"Colors" => array( null, __("Colors", "forminator" ), ), // src/form/components/appearance/colors.js:169
|
10 |
+
"Adjust the default color combinations to match your theme styling." => array( null, __("Adjust the default color combinations to match your theme styling.", "forminator" ), ), // src/form/components/appearance/colors.js:170
|
11 |
"Use Default Colors" => array( null, __("Use Default Colors", "forminator" ), ), // src/form/components/appearance/colors.js:184
|
12 |
"Custom" => array( null, __("Custom", "forminator" ), ), // src/form/components/appearance/colors.js:187
|
13 |
"Element" => array( null, __("Element", "forminator" ), ), // src/form/components/appearance/colors.js:192
|
38 |
"Container" => array( null, __("Container", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:22
|
39 |
"Border" => array( null, __("Border", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:28
|
40 |
"Header background" => array( null, __("Header background", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:29
|
41 |
+
"Background" => array( null, __("Background", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:38
|
42 |
+
"Main background" => array( null, __("Main background", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:39
|
43 |
+
"Navigation" => array( null, __("Navigation", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:48
|
44 |
+
"Arrows background" => array( null, __("Arrows background", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:53
|
45 |
+
"Arrows color" => array( null, __("Arrows color", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:60
|
46 |
+
"Color" => array( null, __("Color", "forminator" ), ), // src/form/components/appearance/colors/calendar-basics.js:86
|
47 |
"Default" => array( null, __("Default", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:22
|
48 |
"Table head color" => array( null, __("Table head color", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:27
|
49 |
+
"Table cell border" => array( null, __("Table cell border", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:35
|
50 |
+
"Table cell BG" => array( null, __("Table cell BG", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:43
|
51 |
+
"Table cell color" => array( null, __("Table cell color", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:50
|
52 |
+
"Hover" => array( null, __("Hover", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:58
|
53 |
"Active" => array( null, __("Active", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:86
|
54 |
+
"Current" => array( null, __("Current", "forminator" ), ), // src/form/components/appearance/colors/calendar-table.js:114
|
55 |
"Border color" => array( null, __("Border color", "forminator" ), ), // src/form/components/appearance/colors/dropdown-search.js:23
|
56 |
+
"Background color" => array( null, __("Background color", "forminator" ), ), // src/form/components/appearance/colors/dropdown-search.js:31
|
57 |
+
"Text color" => array( null, __("Text color", "forminator" ), ), // src/form/components/appearance/colors/dropdown-search.js:38
|
58 |
"Container border" => array( null, __("Container border", "forminator" ), ), // src/form/components/appearance/colors/dropdown.js:33
|
59 |
+
"Container BG" => array( null, __("Container BG", "forminator" ), ), // src/form/components/appearance/colors/dropdown.js:41
|
60 |
+
"Option color" => array( null, __("Option color", "forminator" ), ), // src/form/components/appearance/colors/dropdown.js:48
|
61 |
+
"Option background" => array( null, __("Option background", "forminator" ), ), // src/form/components/appearance/colors/dropdown.js:60
|
62 |
+
"Selected" => array( null, __("Selected", "forminator" ), ), // src/form/components/appearance/colors/dropdown.js:72
|
63 |
"Label" => array( null, __("Label", "forminator" ), ), // src/form/components/appearance/colors/fields-basics.js:18
|
64 |
"Required asterisk" => array( null, __("Required asterisk", "forminator" ), ), // src/form/components/appearance/colors/fields-basics.js:24
|
65 |
"Description" => array( null, __("Description", "forminator" ), ), // src/form/components/appearance/colors/fields-basics.js:30
|
66 |
"Error message BG" => array( null, __("Error message BG", "forminator" ), ), // src/form/components/appearance/colors/fields-basics.js:37
|
67 |
+
"Error message color" => array( null, __("Error message color", "forminator" ), ), // src/form/components/appearance/colors/fields-basics.js:46
|
68 |
+
"Global error color" => array( null, __("Global error color", "forminator" ), ), // src/form/components/appearance/colors/fields-basics.js:47
|
69 |
+
"This color will be used when fields throw an error as text color, border color, etc." => array( null, __("This color will be used when fields throw an error as text color, border color, etc.", "forminator" ), ), // src/form/components/appearance/colors/fields-basics.js:50
|
70 |
"Icon color" => array( null, __("Icon color", "forminator" ), ), // src/form/components/appearance/colors/file-delete.js:36
|
71 |
"Focus" => array( null, __("Focus", "forminator" ), ), // src/form/components/appearance/colors/file-delete.js:60
|
72 |
"Suffix color" => array( null, __("Suffix color", "forminator" ), ), // src/form/components/appearance/colors/inputs-extra.js:48
|
73 |
"Only Stripe card icon will show this color variation." => array( null, __("Only Stripe card icon will show this color variation.", "forminator" ), ), // src/form/components/appearance/colors/inputs-extra.js:96
|
74 |
+
"Placeholder" => array( null, __("Placeholder", "forminator" ), ), // src/form/components/appearance/colors/inputs.js:44
|
75 |
+
"Error" => array( null, __("Error", "forminator" ), ), // src/form/components/appearance/colors/inputs.js:103
|
76 |
"Option border" => array( null, __("Option border", "forminator" ), ), // src/form/components/appearance/colors/multi-select.js:32
|
77 |
"Label color" => array( null, __("Label color", "forminator" ), ), // src/form/components/appearance/colors/pagination-back.js:33
|
78 |
"Progress bar BG" => array( null, __("Progress bar BG", "forminator" ), ), // src/form/components/appearance/colors/pagination-progress.js:24
|
82 |
"Page number color" => array( null, __("Page number color", "forminator" ), ), // src/form/components/appearance/colors/pagination-steps.js:95
|
83 |
"Current state colors" => array( null, __("Current state colors", "forminator" ), ), // src/form/components/appearance/colors/pagination-steps.js:106
|
84 |
"Footer border color" => array( null, __("Footer border color", "forminator" ), ), // src/form/components/appearance/colors/pagination.js:15
|
85 |
+
"Checked" => array( null, __("Checked", "forminator" ), ), // src/form/components/appearance/colors/radio.js:48
|
86 |
"Title color" => array( null, __("Title color", "forminator" ), ), // src/form/components/appearance/colors/section.js:15
|
87 |
"Subtitle color" => array( null, __("Subtitle color", "forminator" ), ), // src/form/components/appearance/colors/section.js:19
|
88 |
"Custom CSS" => array( null, __("Custom CSS", "forminator" ), ), // src/form/components/appearance/custom-css.js:16
|
128 |
"Solid" => array( null, __("Solid", "forminator" ), ), // src/form/components/appearance/form-container/border-custom.js:44
|
129 |
"Dashed" => array( null, __("Dashed", "forminator" ), ), // src/form/components/appearance/form-container/border-custom.js:47
|
130 |
"Dotted" => array( null, __("Dotted", "forminator" ), ), // src/form/components/appearance/form-container/border-custom.js:50
|
131 |
+
"Note: Set the color of the border in the Colors settings area above." => array( null, __("Note: Set the color of the border in the Colors settings area above.", "forminator" ), ), // src/form/components/appearance/form-container/border-custom.js:58
|
132 |
"Top" => array( null, __("Top", "forminator" ), ), // src/form/components/appearance/form-container/padding-custom.js:20
|
133 |
"Bottom" => array( null, __("Bottom", "forminator" ), ), // src/form/components/appearance/form-container/padding-custom.js:29
|
134 |
"Left" => array( null, __("Left", "forminator" ), ), // src/form/components/appearance/form-container/padding-custom.js:38
|
146 |
"Show" => array( null, __("Show", "forminator" ), ), // src/form/components/appearance/pagination.js:63
|
147 |
"Progress Bar" => array( null, __("Progress Bar", "forminator" ), ), // src/form/components/appearance/pagination.js:72
|
148 |
"Steps" => array( null, __("Steps", "forminator" ), ), // src/form/components/appearance/pagination.js:78
|
149 |
+
"Email Notifications" => array( null, __("Email Notifications", "forminator" ), ), // src/form/components/behaviour.js:95
|
150 |
"Form does not have fields that can be autofilled." => array( null, __("Form does not have fields that can be autofilled.", "forminator" ), ), // src/form/components/behaviour/autofill.js:61
|
151 |
"Autofill" => array( null, __("Autofill", "forminator" ), ), // src/form/components/behaviour/autofill.js:159
|
152 |
"If the user filling out the form is logged in, we can auto-fill fields with any available data." => array( null, __("If the user filling out the form is logged in, we can auto-fill fields with any available data.", "forminator" ), ), // src/form/components/behaviour/autofill.js:161
|
157 |
"No" => array( null, __("No", "forminator" ), ), // src/form/components/behaviour/autofill.js:234
|
158 |
"Yes" => array( null, __("Yes", "forminator" ), ), // src/form/components/behaviour/autofill.js:237
|
159 |
"Lifespan" => array( null, __("Lifespan", "forminator" ), ), // src/form/components/behaviour/lifespan.js:17
|
160 |
+
"By default this form will always be available for submissions. However you can lock down if need be." => array( null, __("By default this form will always be available for submissions. However you can lock down if need be.", "forminator" ), ), // src/form/components/behaviour/lifespan.js:20
|
161 |
"Expiry" => array( null, __("Expiry", "forminator" ), ), // src/form/components/behaviour/lifespan.js:31
|
162 |
"Date" => array( null, __("Date", "forminator" ), ), // src/form/components/behaviour/lifespan.js:46
|
163 |
"20 April 2018" => array( null, __("20 April 2018", "forminator" ), ), // src/form/components/behaviour/lifespan.js:49
|
175 |
"Enabling this feature will load the form via AJAX after the page has loaded up, effectively speeding up your page load time. This method can also (in most cases) avoid page caching issues with your form." => array( null, __("Enabling this feature will load the form via AJAX after the page has loaded up, effectively speeding up your page load time. This method can also (in most cases) avoid page caching issues with your form.", "forminator" ), ), // src/form/components/behaviour/render.js:23
|
176 |
"Prevent page caching on form pages" => array( null, __("Prevent page caching on form pages", "forminator" ), ), // src/form/components/behaviour/render.js:34
|
177 |
"Page caching plugins serve a static HTML version of the page which can cause issues to your dynamic forms. By enabling this, we'll use {{strong}}DONOTCACHEPAGE{{/strong}} constant to prevent pages with this form on it from being cached." => array( null, __("Page caching plugins serve a static HTML version of the page which can cause issues to your dynamic forms. By enabling this, we'll use {{strong}}DONOTCACHEPAGE{{/strong}} constant to prevent pages with this form on it from being cached.", "forminator" ), ), // src/form/components/behaviour/render.js:35
|
178 |
+
"Security" => array( null, __("Security", "forminator" ), ), // src/form/components/behaviour/security.js:16
|
179 |
+
"Added layers of security to prevent spam submissions." => array( null, __("Added layers of security to prevent spam submissions.", "forminator" ), ), // src/form/components/behaviour/security.js:18
|
180 |
+
"Enable Honeypot protection" => array( null, __("Enable Honeypot protection", "forminator" ), ), // src/form/components/behaviour/security.js:26
|
181 |
+
"Enabling this feature tricks spam bots by giving them a hidden challenge only bots will see. If the bot tries the challenge we know it's not a human and prevent the form being submitted." => array( null, __("Enabling this feature tricks spam bots by giving them a hidden challenge only bots will see. If the bot tries the challenge we know it's not a human and prevent the form being submitted.", "forminator" ), ), // src/form/components/behaviour/security.js:28
|
182 |
+
"Enable logged in submission only" => array( null, __("Enable logged in submission only", "forminator" ), ), // src/form/components/behaviour/security.js:37
|
183 |
+
"Lock down your form submissions to registered users only." => array( null, __("Lock down your form submissions to registered users only.", "forminator" ), ), // src/form/components/behaviour/security.js:39
|
184 |
+
"Submission Behaviour" => array( null, __("Submission Behaviour", "forminator" ), ), // src/form/components/behaviour/submission.js:27
|
185 |
+
"Choose what you want to happen after your visitor has successfully submitted this form." => array( null, __("Choose what you want to happen after your visitor has successfully submitted this form.", "forminator" ), ), // src/form/components/behaviour/submission.js:30
|
186 |
+
"After submission" => array( null, __("After submission", "forminator" ), ), // src/form/components/behaviour/submission.js:42
|
187 |
+
"Choose what happens after a user successfully submits your form." => array( null, __("Choose what happens after a user successfully submits your form.", "forminator" ), ), // src/form/components/behaviour/submission.js:44
|
188 |
+
"Inline Message" => array( null, __("Inline Message", "forminator" ), ), // src/form/components/behaviour/submission.js:51
|
189 |
+
"Display a success message after form submitted." => array( null, __("Display a success message after form submitted.", "forminator" ), ), // src/form/components/behaviour/submission.js:58
|
190 |
+
"Auto-close success message after" => array( null, __("Auto-close success message after", "forminator" ), ), // src/form/components/behaviour/submission.js:113
|
191 |
+
"E.g. 5" => array( null, __("E.g. 5", "forminator" ), ), // src/form/components/behaviour/submission.js:120
|
192 |
+
"seconds." => array( null, __("seconds.", "forminator" ), ), // src/form/components/behaviour/submission.js:129
|
193 |
+
"Redirect user to a URL" => array( null, __("Redirect user to a URL", "forminator" ), ), // src/form/components/behaviour/submission.js:139
|
194 |
+
"Redirect URL" => array( null, __("Redirect URL", "forminator" ), ), // src/form/components/behaviour/submission.js:144
|
195 |
+
"https://www.mywebsite.com" => array( null, __("https://www.mywebsite.com", "forminator" ), ), // src/form/components/behaviour/submission.js:145
|
196 |
+
"Provide the absolute URL of the page you want to redirect users to after submitting the login form. For example, to redirect users to the WordPress admin, use the URL {{strong}}http://www.website.com/wp-admin/{{/strong}}." => array( null, __("Provide the absolute URL of the page you want to redirect users to after submitting the login form. For example, to redirect users to the WordPress admin, use the URL {{strong}}http://www.website.com/wp-admin/{{/strong}}.", "forminator" ), ), // src/form/components/behaviour/submission.js:148
|
197 |
+
"URL Redirect" => array( null, __("URL Redirect", "forminator" ), ), // src/form/components/behaviour/submission.js:158
|
|
|
|
|
|
|
|
|
198 |
"Redirection Option" => array( null, __("Redirection Option", "forminator" ), ), // src/form/components/behaviour/submission.js:167
|
199 |
+
"Redirect on the same tab" => array( null, __("Redirect on the same tab", "forminator" ), ), // src/form/components/behaviour/submission.js:171
|
200 |
+
"Redirect on new tab and show thank you message on form page" => array( null, __("Redirect on new tab and show thank you message on form page", "forminator" ), ), // src/form/components/behaviour/submission.js:172
|
201 |
+
"Redirect on new tab and hide form on the form page" => array( null, __("Redirect on new tab and hide form on the form page", "forminator" ), ), // src/form/components/behaviour/submission.js:173
|
202 |
+
"Hide form" => array( null, __("Hide form", "forminator" ), ), // src/form/components/behaviour/submission.js:183
|
203 |
+
"Submit Message" => array( null, __("Submit Message", "forminator" ), ), // src/form/components/behaviour/submission.js:195
|
204 |
+
"Method" => array( null, __("Method", "forminator" ), ), // src/form/components/behaviour/submission.js:237
|
205 |
+
"Choose whether you want to use AJAX to send this form without reloading the page, or use the more traditional method of reloading the page." => array( null, __("Choose whether you want to use AJAX to send this form without reloading the page, or use the more traditional method of reloading the page.", "forminator" ), ), // src/form/components/behaviour/submission.js:238
|
206 |
+
"Ajax" => array( null, __("Ajax", "forminator" ), ), // src/form/components/behaviour/submission.js:246
|
207 |
+
"Ajax method, when used with the Stripe field, will hide your form after the successful submission and show your inline success message only. The form will be available again when the page is reloaded." => array( null, __("Ajax method, when used with the Stripe field, will hide your form after the successful submission and show your inline success message only. The form will be available again when the page is reloaded.", "forminator" ), ), // src/form/components/behaviour/submission.js:251
|
208 |
+
"Page Reload" => array( null, __("Page Reload", "forminator" ), ), // src/form/components/behaviour/submission.js:263
|
209 |
+
"Validation" => array( null, __("Validation", "forminator" ), ), // src/form/components/behaviour/submission.js:270
|
210 |
+
"For fields that you've chosen to validate, choose how you want the validation to behave. On submission will run validation checks when the user submits the form using Ajax (recommended). The Live method will check fields at the same time as the user fills them out. Server side does the validation using PHP and returns any error messages after a page reload." => array( null, __("For fields that you've chosen to validate, choose how you want the validation to behave. On submission will run validation checks when the user submits the form using Ajax (recommended). The Live method will check fields at the same time as the user fills them out. Server side does the validation using PHP and returns any error messages after a page reload.", "forminator" ), ), // src/form/components/behaviour/submission.js:271
|
211 |
+
"On Submit" => array( null, __("On Submit", "forminator" ), ), // src/form/components/behaviour/submission.js:281
|
212 |
+
"Server Side" => array( null, __("Server Side", "forminator" ), ), // src/form/components/behaviour/submission.js:282
|
213 |
+
"Enable inline validation (as user types)" => array( null, __("Enable inline validation (as user types)", "forminator" ), ), // src/form/components/behaviour/submission.js:286
|
214 |
+
"Choose whether you want to show a loader on your form until it is submitted. We highly recommend using this on long forms or forms with payment field since they may take a few seconds to submit." => array( null, __("Choose whether you want to show a loader on your form until it is submitted. We highly recommend using this on long forms or forms with payment field since they may take a few seconds to submit.", "forminator" ), ), // src/form/components/behaviour/submission.js:296
|
215 |
+
"Show Loader" => array( null, __("Show Loader", "forminator" ), ), // src/form/components/behaviour/submission.js:306
|
216 |
+
"E.g. Submitting..." => array( null, __("E.g. Submitting...", "forminator" ), ), // src/form/components/behaviour/submission.js:311
|
217 |
+
"Choose the text to show on the right of loading icon" => array( null, __("Choose the text to show on the right of loading icon", "forminator" ), ), // src/form/components/behaviour/submission.js:314
|
218 |
+
"null" => array( null, __("null", "forminator" ), ), // src/form/components/builder/field.js:638
|
219 |
+
"more condition(s)" => array( null, __("more condition(s)", "forminator" ), ), // src/form/components/builder/field.js:685
|
220 |
+
"if" => array( null, __("if", "forminator" ), ), // src/form/components/builder/field.js:690
|
221 |
+
"Field options" => array( null, __("Field options", "forminator" ), ), // src/form/components/builder/field.js:829
|
222 |
+
"Edit Field" => array( null, __("Edit Field", "forminator" ), ), // src/form/components/builder/field.js:840
|
223 |
+
"Duplicate" => array( null, __("Duplicate", "forminator" ), ), // src/form/components/builder/field.js:848
|
224 |
+
"Delete" => array( null, __("Delete", "forminator" ), ), // src/form/components/builder/field.js:856
|
225 |
"Insert Fields" => array( null, __("Insert Fields", "forminator" ), ), // src/form/components/builder/insert-fields.js:17
|
226 |
" Insert Fields" => array( null, __(" Insert Fields", "forminator" ), ), // src/form/components/builder/insert-fields.js:43
|
227 |
"A form without fields isn’t going to be very useful… Add your first field above!" => array( null, __("A form without fields isn’t going to be very useful… Add your first field above!", "forminator" ), ), // src/form/components/builder/insert-fields.js:58
|
279 |
"0.9" => array( null, __("0.9", "forminator" ), ), // src/form/components/fields/captcha.js:199
|
280 |
"1.0" => array( null, __("1.0", "forminator" ), ), // src/form/components/fields/captcha.js:200
|
281 |
"Language" => array( null, __("Language", "forminator" ), ), // src/form/components/fields/captcha.js:219
|
282 |
+
"By default, we will use the language chosen in the global reCAPTCHA settings. However, you can choose a different language for this reCAPTCHA." => array( null, __("By default, we will use the language chosen in the global reCAPTCHA settings. However, you can choose a different language for this reCAPTCHA.", "forminator" ), ), // src/form/components/fields/captcha.js:224
|
283 |
"Automatic" => array( null, __("Automatic", "forminator" ), ), // src/form/components/fields/captcha.js:237
|
284 |
"Error Message" => array( null, __("Error Message", "forminator" ), ), // src/form/components/fields/captcha.js:255
|
285 |
"Choose the error message you want to display on your form when reCAPTCHA verification fails." => array( null, __("Choose the error message you want to display on your form when reCAPTCHA verification fails.", "forminator" ), ), // src/form/components/fields/captcha.js:260
|
365 |
"Previous Button" => array( null, __("Previous Button", "forminator" ), ), // src/form/components/fields/pagination.js:49
|
366 |
"Enter text" => array( null, __("Enter text", "forminator" ), ), // src/form/components/fields/pagination.js:50
|
367 |
"Next Button" => array( null, __("Next Button", "forminator" ), ), // src/form/components/fields/pagination.js:55
|
368 |
+
"Confirm Password" => array( null, __("Confirm Password", "forminator" ), ), // src/form/components/fields/password.js:69
|
369 |
+
"Confirm password" => array( null, __("Confirm password", "forminator" ), ), // src/form/components/fields/password.js:80
|
370 |
+
"Confirm new password" => array( null, __("Confirm new password", "forminator" ), ), // src/form/components/fields/password.js:89
|
371 |
+
"Minimum password strength" => array( null, __("Minimum password strength", "forminator" ), ), // src/form/components/fields/password.js:122
|
372 |
+
"Choose a minimum password strength required to force your users to sign up with a password stronger than the minimum requirement." => array( null, __("Choose a minimum password strength required to force your users to sign up with a password stronger than the minimum requirement.", "forminator" ), ), // src/form/components/fields/password.js:123
|
373 |
+
"Short" => array( null, __("Short", "forminator" ), ), // src/form/components/fields/password.js:138
|
374 |
+
"Bad" => array( null, __("Bad", "forminator" ), ), // src/form/components/fields/password.js:139
|
375 |
+
"Good" => array( null, __("Good", "forminator" ), ), // src/form/components/fields/password.js:140
|
376 |
+
"Strong" => array( null, __("Strong", "forminator" ), ), // src/form/components/fields/password.js:141
|
377 |
+
"This is displayed when the user's password is weaker than the minimum requirement." => array( null, __("This is displayed when the user's password is weaker than the minimum requirement.", "forminator" ), ), // src/form/components/fields/password.js:153
|
378 |
+
"Validate" => array( null, __("Validate", "forminator" ), ), // src/form/components/fields/password.js:168
|
379 |
+
"Make sure the user has filled out this field correctly and warn them when they haven't." => array( null, __("Make sure the user has filled out this field correctly and warn them when they haven't.", "forminator" ), ), // src/form/components/fields/password.js:170
|
380 |
+
"Validate Field" => array( null, __("Validate Field", "forminator" ), ), // src/form/components/fields/password.js:188
|
381 |
+
"Validation message" => array( null, __("Validation message", "forminator" ), ), // src/form/components/fields/password.js:194
|
382 |
+
"Enter validation message" => array( null, __("Enter validation message", "forminator" ), ), // src/form/components/fields/password.js:196
|
383 |
"In %s" => array( null, __("In %s", "forminator" ), ), // src/form/components/fields/paypal.js:49
|
384 |
"You have not connected your PayPal account with Forminator. Connect your PayPal account {{link}}here{{/link}} and then come back to configure this field." => array( null, __("You have not connected your PayPal account with Forminator. Connect your PayPal account {{link}}here{{/link}} and then come back to configure this field.", "forminator" ), ), // src/form/components/fields/paypal.js:69
|
385 |
"Mode of payment" => array( null, __("Mode of payment", "forminator" ), ), // src/form/components/fields/paypal.js:88
|
428 |
"Elo" => array( null, __("Elo", "forminator" ), ), // src/form/components/fields/paypal.js:491
|
429 |
"Hiper" => array( null, __("Hiper", "forminator" ), ), // src/form/components/fields/paypal.js:498
|
430 |
"Debug Mode" => array( null, __("Debug Mode", "forminator" ), ), // src/form/components/fields/paypal.js:509
|
431 |
+
"PayPal debug mode helps troubleshoot any issues. However, it's recommended to disable this in production as it causes a significant increase in the script size and performance decrease." => array( null, __("PayPal debug mode helps troubleshoot any issues. However, it's recommended to disable this in production as it causes a significant increase in the script size and performance decrease.", "forminator" ), ), // src/form/components/fields/paypal.js:516
|
432 |
"Disable" => array( null, __("Disable", "forminator" ), ), // src/form/components/fields/paypal.js:531
|
433 |
"Enable" => array( null, __("Enable", "forminator" ), ), // src/form/components/fields/paypal.js:532
|
|
|
|
|
|
|
434 |
"Validation Type" => array( null, __("Validation Type", "forminator" ), ), // src/form/components/fields/phone.js:61
|
435 |
"National" => array( null, __("National", "forminator" ), ), // src/form/components/fields/phone.js:64
|
436 |
"International" => array( null, __("International", "forminator" ), ), // src/form/components/fields/phone.js:65
|
438 |
"Limit to:" => array( null, __("Limit to:", "forminator" ), ), // src/form/components/fields/phone.js:73
|
439 |
"10" => array( null, __("10", "forminator" ), ), // src/form/components/fields/phone.js:75
|
440 |
"Select country" => array( null, __("Select country", "forminator" ), ), // src/form/components/fields/phone.js:84
|
|
|
|
|
441 |
"Title" => array( null, __("Title", "forminator" ), ), // src/form/components/fields/postdata.js:24
|
442 |
"Content" => array( null, __("Content", "forminator" ), ), // src/form/components/fields/postdata.js:29
|
443 |
"Excerpt" => array( null, __("Excerpt", "forminator" ), ), // src/form/components/fields/postdata.js:34
|
456 |
"Pending Review" => array( null, __("Pending Review", "forminator" ), ), // src/form/components/fields/postdata.js:293
|
457 |
"Published" => array( null, __("Published", "forminator" ), ), // src/form/components/fields/postdata.js:296
|
458 |
"Default author" => array( null, __("Default author", "forminator" ), ), // src/form/components/fields/postdata.js:309
|
459 |
+
"By default we'll assign posts to users if they're logged in, and fall back to the user specified below if you're allowing visitors to make posts. You can also override this to always assign posts to a specified user." => array( null, __("By default we'll assign posts to users if they're logged in, and fall back to the user specified below if you're allowing visitors to make posts. You can also override this to always assign posts to a specified user.", "forminator" ), ), // src/form/components/fields/postdata.js:312
|
460 |
"Always assign posts to this user" => array( null, __("Always assign posts to this user", "forminator" ), ), // src/form/components/fields/postdata.js:341
|
461 |
"Taxonomies limits" => array( null, __("Taxonomies limits", "forminator" ), ), // src/form/components/fields/postdata.js:356
|
462 |
"Choose whether to allow single or multiple categories or tags on this post." => array( null, __("Choose whether to allow single or multiple categories or tags on this post.", "forminator" ), ), // src/form/components/fields/postdata.js:359
|
473 |
"Choose whether to allow this field to be used in calculations or not. The value used in calculations is the same as the input value of this field." => array( null, __("Choose whether to allow this field to be used in calculations or not. The value used in calculations is the same as the input value of this field.", "forminator" ), ), // src/form/components/fields/singlevalue.js:209
|
474 |
"Credit / Debit Card" => array( null, __("Credit / Debit Card", "forminator" ), ), // src/form/components/fields/stripe.js:115
|
475 |
"Choose your preferred language for the Stripe field. This will affect the placeholders language, and the card validation errors returned by the Stripe." => array( null, __("Choose your preferred language for the Stripe field. This will affect the placeholders language, and the card validation errors returned by the Stripe.", "forminator" ), ), // src/form/components/fields/stripe.js:140
|
476 |
+
"Auto" => array( null, __("Auto", "forminator" ), ), // src/form/components/fields/stripe.js:146
|
477 |
+
"English (en)" => array( null, __("English (en)", "forminator" ), ), // src/form/components/fields/stripe.js:147
|
478 |
+
"Simplified Chinese (zh)" => array( null, __("Simplified Chinese (zh)", "forminator" ), ), // src/form/components/fields/stripe.js:148
|
479 |
+
"Danish (da)" => array( null, __("Danish (da)", "forminator" ), ), // src/form/components/fields/stripe.js:149
|
480 |
+
"Dutch (nl)" => array( null, __("Dutch (nl)", "forminator" ), ), // src/form/components/fields/stripe.js:150
|
481 |
+
"Finnish (fi)" => array( null, __("Finnish (fi)", "forminator" ), ), // src/form/components/fields/stripe.js:151
|
482 |
+
"French (fr)" => array( null, __("French (fr)", "forminator" ), ), // src/form/components/fields/stripe.js:152
|
483 |
+
"German (de)" => array( null, __("German (de)", "forminator" ), ), // src/form/components/fields/stripe.js:153
|
484 |
+
"Italian (it)" => array( null, __("Italian (it)", "forminator" ), ), // src/form/components/fields/stripe.js:154
|
485 |
+
"Japanese (ja)" => array( null, __("Japanese (ja)", "forminator" ), ), // src/form/components/fields/stripe.js:155
|
486 |
+
"Norwegian (no)" => array( null, __("Norwegian (no)", "forminator" ), ), // src/form/components/fields/stripe.js:156
|
487 |
+
"Spanish (es)" => array( null, __("Spanish (es)", "forminator" ), ), // src/form/components/fields/stripe.js:157
|
488 |
+
"Swedish (sv)" => array( null, __("Swedish (sv)", "forminator" ), ), // src/form/components/fields/stripe.js:158
|
489 |
+
"Card icon" => array( null, __("Card icon", "forminator" ), ), // src/form/components/fields/stripe.js:169
|
490 |
+
"Choose whether you want to show the card icon on the Stripe field." => array( null, __("Choose whether you want to show the card icon on the Stripe field.", "forminator" ), ), // src/form/components/fields/stripe.js:170
|
491 |
+
"Postal code" => array( null, __("Postal code", "forminator" ), ), // src/form/components/fields/stripe.js:187
|
492 |
+
"Choose whether you want to collect the postal code on the Stripe field." => array( null, __("Choose whether you want to collect the postal code on the Stripe field.", "forminator" ), ), // src/form/components/fields/stripe.js:188
|
493 |
+
"Prefill (optional)" => array( null, __("Prefill (optional)", "forminator" ), ), // src/form/components/fields/stripe.js:208
|
494 |
+
"If you are already collecting ZIP code on your form, you can pre-fill it on the Stripe field." => array( null, __("If you are already collecting ZIP code on your form, you can pre-fill it on the Stripe field.", "forminator" ), ), // src/form/components/fields/stripe.js:230
|
495 |
+
"You have not connected your Stripe account with Forminator. Connect your Stripe account {{link}}here{{/link}} and then come back to configure this field." => array( null, __("You have not connected your Stripe account with Forminator. Connect your Stripe account {{link}}here{{/link}} and then come back to configure this field.", "forminator" ), ), // src/form/components/fields/stripe.js:255
|
496 |
+
"We recommend using test mode to ensure the payments are working as expected and when you are ready to start collecting live payments, switch to Live payments mode." => array( null, __("We recommend using test mode to ensure the payments are working as expected and when you are ready to start collecting live payments, switch to Live payments mode.", "forminator" ), ), // src/form/components/fields/stripe.js:277
|
497 |
+
"Test" => array( null, __("Test", "forminator" ), ), // src/form/components/fields/stripe.js:283
|
498 |
+
"It's recommended to charge in your customers' currency to drive more sales and avoid foreign exchange fee to your customers. Read more about Stripe’s currency conversions {{link}}here{{/link}}." => array( null, __("It's recommended to charge in your customers' currency to drive more sales and avoid foreign exchange fee to your customers. Read more about Stripe’s currency conversions {{link}}here{{/link}}.", "forminator" ), ), // src/form/components/fields/stripe.js:292
|
499 |
+
"Minimum amount required to process Stripe payments is equivalent to {{strong}}0.5 USD{{/strong}}." => array( null, __("Minimum amount required to process Stripe payments is equivalent to {{strong}}0.5 USD{{/strong}}.", "forminator" ), ), // src/form/components/fields/stripe.js:347
|
500 |
+
"Payment Receipt" => array( null, __("Payment Receipt", "forminator" ), ), // src/form/components/fields/stripe.js:417
|
501 |
+
"Choose whether you want Stripe to email a receipt to your customers on successful payment. Note that Stripe sends the email receipt only for live payments. {{link}}Customize email template{{/link}}." => array( null, __("Choose whether you want Stripe to email a receipt to your customers on successful payment. Note that Stripe sends the email receipt only for live payments. {{link}}Customize email template{{/link}}.", "forminator" ), ), // src/form/components/fields/stripe.js:425
|
502 |
+
"Email address" => array( null, __("Email address", "forminator" ), ), // src/form/components/fields/stripe.js:454
|
503 |
+
"E.g. john@doe.com" => array( null, __("E.g. john@doe.com", "forminator" ), ), // src/form/components/fields/stripe.js:456
|
504 |
+
"Select an email field" => array( null, __("Select an email field", "forminator" ), ), // src/form/components/fields/stripe.js:458
|
505 |
+
"Payment Details (optional)" => array( null, __("Payment Details (optional)", "forminator" ), ), // src/form/components/fields/stripe.js:483
|
506 |
+
"You can add a statement decipher and a description to help you and your customers recognizing the transactions made on this form." => array( null, __("You can add a statement decipher and a description to help you and your customers recognizing the transactions made on this form.", "forminator" ), ), // src/form/components/fields/stripe.js:491
|
507 |
+
"Statement decipher" => array( null, __("Statement decipher", "forminator" ), ), // src/form/components/fields/stripe.js:501
|
508 |
+
"E.g. Company Name" => array( null, __("E.g. Company Name", "forminator" ), ), // src/form/components/fields/stripe.js:504
|
509 |
+
"this is the business name your customers will see on their card statement." => array( null, __("this is the business name your customers will see on their card statement.", "forminator" ), ), // src/form/components/fields/stripe.js:507
|
510 |
+
"Up to 22 characters only" => array( null, __("Up to 22 characters only", "forminator" ), ), // src/form/components/fields/stripe.js:512
|
511 |
+
"Payment description" => array( null, __("Payment description", "forminator" ), ), // src/form/components/fields/stripe.js:519
|
512 |
+
"Enter your payment description here" => array( null, __("Enter your payment description here", "forminator" ), ), // src/form/components/fields/stripe.js:520
|
513 |
+
"This appears on your Stripe account and on the payment receipt sent to your customers." => array( null, __("This appears on your Stripe account and on the payment receipt sent to your customers.", "forminator" ), ), // src/form/components/fields/stripe.js:523
|
514 |
+
"Card Validation" => array( null, __("Card Validation", "forminator" ), ), // src/form/components/fields/stripe.js:533
|
515 |
+
"Note: Stripe field automatically validates the card as the user fills the card details regardless of the validation behaviour set on the Behaviours tab." => array( null, __("Note: Stripe field automatically validates the card as the user fills the card details regardless of the validation behaviour set on the Behaviours tab.", "forminator" ), ), // src/form/components/fields/stripe.js:539
|
516 |
+
"Billing Details" => array( null, __("Billing Details", "forminator" ), ), // src/form/components/fields/stripe.js:551
|
517 |
+
"If you are collection billing details on your forms, you can send that data to Stripe. The billing details will appear on your Stripe dashboard for each payment." => array( null, __("If you are collection billing details on your forms, you can send that data to Stripe. The billing details will appear on your Stripe dashboard for each payment.", "forminator" ), ), // src/form/components/fields/stripe.js:559
|
518 |
+
"Customer name (optional)" => array( null, __("Customer name (optional)", "forminator" ), ), // src/form/components/fields/stripe.js:583
|
519 |
+
"Select a name field" => array( null, __("Select a name field", "forminator" ), ), // src/form/components/fields/stripe.js:585
|
520 |
+
"Customer email address (optional)" => array( null, __("Customer email address (optional)", "forminator" ), ), // src/form/components/fields/stripe.js:600
|
521 |
+
"Select an name field" => array( null, __("Select an name field", "forminator" ), ), // src/form/components/fields/stripe.js:602
|
522 |
+
"Billing address (optional)" => array( null, __("Billing address (optional)", "forminator" ), ), // src/form/components/fields/stripe.js:617
|
523 |
+
"Select an address field" => array( null, __("Select an address field", "forminator" ), ), // src/form/components/fields/stripe.js:619
|
524 |
+
"Meta Data" => array( null, __("Meta Data", "forminator" ), ), // src/form/components/fields/stripe.js:643
|
525 |
+
"You can send custom meta data to Stripe. This would appear under the MetaData section of every payment. A maximum of 20 meta keys can be sent. The key name must be 20 characters or less, and the mapped data will be truncated to 500 characters as Stripe's requirements." => array( null, __("You can send custom meta data to Stripe. This would appear under the MetaData section of every payment. A maximum of 20 meta keys can be sent. The key name must be 20 characters or less, and the mapped data will be truncated to 500 characters as Stripe's requirements.", "forminator" ), ), // src/form/components/fields/stripe.js:651
|
526 |
+
"MetaData" => array( null, __("MetaData", "forminator" ), ), // src/form/components/fields/stripe.js:692
|
527 |
+
"Additional CSS Classes" => array( null, __("Additional CSS Classes", "forminator" ), ), // src/form/components/fields/stripe.js:708
|
528 |
+
"Stripe automatically adds classes to the container DOM element based on the field state. However, you can customize them here. {{link}}Read more{{/link}}" => array( null, __("Stripe automatically adds classes to the container DOM element based on the field state. However, you can customize them here. {{link}}Read more{{/link}}", "forminator" ), ), // src/form/components/fields/stripe.js:711
|
529 |
+
"Base class" => array( null, __("Base class", "forminator" ), ), // src/form/components/fields/stripe.js:727
|
530 |
+
"Complete" => array( null, __("Complete", "forminator" ), ), // src/form/components/fields/stripe.js:735
|
531 |
+
"Empty" => array( null, __("Empty", "forminator" ), ), // src/form/components/fields/stripe.js:743
|
532 |
+
"Focused" => array( null, __("Focused", "forminator" ), ), // src/form/components/fields/stripe.js:751
|
533 |
+
"Invalid" => array( null, __("Invalid", "forminator" ), ), // src/form/components/fields/stripe.js:759
|
534 |
+
"Autofilled (Chrome and Safari only)" => array( null, __("Autofilled (Chrome and Safari only)", "forminator" ), ), // src/form/components/fields/stripe.js:767
|
535 |
"Max characters" => array( null, __("Max characters", "forminator" ), ), // src/form/components/fields/text.js:80
|
536 |
"By default the user can enter as many characters as they want. Use this setting to limit the number of characters the user can enter. Leave field blank to allow unlimited characters." => array( null, __("By default the user can enter as many characters as they want. Use this setting to limit the number of characters the user can enter. Leave field blank to allow unlimited characters.", "forminator" ), ), // src/form/components/fields/text.js:81
|
537 |
"Character limit" => array( null, __("Character limit", "forminator" ), ), // src/form/components/fields/text.js:89
|
538 |
"E.g. 100" => array( null, __("E.g. 100", "forminator" ), ), // src/form/components/fields/text.js:96
|
539 |
"Characters" => array( null, __("Characters", "forminator" ), ), // src/form/components/fields/text.js:106
|
540 |
"Words" => array( null, __("Words", "forminator" ), ), // src/form/components/fields/text.js:107
|
541 |
+
"Rich-Text editor" => array( null, __("Rich-Text editor", "forminator" ), ), // src/form/components/fields/textarea.js:80
|
542 |
+
"Enable TinyMCE editor to allow the formatted text." => array( null, __("Enable TinyMCE editor to allow the formatted text.", "forminator" ), ), // src/form/components/fields/textarea.js:81
|
543 |
+
"Default height" => array( null, __("Default height", "forminator" ), ), // src/form/components/fields/textarea.js:146
|
544 |
+
"Choose the default minimum height of your textarea field." => array( null, __("Choose the default minimum height of your textarea field.", "forminator" ), ), // src/form/components/fields/textarea.js:150
|
545 |
+
"Note: The query parameter's value passed in URL should match with the selected time format." => array( null, __("Note: The query parameter's value passed in URL should match with the selected time format.", "forminator" ), ), // src/form/components/fields/time.js:36
|
546 |
"Number inputs" => array( null, __("Number inputs", "forminator" ), ), // src/form/components/fields/time.js:56
|
547 |
"12 hour" => array( null, __("12 hour", "forminator" ), ), // src/form/components/fields/time.js:64
|
548 |
"24 hour" => array( null, __("24 hour", "forminator" ), ), // src/form/components/fields/time.js:65
|
556 |
"Use this feature to specify a default selected time." => array( null, __("Use this feature to specify a default selected time.", "forminator" ), ), // src/form/components/fields/time.js:208
|
557 |
"AM" => array( null, __("AM", "forminator" ), ), // src/form/components/fields/time.js:260
|
558 |
"PM" => array( null, __("PM", "forminator" ), ), // src/form/components/fields/time.js:261
|
559 |
+
"Filesize limit" => array( null, __("Filesize limit", "forminator" ), ), // src/form/components/fields/upload.js:56
|
560 |
+
"Your server allows uploads up to 8MB. However, you can set a lower limit than this using the input below. To enable uploads of more than 8MB, you'll need to adjust the maximum upload limit in your PHP.ini file." => array( null, __("Your server allows uploads up to 8MB. However, you can set a lower limit than this using the input below. To enable uploads of more than 8MB, you'll need to adjust the maximum upload limit in your PHP.ini file.", "forminator" ), ), // src/form/components/fields/upload.js:60
|
561 |
+
"MB" => array( null, __("MB", "forminator" ), ), // src/form/components/fields/upload.js:88
|
562 |
+
"KB" => array( null, __("KB", "forminator" ), ), // src/form/components/fields/upload.js:89
|
563 |
+
"B" => array( null, __("B", "forminator" ), ), // src/form/components/fields/upload.js:90
|
564 |
+
"The file size you have entered exceeds what your current hosting settings are capped to. You need to increase your max filesize limit at the server level first." => array( null, __("The file size you have entered exceeds what your current hosting settings are capped to. You need to increase your max filesize limit at the server level first.", "forminator" ), ), // src/form/components/fields/upload.js:98
|
565 |
+
"Show files in media library" => array( null, __("Show files in media library", "forminator" ), ), // src/form/components/fields/upload.js:117
|
566 |
+
"Choose whether you want to show the files uploaded by your visitors using this field in your media library." => array( null, __("Choose whether you want to show the files uploaded by your visitors using this field in your media library.", "forminator" ), ), // src/form/components/fields/upload.js:121
|
567 |
"Edit Form" => array( null, __("Edit Form", "forminator" ), ), // src/form/components/header.js:9
|
568 |
"View Documentation" => array( null, __("View Documentation", "forminator" ), ), // src/form/components/header/documentation.js:14
|
569 |
"Name your form" => array( null, __("Name your form", "forminator" ), ), // src/form/components/header/title.js:35
|
576 |
"Applications" => array( null, __("Applications", "forminator" ), ), // src/form/components/integrations.js:138
|
577 |
"You can send this form’s data to any of the connected third party apps. Connect to more apps on the {{link}}Integrations{{/link}} page." => array( null, __("You can send this form’s data to any of the connected third party apps. Connect to more apps on the {{link}}Integrations{{/link}} page.", "forminator" ), ), // src/form/components/integrations.js:139
|
578 |
"Settings" => array( null, __("Settings", "forminator" ), ), // src/form/components/integrations.js:165
|
579 |
+
"Login User" => array( null, __("Login User", "forminator" ), ), // src/form/components/login.js:31
|
580 |
+
"Additional Settings" => array( null, __("Additional Settings", "forminator" ), ), // src/form/components/login/additional-settings.js:20
|
581 |
+
"These settings will add some extra control on your login process." => array( null, __("These settings will add some extra control on your login process.", "forminator" ), ), // src/form/components/login/additional-settings.js:23
|
582 |
+
"Hide the form if a user is already logged in" => array( null, __("Hide the form if a user is already logged in", "forminator" ), ), // src/form/components/login/additional-settings.js:34
|
583 |
+
"Enabling this will hide the form from logged in users." => array( null, __("Enabling this will hide the form from logged in users.", "forminator" ), ), // src/form/components/login/additional-settings.js:35
|
584 |
+
"Message (optional)" => array( null, __("Message (optional)", "forminator" ), ), // src/form/components/login/additional-settings.js:45
|
585 |
+
"Type a message for logged in users here..." => array( null, __("Type a message for logged in users here...", "forminator" ), ), // src/form/components/login/additional-settings.js:48
|
586 |
+
"You can optionally add a message for logged in users, which appears when the form is hidden." => array( null, __("You can optionally add a message for logged in users, which appears when the form is hidden.", "forminator" ), ), // src/form/components/login/additional-settings.js:49
|
587 |
+
"Login Fields" => array( null, __("Login Fields", "forminator" ), ), // src/form/components/login/meta-mapping.js:25
|
588 |
+
"Map your form fields to the meta keys and have additional control over the login form fields." => array( null, __("Map your form fields to the meta keys and have additional control over the login form fields.", "forminator" ), ), // src/form/components/login/meta-mapping.js:28
|
589 |
+
"Form Fields Mapping" => array( null, __("Form Fields Mapping", "forminator" ), ), // src/form/components/login/meta-mapping.js:38
|
590 |
+
"Assign your form fields to the meta keys required to login a user." => array( null, __("Assign your form fields to the meta keys required to login a user.", "forminator" ), ), // src/form/components/login/meta-mapping.js:41
|
591 |
+
"Username" => array( null, __("Username", "forminator" ), ), // src/form/components/login/meta-mapping.js:52
|
592 |
+
"Password" => array( null, __("Password", "forminator" ), ), // src/form/components/login/meta-mapping.js:66
|
593 |
+
"Remember Me Field" => array( null, __("Remember Me Field", "forminator" ), ), // src/form/components/login/meta-mapping.js:82
|
594 |
+
"Choose whether to show the {{strong}}Remember Me{{/strong}} field in your form. This option will add a Remember Me checkbox before the submit button." => array( null, __("Choose whether to show the {{strong}}Remember Me{{/strong}} field in your form. This option will add a Remember Me checkbox before the submit button.", "forminator" ), ), // src/form/components/login/meta-mapping.js:84
|
595 |
+
"Remember me" => array( null, __("Remember me", "forminator" ), ), // src/form/components/login/meta-mapping.js:103
|
596 |
+
"Cookie Expiration" => array( null, __("Cookie Expiration", "forminator" ), ), // src/form/components/login/meta-mapping.js:116
|
597 |
+
"day(s)" => array( null, __("day(s)", "forminator" ), ), // src/form/components/login/meta-mapping.js:127
|
598 |
+
"week(s)" => array( null, __("week(s)", "forminator" ), ), // src/form/components/login/meta-mapping.js:130
|
599 |
+
"month(s)" => array( null, __("month(s)", "forminator" ), ), // src/form/components/login/meta-mapping.js:133
|
600 |
+
"year(s)" => array( null, __("year(s)", "forminator" ), ), // src/form/components/login/meta-mapping.js:136
|
601 |
+
"Users will have to provide login details again after the selected period." => array( null, __("Users will have to provide login details again after the selected period.", "forminator" ), ), // src/form/components/login/meta-mapping.js:142
|
602 |
"Unpublish" => array( null, __("Unpublish", "forminator" ), ), // src/form/components/meta/buttons.js:71
|
603 |
"Save Draft" => array( null, __("Save Draft", "forminator" ), ), // src/form/components/meta/buttons.js:73
|
604 |
"Update" => array( null, __("Update", "forminator" ), ), // src/form/components/meta/buttons.js:88
|
629 |
"Please enter recipients" => array( null, __("Please enter recipients", "forminator" ), ), // src/form/components/modals/notification.js:200
|
630 |
"Please select rule" => array( null, __("Please select rule", "forminator" ), ), // src/form/components/modals/notification.js:212
|
631 |
"Please add email routing" => array( null, __("Please add email routing", "forminator" ), ), // src/form/components/modals/notification.js:217
|
632 |
+
"Please fix the error(s) in the EMAIL tab." => array( null, __("Please fix the error(s) in the EMAIL tab.", "forminator" ), ), // src/form/components/modals/notification.js:223
|
633 |
+
"Add Email Notification" => array( null, __("Add Email Notification", "forminator" ), ), // src/form/components/modals/notification.js:261
|
634 |
+
"Email" => array( null, __("Email", "forminator" ), ), // src/form/components/modals/notification.js:286
|
635 |
+
"Recipients" => array( null, __("Recipients", "forminator" ), ), // src/form/components/modals/notification.js:295
|
636 |
+
"Advanced" => array( null, __("Advanced", "forminator" ), ), // src/form/components/modals/notification.js:304
|
637 |
+
"Conditions" => array( null, __("Conditions", "forminator" ), ), // src/form/components/modals/notification.js:313
|
638 |
+
"The label is to help you identify this email and won't appear anywhere in the email." => array( null, __("The label is to help you identify this email and won't appear anywhere in the email.", "forminator" ), ), // src/form/components/modals/notification.js:340
|
639 |
+
"E.g. Sales Team Notification" => array( null, __("E.g. Sales Team Notification", "forminator" ), ), // src/form/components/modals/notification.js:345
|
640 |
+
"E.g. New Form Submission" => array( null, __("E.g. New Form Submission", "forminator" ), ), // src/form/components/modals/notification.js:359
|
641 |
+
"Subject" => array( null, __("Subject", "forminator" ), ), // src/form/components/modals/notification.js:362
|
642 |
+
"Email subject can't be empty" => array( null, __("Email subject can't be empty", "forminator" ), ), // src/form/components/modals/notification.js:365
|
643 |
+
"Body" => array( null, __("Body", "forminator" ), ), // src/form/components/modals/notification.js:396
|
644 |
+
"Email body can't be empty" => array( null, __("Email body can't be empty", "forminator" ), ), // src/form/components/modals/notification.js:398
|
645 |
+
"The default behavior is to send the email to the same recipients. If you want to send this email to different recipients conditionally, you can enable the email routing and change the recipients of this email based on the user input." => array( null, __("The default behavior is to send the email to the same recipients. If you want to send this email to different recipients conditionally, you can enable the email routing and change the recipients of this email based on the user input.", "forminator" ), ), // src/form/components/modals/notification.js:416
|
646 |
+
"E.g. sales@website.com" => array( null, __("E.g. sales@website.com", "forminator" ), ), // src/form/components/modals/notification.js:450
|
647 |
+
"Separate multiple emails with a comma" => array( null, __("Separate multiple emails with a comma", "forminator" ), ), // src/form/components/modals/notification.js:456
|
648 |
+
"Email Routing" => array( null, __("Email Routing", "forminator" ), ), // src/form/components/modals/notification.js:476
|
649 |
+
"Enter from name here" => array( null, __("Enter from name here", "forminator" ), ), // src/form/components/modals/notification.js:503
|
650 |
+
"From Name" => array( null, __("From Name", "forminator" ), ), // src/form/components/modals/notification.js:504
|
651 |
+
"Enter from email here" => array( null, __("Enter from email here", "forminator" ), ), // src/form/components/modals/notification.js:525
|
652 |
+
"From Email" => array( null, __("From Email", "forminator" ), ), // src/form/components/modals/notification.js:526
|
653 |
+
"Enter reply-to email here" => array( null, __("Enter reply-to email here", "forminator" ), ), // src/form/components/modals/notification.js:547
|
654 |
+
"Reply-to Email" => array( null, __("Reply-to Email", "forminator" ), ), // src/form/components/modals/notification.js:548
|
655 |
+
"Enter CC email here" => array( null, __("Enter CC email here", "forminator" ), ), // src/form/components/modals/notification.js:569
|
656 |
+
"CC Emails" => array( null, __("CC Emails", "forminator" ), ), // src/form/components/modals/notification.js:570
|
657 |
+
"Enter BCC email here" => array( null, __("Enter BCC email here", "forminator" ), ), // src/form/components/modals/notification.js:591
|
658 |
+
"BCC Emails" => array( null, __("BCC Emails", "forminator" ), ), // src/form/components/modals/notification.js:592
|
659 |
+
"Discard Changes" => array( null, __("Discard Changes", "forminator" ), ), // src/form/components/modals/notification.js:637
|
660 |
+
"Add" => array( null, __("Add", "forminator" ), ), // src/form/components/modals/notification.js:649
|
661 |
"Labels" => array( null, __("Labels", "forminator" ), ), // src/form/components/modals/pagination.js:79
|
662 |
"Your form is divided into multiple pages by Page Break field(s), and you can customize the label of each page here. Page names appear on your form header along with the progress indicator." => array( null, __("Your form is divided into multiple pages by Page Break field(s), and you can customize the label of each page here. Page names appear on your form header along with the progress indicator.", "forminator" ), ), // src/form/components/modals/pagination.js:107
|
663 |
"Finish" => array( null, __("Finish", "forminator" ), ), // src/form/components/modals/pagination.js:134
|
666 |
"Loading preview…" => array( null, __("Loading preview…", "forminator" ), ), // src/form/components/modals/preview.js:73
|
667 |
"Publishing form…" => array( null, __("Publishing form…", "forminator" ), ), // src/form/components/modals/publish.js:18
|
668 |
"Great work! Please hold tight a few moments while we publish your form to the world." => array( null, __("Great work! Please hold tight a few moments while we publish your form to the world.", "forminator" ), ), // src/form/components/modals/publish.js:25
|
669 |
+
"Please fill required fields" => array( null, __("Please fill required fields", "forminator" ), ), // src/form/components/modals/settings.js:130
|
670 |
+
"Calculation values are required!" => array( null, __("Calculation values are required!", "forminator" ), ), // src/form/components/modals/settings.js:148
|
671 |
+
"Option labels are required!" => array( null, __("Option labels are required!", "forminator" ), ), // src/form/components/modals/settings.js:157
|
672 |
+
"Please, connect your Stripe account first!" => array( null, __("Please, connect your Stripe account first!", "forminator" ), ), // src/form/components/modals/settings.js:165
|
673 |
+
"Please, enter Stripe payment amount!" => array( null, __("Please, enter Stripe payment amount!", "forminator" ), ), // src/form/components/modals/settings.js:170
|
674 |
+
"Please select an email address for payment receipt." => array( null, __("Please select an email address for payment receipt.", "forminator" ), ), // src/form/components/modals/settings.js:175
|
675 |
+
"Please, select Stripe payment variable field!" => array( null, __("Please, select Stripe payment variable field!", "forminator" ), ), // src/form/components/modals/settings.js:180
|
676 |
+
"Empty labels are not allowed for meta values!" => array( null, __("Empty labels are not allowed for meta values!", "forminator" ), ), // src/form/components/modals/settings.js:189
|
677 |
+
"Please, connect your PayPal account first!" => array( null, __("Please, connect your PayPal account first!", "forminator" ), ), // src/form/components/modals/settings.js:197
|
678 |
+
"Calculation formula is required!" => array( null, __("Calculation formula is required!", "forminator" ), ), // src/form/components/modals/settings.js:205
|
679 |
+
"Limit Min value should be less than Max value." => array( null, __("Limit Min value should be less than Max value.", "forminator" ), ), // src/form/components/modals/settings.js:213
|
680 |
+
"Please enter API keys." => array( null, __("Please enter API keys.", "forminator" ), ), // src/form/components/modals/settings.js:220
|
681 |
+
"Calculations" => array( null, __("Calculations", "forminator" ), ), // src/form/components/modals/settings.js:338
|
682 |
+
"Styling" => array( null, __("Styling", "forminator" ), ), // src/form/components/modals/settings.js:358
|
683 |
+
"Customize" => array( null, __("Customize", "forminator" ), ), // src/form/components/modals/settings.js:368
|
684 |
+
"Visibility" => array( null, __("Visibility", "forminator" ), ), // src/form/components/modals/settings.js:378
|
685 |
"Shortcode has been copied successfully." => array( null, __("Shortcode has been copied successfully.", "forminator" ), ), // src/form/components/modals/shortcode.js:20
|
686 |
"Ready to go!" => array( null, __("Ready to go!", "forminator" ), ), // src/form/components/modals/shortcode.js:31
|
687 |
"Your form is now ready to be embedded into a page or template of your choice. Simply copy and paste the shortcode below to display it!" => array( null, __("Your form is now ready to be embedded into a page or template of your choice. Simply copy and paste the shortcode below to display it!", "forminator" ), ), // src/form/components/modals/shortcode.js:37
|
689 |
"Copy shortcode" => array( null, __("Copy shortcode", "forminator" ), ), // src/form/components/modals/shortcode.js:49
|
690 |
"Button text" => array( null, __("Button text", "forminator" ), ), // src/form/components/modals/submit.js:102
|
691 |
"Enter message" => array( null, __("Enter message", "forminator" ), ), // src/form/components/modals/submit.js:115
|
692 |
+
"Navigate" => array( null, __("Navigate", "forminator" ), ), // src/form/components/navigation/menu.js:92
|
693 |
"Preview" => array( null, __("Preview", "forminator" ), ), // src/form/components/navigation/preview.js:16
|
694 |
"You can send customized email notifications to your site admins and visitors on successful form submission. Advanced features like email routing and conditional emails provide granular control over the email notifications." => array( null, __("You can send customized email notifications to your site admins and visitors on successful form submission. Advanced features like email routing and conditional emails provide granular control over the email notifications.", "forminator" ), ), // src/form/components/notifications.js:36
|
695 |
"Admin Email" => array( null, __("Admin Email", "forminator" ), ), // src/form/components/notifications/admin-email.js:294
|
734 |
"Send a confirmation email to the user" => array( null, __("Send a confirmation email to the user", "forminator" ), ), // src/form/components/notifications/confirmation-email.js:308
|
735 |
"If you leave it blank, we will automatically find first email field in the form as recipient. If there is no email field and user is logged in we will use their email." => array( null, __("If you leave it blank, we will automatically find first email field in the form as recipient. If there is no email field and user is logged in we will use their email.", "forminator" ), ), // src/form/components/notifications/confirmation-email.js:353
|
736 |
"Send to {{strong}}\"%(label)s\"{{/strong}} if {{strong}}%(field)s{{/strong}} %(rule)s {{strong}}%(value)s{{/strong}}" => array( null, __("Send to {{strong}}\"%(label)s\"{{/strong}} if {{strong}}%(field)s{{/strong}} %(rule)s {{strong}}%(value)s{{/strong}}", "forminator" ), ), // src/form/components/notifications/email-routing-rule.js:168
|
737 |
+
"Routing Condition" => array( null, __("Routing Condition", "forminator" ), ), // src/form/components/notifications/email-routing-rule.js:234
|
738 |
+
"Enter value" => array( null, __("Enter value", "forminator" ), ), // src/form/components/notifications/email-routing-rule.js:365
|
739 |
"You haven't defined any email routing rules yet. Click on the \"+ Add Rule\" button to add the recipients along with the routing rules." => array( null, __("You haven't defined any email routing rules yet. Click on the \"+ Add Rule\" button to add the recipients along with the routing rules.", "forminator" ), ), // src/form/components/notifications/email-routing.js:142
|
740 |
"Email routing is enabled" => array( null, __("Email routing is enabled", "forminator" ), ), // src/form/components/notifications/notification.js:195
|
741 |
"more recipient(s)" => array( null, __("more recipient(s)", "forminator" ), ), // src/form/components/notifications/notification.js:203
|
742 |
"Open field settings" => array( null, __("Open field settings", "forminator" ), ), // src/form/components/notifications/notification.js:246
|
743 |
"Edit" => array( null, __("Edit", "forminator" ), ), // src/form/components/notifications/notification.js:253
|
744 |
+
"User Account Activation" => array( null, __("User Account Activation", "forminator" ), ), // src/form/components/registration/account-activation.js:23
|
745 |
+
"Choose the activation method and other settings for the user accounts." => array( null, __("Choose the activation method and other settings for the user accounts.", "forminator" ), ), // src/form/components/registration/account-activation.js:26
|
746 |
+
"Activation Method" => array( null, __("Activation Method", "forminator" ), ), // src/form/components/registration/account-activation.js:36
|
747 |
+
"By default, the user account is activated on form submission. However, you can choose between {{strong}}Email Activation{{/strong}} which requires the user to click on an activation email or {{strong}}Manual Approval{{/strong}} which requires site admin to approve an account." => array( null, __("By default, the user account is activated on form submission. However, you can choose between {{strong}}Email Activation{{/strong}} which requires the user to click on an activation email or {{strong}}Manual Approval{{/strong}} which requires site admin to approve an account.", "forminator" ), ), // src/form/components/registration/account-activation.js:38
|
748 |
+
"Email Activation" => array( null, __("Email Activation", "forminator" ), ), // src/form/components/registration/account-activation.js:55
|
749 |
+
"Confirmation Page" => array( null, __("Confirmation Page", "forminator" ), ), // src/form/components/registration/account-activation.js:61
|
750 |
+
"Choose the page to redirect users when they click on confirmation link." => array( null, __("Choose the page to redirect users when they click on confirmation link.", "forminator" ), ), // src/form/components/registration/account-activation.js:63
|
751 |
+
"Manual Approval" => array( null, __("Manual Approval", "forminator" ), ), // src/form/components/registration/account-activation.js:73
|
752 |
+
"A site admin will have to manually approve each entry from the submissions page to activate the user accounts." => array( null, __("A site admin will have to manually approve each entry from the submissions page to activate the user accounts.", "forminator" ), ), // src/form/components/registration/account-activation.js:75
|
753 |
+
"Activation Email" => array( null, __("Activation Email", "forminator" ), ), // src/form/components/registration/account-activation.js:86
|
754 |
+
"By default, WordPress sends an activation email containing user account information after the account activation. However, you can choose not to send this email." => array( null, __("By default, WordPress sends an activation email containing user account information after the account activation. However, you can choose not to send this email.", "forminator" ), ), // src/form/components/registration/account-activation.js:88
|
755 |
+
"Since the {{strong}}Password{{/strong}} user meta key is mapped to {{strong}}Auto Generate Password{{/strong}}, it's recommended to keep this option to {{strong}}Default{{/strong}} so the auto-generated password can be sent to the users." => array( null, __("Since the {{strong}}Password{{/strong}} user meta key is mapped to {{strong}}Auto Generate Password{{/strong}}, it's recommended to keep this option to {{strong}}Default{{/strong}} so the auto-generated password can be sent to the users.", "forminator" ), ), // src/form/components/registration/account-activation.js:99
|
756 |
+
"Since the activation requires manual approval from site admin, it's recommended to keep this option to {{strong}}Default{{/strong}} to let users know when their account is activated." => array( null, __("Since the activation requires manual approval from site admin, it's recommended to keep this option to {{strong}}Default{{/strong}} to let users know when their account is activated.", "forminator" ), ), // src/form/components/registration/account-activation.js:112
|
757 |
+
"These settings will add some extra control on your registration process." => array( null, __("These settings will add some extra control on your registration process.", "forminator" ), ), // src/form/components/registration/additional-settings.js:23
|
758 |
+
"Automatically log in newly activated users" => array( null, __("Automatically log in newly activated users", "forminator" ), ), // src/form/components/registration/additional-settings.js:34
|
759 |
+
"This will automatically login a user on successful activation of their account." => array( null, __("This will automatically login a user on successful activation of their account.", "forminator" ), ), // src/form/components/registration/additional-settings.js:35
|
760 |
+
"Network's Main Site Role" => array( null, __("Network's Main Site Role", "forminator" ), ), // src/form/components/registration/meta-mapping.js:34
|
761 |
+
"If you don't want to create a user in network's main site, set this meta key to {{strong}}Don't create a user in Network's main site{{/strong}}." => array( null, __("If you don't want to create a user in network's main site, set this meta key to {{strong}}Don't create a user in Network's main site{{/strong}}.", "forminator" ), ), // src/form/components/registration/meta-mapping.js:35
|
762 |
+
"Role" => array( null, __("Role", "forminator" ), ), // src/form/components/registration/meta-mapping.js:51
|
763 |
+
"User Meta Mapping" => array( null, __("User Meta Mapping", "forminator" ), ), // src/form/components/registration/meta-mapping.js:58
|
764 |
+
"Assign your form fields to the user meta keys to use the data collected from the visitor to create a user profile." => array( null, __("Assign your form fields to the user meta keys to use the data collected from the visitor to create a user profile.", "forminator" ), ), // src/form/components/registration/meta-mapping.js:61
|
765 |
+
"Default Meta Keys" => array( null, __("Default Meta Keys", "forminator" ), ), // src/form/components/registration/meta-mapping.js:72
|
766 |
+
"Assign form fields to the default WordPress user meta keys (used in Profiles) below. You can assign a form field to multiple meta keys. If you assign a non-required form field to a required user meta, that form field will automatically become required in your form." => array( null, __("Assign form fields to the default WordPress user meta keys (used in Profiles) below. You can assign a form field to multiple meta keys. If you assign a non-required form field to a required user meta, that form field will automatically become required in your form.", "forminator" ), ), // src/form/components/registration/meta-mapping.js:75
|
767 |
+
"Select a Field" => array( null, __("Select a Field", "forminator" ), ), // src/form/components/registration/meta-mapping.js:120
|
768 |
+
"Website" => array( null, __("Website", "forminator" ), ), // src/form/components/registration/meta-mapping.js:143
|
769 |
+
"Auto Generated Password" => array( null, __("Auto Generated Password", "forminator" ), ), // src/form/components/registration/meta-mapping.js:166
|
770 |
+
"Custom User Meta" => array( null, __("Custom User Meta", "forminator" ), ), // src/form/components/registration/meta-mapping.js:186
|
771 |
+
"Create custom user meta keys and assign your form fields to them to set additional user meta keys on successful user registration." => array( null, __("Create custom user meta keys and assign your form fields to them to set additional user meta keys on successful user registration.", "forminator" ), ), // src/form/components/registration/meta-mapping.js:188
|
772 |
+
"Add Custom User Meta" => array( null, __("Add Custom User Meta", "forminator" ), ), // src/form/components/registration/meta-mapping.js:200
|
773 |
+
"No custom user meta created yet. Click on \"+ Add Custom User Meta\" to create custom user meta and map form fields to it." => array( null, __("No custom user meta created yet. Click on \"+ Add Custom User Meta\" to create custom user meta and map form fields to it.", "forminator" ), ), // src/form/components/registration/meta-mapping.js:207
|
774 |
+
"Site Registration" => array( null, __("Site Registration", "forminator" ), ), // src/form/components/registration/site-registration.js:22
|
775 |
+
"Choose whether to allow site registrations on your multisite network and different related settings." => array( null, __("Choose whether to allow site registrations on your multisite network and different related settings.", "forminator" ), ), // src/form/components/registration/site-registration.js:25
|
776 |
+
"Assign form fields to the default WordPress site meta keys bellow." => array( null, __("Assign form fields to the default WordPress site meta keys bellow.", "forminator" ), ), // src/form/components/registration/site-registration.js:50
|
777 |
+
"Site Name" => array( null, __("Site Name", "forminator" ), ), // src/form/components/registration/site-registration.js:57
|
778 |
+
"Site address meta key will be automatically set based on this field as {{strong}}false{{/strong}}" => array( null, __("Site address meta key will be automatically set based on this field as {{strong}}false{{/strong}}", "forminator" ), ), // src/form/components/registration/site-registration.js:61
|
779 |
+
"Site Title" => array( null, __("Site Title", "forminator" ), ), // src/form/components/registration/site-registration.js:78
|
780 |
+
"Site Role" => array( null, __("Site Role", "forminator" ), ), // src/form/components/registration/site-registration.js:93
|
781 |
+
"forever" => array( null, __("forever", "forminator" ), ), // src/form/components/settings.js:38
|
782 |
+
"retain" => array( null, __("retain", "forminator" ), ), // src/form/components/settings.js:49
|
783 |
+
"remove" => array( null, __("remove", "forminator" ), ), // src/form/components/settings.js:49
|
784 |
+
"Data Storage" => array( null, __("Data Storage", "forminator" ), ), // src/form/components/settings.js:60
|
785 |
+
"By default we will store all submissions in your database." => array( null, __("By default we will store all submissions in your database.", "forminator" ), ), // src/form/components/settings.js:62
|
786 |
+
"Disable store submissions in my database" => array( null, __("Disable store submissions in my database", "forminator" ), ), // src/form/components/settings.js:70
|
787 |
+
"If you do not want to store submissions in your database you can disable this feature. Alternately you can also schedule automatic deletion of submissions after a period of time below." => array( null, __("If you do not want to store submissions in your database you can disable this feature. Alternately you can also schedule automatic deletion of submissions after a period of time below.", "forminator" ), ), // src/form/components/settings.js:72
|
788 |
+
"Privacy" => array( null, __("Privacy", "forminator" ), ), // src/form/components/settings.js:84
|
789 |
+
"Choose how you want to handle this form’s data storage." => array( null, __("Choose how you want to handle this form’s data storage.", "forminator" ), ), // src/form/components/settings.js:87
|
790 |
+
"By default we will use the configuration you have set in your" => array( null, __("By default we will use the configuration you have set in your", "forminator" ), ), // src/form/components/settings.js:92
|
791 |
+
"global privacy settings." => array( null, __("global privacy settings.", "forminator" ), ), // src/form/components/settings.js:98
|
792 |
+
"How long do you want to retain this form's submissions for?" => array( null, __("How long do you want to retain this form's submissions for?", "forminator" ), ), // src/form/components/settings.js:109
|
793 |
+
"Use default" => array( null, __("Use default", "forminator" ), ), // src/form/components/settings.js:119
|
794 |
+
"Your default setting value is to keep the submissions" => array( null, __("Your default setting value is to keep the submissions", "forminator" ), ), // src/form/components/settings.js:122
|
795 |
+
"Days" => array( null, __("Days", "forminator" ), ), // src/form/components/settings.js:151
|
796 |
+
"Weeks" => array( null, __("Weeks", "forminator" ), ), // src/form/components/settings.js:154
|
797 |
+
"Months" => array( null, __("Months", "forminator" ), ), // src/form/components/settings.js:157
|
798 |
+
"Years" => array( null, __("Years", "forminator" ), ), // src/form/components/settings.js:160
|
799 |
+
"Leave the field blank to retain submissions forever." => array( null, __("Leave the field blank to retain submissions forever.", "forminator" ), ), // src/form/components/settings.js:166
|
800 |
+
"Account Erasure Requests" => array( null, __("Account Erasure Requests", "forminator" ), ), // src/form/components/settings.js:176
|
801 |
+
"When handling an account erasure request that contains an email associated with a submission, what do you want to do?" => array( null, __("When handling an account erasure request that contains an email associated with a submission, what do you want to do?", "forminator" ), ), // src/form/components/settings.js:179
|
802 |
+
"Your default setting value is to " => array( null, __("Your default setting value is to ", "forminator" ), ), // src/form/components/settings.js:194
|
803 |
+
" the submission." => array( null, __(" the submission.", "forminator" ), ), // src/form/components/settings.js:195
|
804 |
+
"Retain Submissions" => array( null, __("Retain Submissions", "forminator" ), ), // src/form/components/settings.js:211
|
805 |
+
"Remove Submissions" => array( null, __("Remove Submissions", "forminator" ), ), // src/form/components/settings.js:214
|
806 |
+
"Submission Files" => array( null, __("Submission Files", "forminator" ), ), // src/form/components/settings.js:222
|
807 |
+
"If your form has file upload field(s), choose whether to delete the file(s) related to a submission when that submission gets deleted." => array( null, __("If your form has file upload field(s), choose whether to delete the file(s) related to a submission when that submission gets deleted.", "forminator" ), ), // src/form/components/settings.js:225
|
808 |
+
"Keep" => array( null, __("Keep", "forminator" ), ), // src/form/components/settings.js:236
|
809 |
"Unknown setting" => array( null, __("Unknown setting", "forminator" ), ), // src/form/components/settings/advanced.js:108
|
810 |
"Assign a calculation value to each option. These values will not be shown on the form. You can assign only a numeric value." => array( null, __("Assign a calculation value to each option. These values will not be shown on the form. You can assign only a numeric value.", "forminator" ), ), // src/form/components/settings/calculations/options.js:39
|
811 |
"Calculation value" => array( null, __("Calculation value", "forminator" ), ), // src/form/components/settings/calculations/options.js:58
|
814 |
"Pick a date" => array( null, __("Pick a date", "forminator" ), ), // src/form/components/settings/date-multiple.js:74
|
815 |
"Add selected date" => array( null, __("Add selected date", "forminator" ), ), // src/form/components/settings/date-multiple.js:81
|
816 |
"Restricted dates" => array( null, __("Restricted dates", "forminator" ), ), // src/form/components/settings/date-multiple.js:92
|
817 |
+
"Allowed filetypes" => array( null, __("Allowed filetypes", "forminator" ), ), // src/form/components/settings/filetypes.js:117
|
818 |
+
"By default we will use {{a}}WordPress Default Allowed Mime Types{{/a}}. You can choose which types of files you want to allow users to upload." => array( null, __("By default we will use {{a}}WordPress Default Allowed Mime Types{{/a}}. You can choose which types of files you want to allow users to upload.", "forminator" ), ), // src/form/components/settings/filetypes.js:119
|
819 |
+
"Images" => array( null, __("Images", "forminator" ), ), // src/form/components/settings/filetypes.js:155
|
820 |
+
"Documents" => array( null, __("Documents", "forminator" ), ), // src/form/components/settings/filetypes.js:164
|
821 |
+
"Audio" => array( null, __("Audio", "forminator" ), ), // src/form/components/settings/filetypes.js:173
|
822 |
+
"Video" => array( null, __("Video", "forminator" ), ), // src/form/components/settings/filetypes.js:182
|
823 |
+
"Archive" => array( null, __("Archive", "forminator" ), ), // src/form/components/settings/filetypes.js:193
|
824 |
+
"Spreadsheet" => array( null, __("Spreadsheet", "forminator" ), ), // src/form/components/settings/filetypes.js:211
|
825 |
+
"Interactive" => array( null, __("Interactive", "forminator" ), ), // src/form/components/settings/filetypes.js:220
|
826 |
+
"If you're having trouble uploading one of these filetypes, it may be an issue with your hosting provider." => array( null, __("If you're having trouble uploading one of these filetypes, it may be an issue with your hosting provider.", "forminator" ), ), // src/form/components/settings/filetypes.js:228
|
827 |
"Roboto" => array( null, __("Roboto", "forminator" ), ), // src/form/components/settings/fonts.js:55
|
828 |
"Font Family" => array( null, __("Font Family", "forminator" ), ), // src/form/components/settings/fonts.js:56
|
829 |
"Custom user font" => array( null, __("Custom user font", "forminator" ), ), // src/form/components/settings/fonts.js:70
|
833 |
"Font Size" => array( null, __("Font Size", "forminator" ), ), // src/form/components/settings/fonts.js:135
|
834 |
"Font Weight" => array( null, __("Font Weight", "forminator" ), ), // src/form/components/settings/fonts.js:142
|
835 |
"Select font weight" => array( null, __("Select font weight", "forminator" ), ), // src/form/components/settings/fonts.js:143
|
|
|
836 |
"Delete MetaData" => array( null, __("Delete MetaData", "forminator" ), ), // src/form/components/settings/metadata-option.js:97
|
837 |
"Add Custom Meta" => array( null, __("Add Custom Meta", "forminator" ), ), // src/form/components/settings/metadata-value.js:131
|
838 |
"No custom meta data created yet. Click on \"+ Add Custom to create custom meta and map form fields to it." => array( null, __("No custom meta data created yet. Click on \"+ Add Custom to create custom meta and map form fields to it.", "forminator" ), ), // src/form/components/settings/metadata-value.js:140
|
839 |
+
"Delete meta" => array( null, __("Delete meta", "forminator" ), ), // src/form/components/settings/multi-custom-field-option.js:110
|
|
|
840 |
"Default value" => array( null, __("Default value", "forminator" ), ), // src/form/components/settings/multi-name.js:54
|
841 |
+
"Delete option" => array( null, __("Delete option", "forminator" ), ), // src/form/components/settings/multi-option.js:80
|
842 |
"Submission limit" => array( null, __("Submission limit", "forminator" ), ), // src/form/components/settings/multi-option.js:97
|
843 |
"Options" => array( null, __("Options", "forminator" ), ), // src/form/components/settings/multi-value.js:139
|
844 |
"Add Option" => array( null, __("Add Option", "forminator" ), ), // src/form/components/settings/multi-value.js:159
|
850 |
"Pre-populate" => array( null, __("Pre-populate", "forminator" ), ), // src/form/components/settings/prefill.js:25
|
851 |
"You can pre-populate this field dynamically using the query parameter passed in your form URL. Enter the query parameter key to fetch its value from your form URL below." => array( null, __("You can pre-populate this field dynamically using the query parameter passed in your form URL. Enter the query parameter key to fetch its value from your form URL below.", "forminator" ), ), // src/form/components/settings/prefill.js:33
|
852 |
"Query parameter (optional)" => array( null, __("Query parameter (optional)", "forminator" ), ), // src/form/components/settings/prefill.js:45
|
853 |
+
"Require" => array( null, __("Require", "forminator" ), ), // src/form/components/settings/required.js:47
|
854 |
+
"Optional" => array( null, __("Optional", "forminator" ), ), // src/form/components/settings/required.js:61
|
855 |
+
"Required" => array( null, __("Required", "forminator" ), ), // src/form/components/settings/required.js:68
|
856 |
+
"Password error message" => array( null, __("Password error message", "forminator" ), ), // src/form/components/settings/required.js:83
|
857 |
+
"Confirm Password error message" => array( null, __("Confirm Password error message", "forminator" ), ), // src/form/components/settings/required.js:114
|
858 |
+
"Enter confirm password message" => array( null, __("Enter confirm password message", "forminator" ), ), // src/form/components/settings/required.js:119
|
859 |
+
"Options without a value will be treated as empty options" => array( null, __("Options without a value will be treated as empty options", "forminator" ), ), // src/form/components/settings/required.js:135
|
860 |
"Add classes that will be output on this field’s container to aid your theme's default styling." => array( null, __("Add classes that will be output on this field’s container to aid your theme's default styling.", "forminator" ), ), // src/form/components/settings/styling.js:21
|
861 |
"E.g. form-field" => array( null, __("E.g. form-field", "forminator" ), ), // src/form/components/settings/styling.js:30
|
862 |
"These will be output as you see them here." => array( null, __("These will be output as you see them here.", "forminator" ), ), // src/form/components/settings/styling.js:38
|
864 |
"You need more than one field to configure visibility conditions. Add more fields!" => array( null, __("You need more than one field to configure visibility conditions. Add more fields!", "forminator" ), ), // src/form/components/settings/visibility.js:171
|
865 |
"Rules" => array( null, __("Rules", "forminator" ), ), // src/form/components/settings/visibility.js:182
|
866 |
"By default field will always be visible. If you want to hide or show fields based on user input you can add conditions." => array( null, __("By default field will always be visible. If you want to hide or show fields based on user input you can add conditions.", "forminator" ), ), // src/form/components/settings/visibility.js:196
|
867 |
+
"You have unsaved changes, are you sure want to leave this page" => array( null, __("You have unsaved changes, are you sure want to leave this page", "forminator" ), ), // src/form/containers/main.js:52
|
868 |
"Details" => array( null, __("Details", "forminator" ), ), // src/poll/components/appearance.js:51
|
|
|
869 |
"Use default colors" => array( null, __("Use default colors", "forminator" ), ), // src/poll/components/appearance/colors.js:47
|
870 |
"Poll Container" => array( null, __("Poll Container", "forminator" ), ), // src/poll/components/appearance/colors.js:63
|
871 |
"Poll Basics" => array( null, __("Poll Basics", "forminator" ), ), // src/poll/components/appearance/colors.js:70
|
900 |
"Allow Multiple" => array( null, __("Allow Multiple", "forminator" ), ), // src/poll/components/behaviour/limits.js:69
|
901 |
"minute(s)" => array( null, __("minute(s)", "forminator" ), ), // src/poll/components/behaviour/limits.js:90
|
902 |
"hour(s)" => array( null, __("hour(s)", "forminator" ), ), // src/poll/components/behaviour/limits.js:91
|
|
|
|
|
|
|
|
|
903 |
"Choose the method you want to use to limit the number of votes." => array( null, __("Choose the method you want to use to limit the number of votes.", "forminator" ), ), // src/poll/components/behaviour/limits.js:109
|
904 |
"User IP" => array( null, __("User IP", "forminator" ), ), // src/poll/components/behaviour/limits.js:117
|
905 |
"Browser Cookie" => array( null, __("Browser Cookie", "forminator" ), ), // src/poll/components/behaviour/limits.js:118
|
964 |
"Option Unselected" => array( null, __("Option Unselected", "forminator" ), ), // src/quiz/global/components/appearance/design-style/bold.js:20
|
965 |
"Option Selected" => array( null, __("Option Selected", "forminator" ), ), // src/quiz/global/components/appearance/design-style/bold.js:32
|
966 |
"You have opted for no stylesheet to be enqueued. The quiz will inherit styles from your theme's CSS." => array( null, __("You have opted for no stylesheet to be enqueued. The quiz will inherit styles from your theme's CSS.", "forminator" ), ), // src/quiz/global/components/appearance/design-style/none.js:13
|
967 |
+
"Customize your quiz layout by adjusting the answers layout and overall quiz alignment." => array( null, __("Customize your quiz layout by adjusting the answers layout and overall quiz alignment.", "forminator" ), ), // src/quiz/global/components/appearance/options-layout.js:16
|
968 |
+
"Choose whether the quiz answers should appear in a list or a grid." => array( null, __("Choose whether the quiz answers should appear in a list or a grid.", "forminator" ), ), // src/quiz/global/components/appearance/options-layout.js:26
|
969 |
+
"List" => array( null, __("List", "forminator" ), ), // src/quiz/global/components/appearance/options-layout.js:38
|
970 |
+
"Grid" => array( null, __("Grid", "forminator" ), ), // src/quiz/global/components/appearance/options-layout.js:46
|
971 |
+
"Choose the number of columns to fit in one row. Note that grid layout changes to list on smaller screens so this won't affect the smaller screens." => array( null, __("Choose the number of columns to fit in one row. Note that grid layout changes to list on smaller screens so this won't affect the smaller screens.", "forminator" ), ), // src/quiz/global/components/appearance/options-layout.js:53
|
972 |
+
"Columns per row" => array( null, __("Columns per row", "forminator" ), ), // src/quiz/global/components/appearance/options-layout.js:64
|
973 |
+
"Quiz Alignment" => array( null, __("Quiz Alignment", "forminator" ), ), // src/quiz/global/components/appearance/options-layout.js:83
|
974 |
+
"Choose the overall alignment of your quiz. This setting affects everything, including title, description, questions and answers, buttons, and social share message." => array( null, __("Choose the overall alignment of your quiz. This setting affects everything, including title, description, questions and answers, buttons, and social share message.", "forminator" ), ), // src/quiz/global/components/appearance/options-layout.js:84
|
975 |
+
"Center" => array( null, __("Center", "forminator" ), ), // src/quiz/global/components/appearance/options-layout.js:96
|
976 |
+
"Quiz Container" => array( null, __("Quiz Container", "forminator" ), ), // src/quiz/global/components/appearance/quiz-container.js:20
|
977 |
+
"Customize the quiz container as per your liking." => array( null, __("Customize the quiz container as per your liking.", "forminator" ), ), // src/quiz/global/components/appearance/quiz-container.js:21
|
978 |
+
"By default the quiz will fill the available space where you insert it. You can add some padding here to better suit your theme." => array( null, __("By default the quiz will fill the available space where you insert it. You can add some padding here to better suit your theme.", "forminator" ), ), // src/quiz/global/components/appearance/quiz-container.js:31
|
979 |
+
"Add an optional border around the quiz." => array( null, __("Add an optional border around the quiz.", "forminator" ), ), // src/quiz/global/components/appearance/quiz-container.js:56
|
980 |
+
"Choose how much spacing you want between each quiz question." => array( null, __("Choose how much spacing you want between each quiz question.", "forminator" ), ), // src/quiz/global/components/appearance/quiz-container.js:79
|
981 |
+
"Maximum Width" => array( null, __("Maximum Width", "forminator" ), ), // src/quiz/global/components/appearance/quiz-container.js:105
|
982 |
+
"Choose the maximum container width for your quiz. Full Width means quiz container will fill the 100% available space where you insert it, and the Custom option lets you define a maximum container width." => array( null, __("Choose the maximum container width for your quiz. Full Width means quiz container will fill the 100% available space where you insert it, and the Custom option lets you define a maximum container width.", "forminator" ), ), // src/quiz/global/components/appearance/quiz-container.js:106
|
983 |
+
"Full Width" => array( null, __("Full Width", "forminator" ), ), // src/quiz/global/components/appearance/quiz-container.js:115
|
984 |
+
"Maximum width" => array( null, __("Maximum width", "forminator" ), ), // src/quiz/global/components/appearance/quiz-container/size.js:19
|
985 |
"Messages" => array( null, __("Messages", "forminator" ), ), // src/quiz/global/components/behaviour/messages.js:12
|
986 |
"Choose the copy of the messages for the correct and wrong answers and also for the final score count." => array( null, __("Choose the copy of the messages for the correct and wrong answers and also for the final score count.", "forminator" ), ), // src/quiz/global/components/behaviour/messages.js:15
|
987 |
"Correct Answer Message" => array( null, __("Correct Answer Message", "forminator" ), ), // src/quiz/global/components/behaviour/messages.js:22
|
992 |
"Quiz Name" => array( null, __("Quiz Name", "forminator" ), ), // src/quiz/global/components/behaviour/messages.js:73
|
993 |
"Quiz Answer" => array( null, __("Quiz Answer", "forminator" ), ), // src/quiz/global/components/behaviour/messages.js:74
|
994 |
"Quiz Result" => array( null, __("Quiz Result", "forminator" ), ), // src/quiz/global/components/behaviour/messages.js:75
|
995 |
+
"Choose how you want your quiz to be rendered for users." => array( null, __("Choose how you want your quiz to be rendered for users.", "forminator" ), ), // src/quiz/global/components/behaviour/render.js:14
|
996 |
"Load quiz using AJAX" => array( null, __("Load quiz using AJAX", "forminator" ), ), // src/quiz/global/components/behaviour/render.js:22
|
997 |
"Enabling this feature will load the quiz via AJAX after the page has loaded up, effectively speeding up your page load time. This method can also (in most cases) avoid page caching issues with your quiz." => array( null, __("Enabling this feature will load the quiz via AJAX after the page has loaded up, effectively speeding up your page load time. This method can also (in most cases) avoid page caching issues with your quiz.", "forminator" ), ), // src/quiz/global/components/behaviour/render.js:23
|
998 |
"Prevent page caching on quiz pages" => array( null, __("Prevent page caching on quiz pages", "forminator" ), ), // src/quiz/global/components/behaviour/render.js:34
|
999 |
"Page caching plugins serve a static HTML version of the page which can cause issues to your dynamic quizzes. By enabling this, we'll use {{strong}}DONOTCACHEPAGE{{/strong}} constant to prevent pages with this quiz on it from being cached." => array( null, __("Page caching plugins serve a static HTML version of the page which can cause issues to your dynamic quizzes. By enabling this, we'll use {{strong}}DONOTCACHEPAGE{{/strong}} constant to prevent pages with this quiz on it from being cached.", "forminator" ), ), // src/quiz/global/components/behaviour/render.js:35
|
1000 |
+
"Results" => array( null, __("Results", "forminator" ), ), // src/quiz/global/components/behaviour/results.js:19
|
1001 |
+
"Choose how do you want to show quiz results to the participants." => array( null, __("Choose how do you want to show quiz results to the participants.", "forminator" ), ), // src/quiz/global/components/behaviour/results.js:21
|
1002 |
+
"Display Method" => array( null, __("Display Method", "forminator" ), ), // src/quiz/global/components/behaviour/results.js:33
|
1003 |
+
"Choose whether to display the correct answer as the user answers each question or after the quiz is submitted." => array( null, __("Choose whether to display the correct answer as the user answers each question or after the quiz is submitted.", "forminator" ), ), // src/quiz/global/components/behaviour/results.js:34
|
1004 |
+
"Real Time" => array( null, __("Real Time", "forminator" ), ), // src/quiz/global/components/behaviour/results.js:44
|
1005 |
+
"On Submission" => array( null, __("On Submission", "forminator" ), ), // src/quiz/global/components/behaviour/results.js:49
|
1006 |
+
"Evaluation Loader" => array( null, __("Evaluation Loader", "forminator" ), ), // src/quiz/global/components/behaviour/results/evaluation-loader.js:21
|
1007 |
+
"Choose whether you want to show a loader while evaluating the selected answer in real-time. We recommend using this on long quizzes since evaluating an answer might take a bit longer." => array( null, __("Choose whether you want to show a loader while evaluating the selected answer in real-time. We recommend using this on long quizzes since evaluating an answer might take a bit longer.", "forminator" ), ), // src/quiz/global/components/behaviour/results/evaluation-loader.js:24
|
1008 |
+
"Note: You can change the color of the loader in the Appearance tab." => array( null, __("Note: You can change the color of the loader in the Appearance tab.", "forminator" ), ), // src/quiz/global/components/behaviour/results/show-loader.js:14
|
1009 |
"Social Sharing" => array( null, __("Social Sharing", "forminator" ), ), // src/quiz/global/components/behaviour/share.js:14
|
1010 |
"Choose whether you want to allow the quiz participants to share their results on social media." => array( null, __("Choose whether you want to allow the quiz participants to share their results on social media.", "forminator" ), ), // src/quiz/global/components/behaviour/share.js:15
|
1011 |
"Social Sharing Platforms" => array( null, __("Social Sharing Platforms", "forminator" ), ), // src/quiz/global/components/behaviour/social-sharing/social-enable.js:20
|
1045 |
"Please validate your fields!" => array( null, __("Please validate your fields!", "forminator" ), ), // src/quiz/global/components/modals/personality.js:167
|
1046 |
"Publishing quiz…" => array( null, __("Publishing quiz…", "forminator" ), ), // src/quiz/global/components/modals/publish.js:18
|
1047 |
"Great work! Please hold tight a few moments while we publish your quiz to the world." => array( null, __("Great work! Please hold tight a few moments while we publish your quiz to the world.", "forminator" ), ), // src/quiz/global/components/modals/publish.js:24
|
1048 |
+
"Options cannot be empty. You either need to enter answer text or upload an image for the empty options." => array( null, __("Options cannot be empty. You either need to enter answer text or upload an image for the empty options.", "forminator" ), ), // src/quiz/global/components/modals/question.js:86
|
1049 |
+
"You need to select at least one correct answer before you can add this question." => array( null, __("You need to select at least one correct answer before you can add this question.", "forminator" ), ), // src/quiz/global/components/modals/question.js:99
|
1050 |
+
"You need to select an associated personality for every option." => array( null, __("You need to select an associated personality for every option.", "forminator" ), ), // src/quiz/global/components/modals/question.js:114
|
1051 |
+
"Edit Question" => array( null, __("Edit Question", "forminator" ), ), // src/quiz/global/components/modals/question.js:127
|
1052 |
+
"You can choose multiple correct answers if that applies to this question. Note that the user's selection will be considered as right when any one of the correct answers is selected." => array( null, __("You can choose multiple correct answers if that applies to this question. Note that the user's selection will be considered as right when any one of the correct answers is selected.", "forminator" ), ), // src/quiz/global/components/modals/question.js:190
|
1053 |
"Your quiz is now ready to be embedded into a page or template of your choice. Simply copy and paste the shortcode below to display it!" => array( null, __("Your quiz is now ready to be embedded into a page or template of your choice. Simply copy and paste the shortcode below to display it!", "forminator" ), ), // src/quiz/global/components/modals/shortcode.js:37
|
1054 |
"Button Processing Text" => array( null, __("Button Processing Text", "forminator" ), ), // src/quiz/global/components/modals/submit.js:64
|
1055 |
"Sending..." => array( null, __("Sending...", "forminator" ), ), // src/quiz/global/components/modals/submit.js:65
|
1062 |
"e.g. 0.75em" => array( null, __("e.g. 0.75em", "forminator" ), ), // src/quiz/global/components/settings/fonts.js:102
|
1063 |
"Choose how you want to handle this quiz’s data storage. By default we'll use the configuration you've set in your {{link}}global privacy settings{{/link}}." => array( null, __("Choose how you want to handle this quiz’s data storage. By default we'll use the configuration you've set in your {{link}}global privacy settings{{/link}}.", "forminator" ), ), // src/quiz/global/components/settings/privacy.js:34
|
1064 |
"How long do you want to retain this quiz's submissions for?" => array( null, __("How long do you want to retain this quiz's submissions for?", "forminator" ), ), // src/quiz/global/components/settings/privacy.js:52
|
1065 |
+
"Evaluation loader icon" => array( null, __("Evaluation loader icon", "forminator" ), ), // src/quiz/knowledge/components/appearance/colors/answer-checkbox.js:71
|
1066 |
+
"This picker works only when \"Evaluation Loader\" is set to \"Show Loader\"." => array( null, __("This picker works only when \"Evaluation Loader\" is set to \"Show Loader\".", "forminator" ), ), // src/quiz/knowledge/components/appearance/colors/answer-checkbox.js:72
|
1067 |
+
"Wrong" => array( null, __("Wrong", "forminator" ), ), // src/quiz/knowledge/components/appearance/colors/answer-checkbox.js:119
|
1068 |
"Answer text color" => array( null, __("Answer text color", "forminator" ), ), // src/quiz/knowledge/components/appearance/colors/answer-text.js:28
|
1069 |
"Answer result message" => array( null, __("Answer result message", "forminator" ), ), // src/quiz/knowledge/components/appearance/colors/answer-text.js:34
|
1070 |
"Quiz result color" => array( null, __("Quiz result color", "forminator" ), ), // src/quiz/knowledge/components/appearance/colors/basic.js:39
|
1088 |
"Large" => array( null, __("Large", "forminator" ), ), // src/quiz/knowledge/components/appearance/fonts/social-icons.js:26
|
1089 |
"Retake Button" => array( null, __("Retake Button", "forminator" ), ), // src/quiz/personality/components/appearance/colors/colors-table.js:68
|
1090 |
"Main" => array( null, __("Main", "forminator" ), ), // src/quiz/personality/components/appearance/colors/quiz-result.js:24
|
1091 |
+
"Container background" => array( null, __("Container background", "forminator" ), ), // src/quiz/personality/components/appearance/colors/quiz-result.js:42
|
1092 |
+
"Header" => array( null, __("Header", "forminator" ), ), // src/quiz/personality/components/appearance/colors/quiz-result.js:53
|
1093 |
+
"Content background" => array( null, __("Content background", "forminator" ), ), // src/quiz/personality/components/appearance/colors/quiz-result.js:96
|
1094 |
+
"Retake" => array( null, __("Retake", "forminator" ), ), // src/quiz/personality/components/appearance/fonts/quiz-result.js:38
|
1095 |
"Let's add the different personalities. Each of the following personality is a possible outcome of your quiz. In case of a tie, the personality is chosen as per their order below." => array( null, __("Let's add the different personalities. Each of the following personality is a possible outcome of your quiz. In case of a tie, the personality is chosen as per their order below.", "forminator" ), ), // src/quiz/personality/components/personalities.js:33
|
1096 |
"Reorder the personalities to set the priority order." => array( null, __("Reorder the personalities to set the priority order.", "forminator" ), ), // src/quiz/personality/components/personalities.js:50
|
1097 |
"Define the different personalities possible as the outcome of your quiz here." => array( null, __("Define the different personalities possible as the outcome of your quiz here.", "forminator" ), ), // src/quiz/personality/components/personalities/personalities.js:104
|
1103 |
"Poll" => array( null, __("Poll", "forminator" ), ), // src/settings/inputs/ace-editor.js:122
|
1104 |
"Answer Input" => array( null, __("Answer Input", "forminator" ), ), // src/settings/inputs/ace-editor.js:132
|
1105 |
"Answer Label" => array( null, __("Answer Label", "forminator" ), ), // src/settings/inputs/ace-editor.js:137
|
1106 |
+
"Quiz" => array( null, __("Quiz", "forminator" ), ), // src/settings/inputs/ace-editor.js:163
|
1107 |
+
"Answer Container" => array( null, __("Answer Container", "forminator" ), ), // src/settings/inputs/ace-editor.js:183
|
1108 |
+
"Answer Text" => array( null, __("Answer Text", "forminator" ), ), // src/settings/inputs/ace-editor.js:190
|
1109 |
"%s does not exist in your form. Please insert a valid field from the merged tags option." => array( null, __("%s does not exist in your form. Please insert a valid field from the merged tags option.", "forminator" ), ), // src/settings/inputs/calculation.js:157
|
1110 |
"Infinity calculation result." => array( null, __("Infinity calculation result.", "forminator" ), ), // src/settings/inputs/calculation.js:193
|
1111 |
"Calculation Formula" => array( null, __("Calculation Formula", "forminator" ), ), // src/settings/inputs/calculation.js:253
|
1120 |
"You can preview your form and check if the formula is generating expected results." => array( null, __("You can preview your form and check if the formula is generating expected results.", "forminator" ), ), // src/settings/inputs/calculation.js:361
|
1121 |
"Formula Preview" => array( null, __("Formula Preview", "forminator" ), ), // src/settings/inputs/calculation.js:370
|
1122 |
"Remove this date range" => array( null, __("Remove this date range", "forminator" ), ), // src/settings/inputs/date-picker.js:73
|
1123 |
+
"This field is required!" => array( null, __("This field is required!", "forminator" ), ), // src/settings/inputs/input.js:39
|
1124 |
+
"Please enter valid number." => array( null, __("Please enter valid number.", "forminator" ), ), // src/settings/inputs/input.js:120
|
1125 |
"Select image" => array( null, __("Select image", "forminator" ), ), // src/settings/inputs/uploads.js:25
|
1126 |
"Upload image" => array( null, __("Upload image", "forminator" ), ), // src/settings/inputs/uploads.js:134
|
1127 |
"Upload file" => array( null, __("Upload file", "forminator" ), ), // src/settings/inputs/uploads.js:135
|
1128 |
"Remove uploaded image" => array( null, __("Remove uploaded image", "forminator" ), ), // src/settings/inputs/uploads.js:144
|
1129 |
"Remove uploaded file" => array( null, __("Remove uploaded file", "forminator" ), ), // src/settings/inputs/uploads.js:145
|
1130 |
+
"Required Fields" => array( null, __("Required Fields", "forminator" ), ), // src/settings/inputs/wp-editor.js:175
|
1131 |
+
"Optional Fields" => array( null, __("Optional Fields", "forminator" ), ), // src/settings/inputs/wp-editor.js:185
|
1132 |
+
"Misc Data" => array( null, __("Misc Data", "forminator" ), ), // src/settings/inputs/wp-editor.js:201
|
1133 |
+
"Payment Data" => array( null, __("Payment Data", "forminator" ), ), // src/settings/inputs/wp-editor.js:226
|
1134 |
+
"Form Name" => array( null, __("Form Name", "forminator" ), ), // src/settings/inputs/wp-editor.js:255
|
1135 |
+
"All Form Fields" => array( null, __("All Form Fields", "forminator" ), ), // src/settings/inputs/wp-editor.js:265
|
1136 |
+
"All Non Empty Fields" => array( null, __("All Non Empty Fields", "forminator" ), ), // src/settings/inputs/wp-editor.js:275
|
1137 |
+
"Add form data" => array( null, __("Add form data", "forminator" ), ), // src/settings/inputs/wp-editor.js:329
|
1138 |
+
"is having" => array( null, __("is having", "forminator" ), ), // src/utils.js:863
|
1139 |
+
"is" => array( null, __("is", "forminator" ), ), // src/utils.js:866
|
1140 |
+
"is not having" => array( null, __("is not having", "forminator" ), ), // src/utils.js:870
|
1141 |
+
"is not" => array( null, __("is not", "forminator" ), ), // src/utils.js:873
|
1142 |
+
"day is" => array( null, __("day is", "forminator" ), ), // src/utils.js:877
|
1143 |
+
"day is not" => array( null, __("day is not", "forminator" ), ), // src/utils.js:879
|
1144 |
+
"month is not" => array( null, __("month is not", "forminator" ), ), // src/utils.js:881
|
1145 |
+
"month is" => array( null, __("month is", "forminator" ), ), // src/utils.js:883
|
1146 |
+
"is greater than" => array( null, __("is greater than", "forminator" ), ), // src/utils.js:885
|
1147 |
+
"is less than" => array( null, __("is less than", "forminator" ), ), // src/utils.js:887
|
1148 |
+
"contains" => array( null, __("contains", "forminator" ), ), // src/utils.js:889
|
1149 |
+
"starts with" => array( null, __("starts with", "forminator" ), ), // src/utils.js:891
|
1150 |
+
"ends with" => array( null, __("ends with", "forminator" ), ), // src/utils.js:893
|
1151 |
);
|
1152 |
return $forminator_admin_locale;
|
1153 |
/* THIS IS THE END OF THE GENERATED FILE */
|
admin/pages/dashboard-page.php
CHANGED
@@ -33,9 +33,12 @@ class Forminator_Dashboard_Page extends Forminator_Admin_Page {
|
|
33 |
*/
|
34 |
public function dashboard_create_screen() {
|
35 |
$modules = forminator_get_modules();
|
36 |
-
$this->template(
|
37 |
-
'
|
38 |
-
|
|
|
|
|
|
|
39 |
}
|
40 |
|
41 |
/**
|
33 |
*/
|
34 |
public function dashboard_create_screen() {
|
35 |
$modules = forminator_get_modules();
|
36 |
+
$this->template(
|
37 |
+
'dashboard/create-content',
|
38 |
+
array(
|
39 |
+
'modules' => $modules,
|
40 |
+
)
|
41 |
+
);
|
42 |
}
|
43 |
|
44 |
/**
|
admin/pages/entries-page.php
CHANGED
@@ -75,7 +75,7 @@ class Forminator_Entries_Page extends Forminator_Admin_Page {
|
|
75 |
'form_id' => 0,
|
76 |
);
|
77 |
|
78 |
-
$this->screen_params = array_merge( $screen_params, $_REQUEST );//
|
79 |
}
|
80 |
|
81 |
/**
|
@@ -148,7 +148,6 @@ class Forminator_Entries_Page extends Forminator_Admin_Page {
|
|
148 |
$entries_renderer->render();
|
149 |
$this->entries_page = ob_get_clean();
|
150 |
}
|
151 |
-
|
152 |
}
|
153 |
}
|
154 |
|
@@ -213,7 +212,7 @@ class Forminator_Entries_Page extends Forminator_Admin_Page {
|
|
213 |
foreach ( $forms as $form ) {
|
214 |
/**@var Forminator_Base_Form_Model $form */
|
215 |
$title = ! empty( $form->settings['formName'] ) ? $form->settings['formName'] : $form->raw->post_title;
|
216 |
-
$html
|
217 |
}
|
218 |
|
219 |
$html .= '</select>';
|
@@ -277,25 +276,31 @@ class Forminator_Entries_Page extends Forminator_Admin_Page {
|
|
277 |
* @since 1.5.4
|
278 |
*/
|
279 |
public function enqueue_entries_scripts() {
|
280 |
-
wp_enqueue_script(
|
281 |
-
|
282 |
-
|
283 |
-
|
284 |
-
|
285 |
-
|
286 |
-
|
287 |
-
|
288 |
-
|
289 |
-
|
290 |
-
|
291 |
-
|
292 |
-
|
293 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
294 |
|
295 |
// use inline script to allow hooking into this
|
296 |
$daterangepicker_ranges
|
297 |
= sprintf(
|
298 |
-
|
299 |
var forminator_entries_datepicker_ranges = {
|
300 |
'%s': [moment(), moment()],
|
301 |
'%s': [moment().subtract(1,'days'), moment().subtract(1,'days')],
|
@@ -304,13 +309,13 @@ class Forminator_Entries_Page extends Forminator_Admin_Page {
|
|
304 |
'%s': [moment().startOf('month'), moment().endOf('month')],
|
305 |
'%s': [moment().subtract(1,'month').startOf('month'), moment().subtract(1,'month').endOf('month')]
|
306 |
};",
|
307 |
-
|
308 |
-
|
309 |
-
|
310 |
-
|
311 |
-
|
312 |
-
|
313 |
-
|
314 |
|
315 |
/**
|
316 |
* Filter ranges to be used on submissions date range
|
@@ -352,7 +357,6 @@ class Forminator_Entries_Page extends Forminator_Admin_Page {
|
|
352 |
$daterangepicker_lang = apply_filters( 'forminator_l10n_daterangepicker', $daterangepicker_lang );
|
353 |
$l10n['daterangepicker'] = $daterangepicker_lang;
|
354 |
|
355 |
-
|
356 |
return $l10n;
|
357 |
}
|
358 |
|
75 |
'form_id' => 0,
|
76 |
);
|
77 |
|
78 |
+
$this->screen_params = array_merge( $screen_params, $_REQUEST );//phpcs:ignore -- data without nonce verification
|
79 |
}
|
80 |
|
81 |
/**
|
148 |
$entries_renderer->render();
|
149 |
$this->entries_page = ob_get_clean();
|
150 |
}
|
|
|
151 |
}
|
152 |
}
|
153 |
|
212 |
foreach ( $forms as $form ) {
|
213 |
/**@var Forminator_Base_Form_Model $form */
|
214 |
$title = ! empty( $form->settings['formName'] ) ? $form->settings['formName'] : $form->raw->post_title;
|
215 |
+
$html .= '<option value="' . $form->id . '" ' . selected( $form->id, $this->get_current_form_id(), false ) . '>' . $title . '</option>';
|
216 |
}
|
217 |
|
218 |
$html .= '</select>';
|
276 |
* @since 1.5.4
|
277 |
*/
|
278 |
public function enqueue_entries_scripts() {
|
279 |
+
wp_enqueue_script(
|
280 |
+
'forminator-entries-moment',
|
281 |
+
forminator_plugin_url() . 'assets/js/library/moment.min.js',
|
282 |
+
array( 'jquery' ),
|
283 |
+
'2.22.2',
|
284 |
+
true
|
285 |
+
);
|
286 |
+
wp_enqueue_script(
|
287 |
+
'forminator-entries-datepicker-range',
|
288 |
+
forminator_plugin_url() . 'assets/js/library/daterangepicker.min.js',
|
289 |
+
array( 'forminator-entries-moment' ),
|
290 |
+
'3.0.3',
|
291 |
+
true
|
292 |
+
);
|
293 |
+
wp_enqueue_style(
|
294 |
+
'forminator-entries-datepicker-range',
|
295 |
+
forminator_plugin_url() . 'assets/css/daterangepicker.min.css',
|
296 |
+
array(),
|
297 |
+
'3.0.3'
|
298 |
+
);
|
299 |
|
300 |
// use inline script to allow hooking into this
|
301 |
$daterangepicker_ranges
|
302 |
= sprintf(
|
303 |
+
"
|
304 |
var forminator_entries_datepicker_ranges = {
|
305 |
'%s': [moment(), moment()],
|
306 |
'%s': [moment().subtract(1,'days'), moment().subtract(1,'days')],
|
309 |
'%s': [moment().startOf('month'), moment().endOf('month')],
|
310 |
'%s': [moment().subtract(1,'month').startOf('month'), moment().subtract(1,'month').endOf('month')]
|
311 |
};",
|
312 |
+
__( 'Today', Forminator::DOMAIN ),
|
313 |
+
__( 'Yesterday', Forminator::DOMAIN ),
|
314 |
+
__( 'Last 7 Days', Forminator::DOMAIN ),
|
315 |
+
__( 'Last 30 Days', Forminator::DOMAIN ),
|
316 |
+
__( 'This Month', Forminator::DOMAIN ),
|
317 |
+
__( 'Last Month', Forminator::DOMAIN )
|
318 |
+
);
|
319 |
|
320 |
/**
|
321 |
* Filter ranges to be used on submissions date range
|
357 |
$daterangepicker_lang = apply_filters( 'forminator_l10n_daterangepicker', $daterangepicker_lang );
|
358 |
$l10n['daterangepicker'] = $daterangepicker_lang;
|
359 |
|
|
|
360 |
return $l10n;
|
361 |
}
|
362 |
|
admin/pages/integrations-page.php
CHANGED
@@ -43,7 +43,7 @@ class Forminator_Integrations_Page extends Forminator_Admin_Page {
|
|
43 |
|
44 |
Forminator_Addon_Admin_Ajax::get_instance()->generate_nonce();
|
45 |
$this->addon_nonce = Forminator_Addon_Admin_Ajax::get_instance()->get_nonce();
|
46 |
-
add_filter( 'forminator_data', array( $this,
|
47 |
|
48 |
$this->validate_addon_page();
|
49 |
}
|
@@ -85,7 +85,7 @@ class Forminator_Integrations_Page extends Forminator_Admin_Page {
|
|
85 |
<div class="sui-actions-right">
|
86 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
87 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#integrations" target="_blank" class="sui-button sui-button-ghost">
|
88 |
-
<i class="sui-icon-academy"></i> <?php esc_html_e(
|
89 |
</a>
|
90 |
<?php endif; ?>
|
91 |
</div>
|
43 |
|
44 |
Forminator_Addon_Admin_Ajax::get_instance()->generate_nonce();
|
45 |
$this->addon_nonce = Forminator_Addon_Admin_Ajax::get_instance()->get_nonce();
|
46 |
+
add_filter( 'forminator_data', array( $this, 'add_addons_js_data' ) );
|
47 |
|
48 |
$this->validate_addon_page();
|
49 |
}
|
85 |
<div class="sui-actions-right">
|
86 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
87 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#integrations" target="_blank" class="sui-button sui-button-ghost">
|
88 |
+
<i class="sui-icon-academy"></i> <?php esc_html_e( 'View Documentation', Forminator::DOMAIN ); ?>
|
89 |
</a>
|
90 |
<?php endif; ?>
|
91 |
</div>
|
admin/pages/settings-page.php
CHANGED
@@ -16,7 +16,7 @@ class Forminator_Settings_Page extends Forminator_Admin_Page {
|
|
16 |
* @var array
|
17 |
*/
|
18 |
private $addons_data = array();
|
19 |
-
public
|
20 |
|
21 |
public function init() {
|
22 |
$this->process_request();
|
@@ -54,8 +54,7 @@ class Forminator_Settings_Page extends Forminator_Admin_Page {
|
|
54 |
return;
|
55 |
}
|
56 |
|
57 |
-
|
58 |
-
if ( ! wp_verify_nonce( $nonce, 'forminatorSettingsRequest' ) ) {
|
59 |
return;
|
60 |
}
|
61 |
|
16 |
* @var array
|
17 |
*/
|
18 |
private $addons_data = array();
|
19 |
+
public $addons_list = array();
|
20 |
|
21 |
public function init() {
|
22 |
$this->process_request();
|
54 |
return;
|
55 |
}
|
56 |
|
57 |
+
if ( ! wp_verify_nonce( $_POST['forminatorNonce'], 'forminatorSettingsRequest' ) ) {
|
|
|
58 |
return;
|
59 |
}
|
60 |
|
admin/views/boxes/content-box.php
CHANGED
@@ -1,13 +1,13 @@
|
|
1 |
<div id="forminator-content-box-<?php echo esc_attr( $template_class ); ?>" class="wpmudev-box">
|
2 |
-
<?php if ( is_callable( $header_callback ) ): ?>
|
3 |
<div class="wpmudev-box-header">
|
4 |
<?php call_user_func( $header_callback ); ?>
|
5 |
</div><!-- end content box header -->
|
6 |
-
<?php elseif ( $this->template_exists( $template_id . '/content-header' ) ): ?>
|
7 |
<div class="wpmudev-box-header">
|
8 |
<?php $this->template( $template_id . '/content-header', array( 'title' => $title ) ); ?>
|
9 |
</div><!-- end content box header -->
|
10 |
-
<?php elseif ( $this->template_exists( $template_id . '-content-header' ) ): ?>
|
11 |
<div class="wpmudev-box-header">
|
12 |
<?php $this->template( $template_id . '-content-header', array( 'title' => $title ) ); ?>
|
13 |
</div><!-- end content box header -->
|
@@ -18,24 +18,24 @@
|
|
18 |
<?php endif; ?>
|
19 |
|
20 |
<div class="wpmudev-box-section">
|
21 |
-
<?php if ( is_callable( $main_callback ) ): ?>
|
22 |
<?php call_user_func( $main_callback ); ?>
|
23 |
-
<?php elseif ( $this->template_exists( $template_id . '/content' ) ): ?>
|
24 |
<?php $this->template( $template_id . '/content' ); ?>
|
25 |
-
<?php else: ?>
|
26 |
<?php $this->template( $template_id . '-content' ); ?>
|
27 |
<?php endif; ?>
|
28 |
</div><!-- end content box content -->
|
29 |
|
30 |
-
<?php if ( is_callable( $footer_callback ) ): ?>
|
31 |
<div class="wpmudev-box-footer">
|
32 |
<?php call_user_func( $footer_callback ); ?>
|
33 |
</div><!-- end content box footer -->
|
34 |
-
<?php elseif ( $this->template_exists( $template_id . '/content-footer' ) ): ?>
|
35 |
<div class="wpmudev-box-footer">
|
36 |
<?php $this->template( $template_id . '/content-footer' ); ?>
|
37 |
</div><!-- end content box footer -->
|
38 |
-
<?php elseif ( $this->template_exists( $template_id . '-content-footer' ) ): ?>
|
39 |
<div class="wpmudev-box-footer">
|
40 |
<?php $this->template( $template_id . '-content-footer' ); ?>
|
41 |
</div><!-- end content box footer -->
|
1 |
<div id="forminator-content-box-<?php echo esc_attr( $template_class ); ?>" class="wpmudev-box">
|
2 |
+
<?php if ( is_callable( $header_callback ) ) : ?>
|
3 |
<div class="wpmudev-box-header">
|
4 |
<?php call_user_func( $header_callback ); ?>
|
5 |
</div><!-- end content box header -->
|
6 |
+
<?php elseif ( $this->template_exists( $template_id . '/content-header' ) ) : ?>
|
7 |
<div class="wpmudev-box-header">
|
8 |
<?php $this->template( $template_id . '/content-header', array( 'title' => $title ) ); ?>
|
9 |
</div><!-- end content box header -->
|
10 |
+
<?php elseif ( $this->template_exists( $template_id . '-content-header' ) ) : ?>
|
11 |
<div class="wpmudev-box-header">
|
12 |
<?php $this->template( $template_id . '-content-header', array( 'title' => $title ) ); ?>
|
13 |
</div><!-- end content box header -->
|
18 |
<?php endif; ?>
|
19 |
|
20 |
<div class="wpmudev-box-section">
|
21 |
+
<?php if ( is_callable( $main_callback ) ) : ?>
|
22 |
<?php call_user_func( $main_callback ); ?>
|
23 |
+
<?php elseif ( $this->template_exists( $template_id . '/content' ) ) : ?>
|
24 |
<?php $this->template( $template_id . '/content' ); ?>
|
25 |
+
<?php else : ?>
|
26 |
<?php $this->template( $template_id . '-content' ); ?>
|
27 |
<?php endif; ?>
|
28 |
</div><!-- end content box content -->
|
29 |
|
30 |
+
<?php if ( is_callable( $footer_callback ) ) : ?>
|
31 |
<div class="wpmudev-box-footer">
|
32 |
<?php call_user_func( $footer_callback ); ?>
|
33 |
</div><!-- end content box footer -->
|
34 |
+
<?php elseif ( $this->template_exists( $template_id . '/content-footer' ) ) : ?>
|
35 |
<div class="wpmudev-box-footer">
|
36 |
<?php $this->template( $template_id . '/content-footer' ); ?>
|
37 |
</div><!-- end content box footer -->
|
38 |
+
<?php elseif ( $this->template_exists( $template_id . '-content-footer' ) ) : ?>
|
39 |
<div class="wpmudev-box-footer">
|
40 |
<?php $this->template( $template_id . '-content-footer' ); ?>
|
41 |
</div><!-- end content box footer -->
|
admin/views/boxes/popup-box.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
<?php $icon_close = forminator_plugin_dir() .
|
2 |
|
3 |
<div id="forminator-modal-<?php echo esc_attr( $template_class ); ?>" class="wpmudev-modal <?php echo esc_attr( $template_class ); ?>">
|
4 |
|
@@ -9,27 +9,27 @@
|
|
9 |
<div class="wpmudev-box-header">
|
10 |
|
11 |
<div class="wpmudev-header--text">
|
12 |
-
|
13 |
<h2 class="wpmudev-subtitle"><?php echo esc_html( $title ); ?></h2>
|
14 |
|
15 |
</div>
|
16 |
|
17 |
<div class="wpmudev-header--action">
|
18 |
-
|
19 |
<button class="wpmudev-box--action"><?php require $icon_close; ?></button>
|
20 |
|
21 |
-
<button class="wpmudev-sr-only"><?php esc_html_e(
|
22 |
|
23 |
</div>
|
24 |
|
25 |
</div>
|
26 |
|
27 |
<div class="wpmudev-box-body">
|
28 |
-
<?php if ( is_callable( $main_callback ) ): ?>
|
29 |
<?php call_user_func( $main_callback ); ?>
|
30 |
-
<?php elseif ( $this->template_exists( $template_id . '/content' ) ): ?>
|
31 |
<?php $this->template( $template_id . '/content' ); ?>
|
32 |
-
<?php else: ?>
|
33 |
<?php $this->template( $template_id . '-content' ); ?>
|
34 |
<?php endif; ?>
|
35 |
</div>
|
1 |
+
<?php $icon_close = forminator_plugin_dir() . 'assets/icons/admin-icons/close.php'; ?>
|
2 |
|
3 |
<div id="forminator-modal-<?php echo esc_attr( $template_class ); ?>" class="wpmudev-modal <?php echo esc_attr( $template_class ); ?>">
|
4 |
|
9 |
<div class="wpmudev-box-header">
|
10 |
|
11 |
<div class="wpmudev-header--text">
|
12 |
+
|
13 |
<h2 class="wpmudev-subtitle"><?php echo esc_html( $title ); ?></h2>
|
14 |
|
15 |
</div>
|
16 |
|
17 |
<div class="wpmudev-header--action">
|
18 |
+
|
19 |
<button class="wpmudev-box--action"><?php require $icon_close; ?></button>
|
20 |
|
21 |
+
<button class="wpmudev-sr-only"><?php esc_html_e( 'Close modal', Forminator::DOMAIN ); ?></button>
|
22 |
|
23 |
</div>
|
24 |
|
25 |
</div>
|
26 |
|
27 |
<div class="wpmudev-box-body">
|
28 |
+
<?php if ( is_callable( $main_callback ) ) : ?>
|
29 |
<?php call_user_func( $main_callback ); ?>
|
30 |
+
<?php elseif ( $this->template_exists( $template_id . '/content' ) ) : ?>
|
31 |
<?php $this->template( $template_id . '/content' ); ?>
|
32 |
+
<?php else : ?>
|
33 |
<?php $this->template( $template_id . '-content' ); ?>
|
34 |
<?php endif; ?>
|
35 |
</div>
|
admin/views/custom-form/entries/content.php
CHANGED
@@ -11,9 +11,11 @@ if ( $this->error_message() ) : ?>
|
|
11 |
|
12 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $this->error_message() ); ?></p></span>
|
13 |
|
14 |
-
<?php
|
|
|
15 |
|
16 |
-
if ( $this->total_entries() > 0 ) :
|
|
|
17 |
|
18 |
<form method="GET" class="forminator-entries-actions">
|
19 |
|
@@ -79,10 +81,12 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
79 |
|
80 |
<?php if ( isset( $this->filters['search'] ) ) : ?>
|
81 |
<div class="sui-active-filter">
|
82 |
-
<?php
|
|
|
83 |
esc_html__( 'Keyword: %s', Forminator::DOMAIN ),
|
84 |
esc_html( $this->filters['search'] )
|
85 |
-
);
|
|
|
86 |
<button class="sui-active-filter-remove" type="submit" name="search" value="">
|
87 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Remove this keyword', Forminator::DOMAIN ); ?></span>
|
88 |
</button>
|
@@ -91,10 +95,12 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
91 |
|
92 |
<?php if ( isset( $this->filters['min_id'] ) ) : ?>
|
93 |
<div class="sui-active-filter">
|
94 |
-
<?php
|
|
|
95 |
esc_html__( 'From ID: %s', Forminator::DOMAIN ),
|
96 |
esc_html( $this->filters['min_id'] )
|
97 |
-
);
|
|
|
98 |
<button class="sui-active-filter-remove" type="submit" name="min_id" value="">
|
99 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Remove this keyword', Forminator::DOMAIN ); ?></span>
|
100 |
</button>
|
@@ -103,11 +109,13 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
103 |
|
104 |
<?php if ( isset( $this->filters['max_id'] ) ) : ?>
|
105 |
<div class="sui-active-filter">
|
106 |
-
<?php
|
|
|
107 |
esc_html__( 'To ID: %s', Forminator::DOMAIN ),
|
108 |
esc_html( $this->filters['max_id'] )
|
109 |
-
);
|
110 |
-
|
|
|
111 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Remove this keyword', Forminator::DOMAIN ); ?></span>
|
112 |
</button>
|
113 |
</div>
|
@@ -115,11 +123,13 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
115 |
|
116 |
<?php if ( isset( $this->filters['date_created'][0] ) || isset( $this->filters['date_created'][1] ) ) : ?>
|
117 |
<div class="sui-active-filter">
|
118 |
-
<?php
|
|
|
119 |
esc_html__( 'Submission Date Range: %1$s to %2$s', Forminator::DOMAIN ),
|
120 |
esc_html( $this->filters['date_created'][0] ),
|
121 |
esc_html( $this->filters['date_created'][1] )
|
122 |
-
);
|
|
|
123 |
<button class="sui-active-filter-remove" type="submit" name="date_range" value="">
|
124 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Remove this keyword', Forminator::DOMAIN ); ?></span>
|
125 |
</button>
|
@@ -134,7 +144,8 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
134 |
esc_html_e( 'Descending', Forminator::DOMAIN );
|
135 |
} else {
|
136 |
esc_html_e( 'Ascending', Forminator::DOMAIN );
|
137 |
-
}
|
|
|
138 |
</div>
|
139 |
|
140 |
</div>
|
@@ -150,6 +161,7 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
150 |
<tbody>
|
151 |
|
152 |
<?php
|
|
|
153 |
foreach ( $this->entries_iterator() as $entries ) {
|
154 |
|
155 |
$entry_id = $entries['id'];
|
@@ -160,13 +172,16 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
160 |
|
161 |
$detail = $entries['detail'];
|
162 |
$detail_items = $detail['items'];
|
|
|
|
|
163 |
?>
|
164 |
|
165 |
-
<tr class="sui-accordion-item" data-entry-id="<?php echo esc_attr( $db_entry_id ); ?>">
|
166 |
|
167 |
<?php foreach ( $summary_items as $key => $summary_item ) { ?>
|
168 |
|
169 |
-
<?php
|
|
|
170 |
|
171 |
echo '<td>';
|
172 |
|
@@ -190,7 +205,10 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
190 |
|
191 |
echo '<span aria-hidden="true"></span>';
|
192 |
|
193 |
-
echo '<span class="sui-screen-reader-text">' . sprintf(
|
|
|
|
|
|
|
194 |
|
195 |
echo '</label>';
|
196 |
|
@@ -210,20 +228,26 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
210 |
|
211 |
echo '</td>';
|
212 |
|
213 |
-
endif;
|
|
|
214 |
|
215 |
<?php } ?>
|
216 |
|
217 |
-
<?php
|
|
|
218 |
|
219 |
echo '<td>';
|
220 |
-
echo '' . sprintf(
|
|
|
|
|
|
|
221 |
echo '<span class="sui-accordion-open-indicator">';
|
222 |
echo '<i class="sui-icon-chevron-down"></i>';
|
223 |
echo '</span>';
|
224 |
echo '</td>';
|
225 |
|
226 |
-
}
|
|
|
227 |
|
228 |
</tr>
|
229 |
|
@@ -243,9 +267,11 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
243 |
|
244 |
<div class="sui-box-settings-slim-row sui-sm">
|
245 |
|
246 |
-
<?php
|
|
|
247 |
|
248 |
-
if ( ! empty( $sub_entries ) ) {
|
|
|
249 |
|
250 |
<div class="sui-box-settings-col-2">
|
251 |
|
@@ -272,8 +298,8 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
272 |
echo '<th>' . esc_html( $sub_entry['label'] ) . '</th>';
|
273 |
|
274 |
}
|
275 |
-
|
276 |
-
|
277 |
|
278 |
</tr>
|
279 |
|
@@ -291,15 +317,15 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
291 |
|
292 |
if ( $sub_key === $end ) {
|
293 |
|
294 |
-
echo '<td colspan="2" style="padding-top: 5px; padding-bottom: 5px;">' . ( $sub_entry['value'] ) . '</td>';
|
295 |
|
296 |
} else {
|
297 |
|
298 |
echo '<td style="padding-top: 5px; padding-bottom: 5px;">' . esc_html( $sub_entry['value'] ) . '</td>';
|
299 |
|
300 |
}
|
301 |
-
|
302 |
-
|
303 |
|
304 |
</tr>
|
305 |
|
@@ -309,9 +335,10 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
309 |
|
310 |
</div>
|
311 |
|
312 |
-
|
313 |
-
|
314 |
-
} else {
|
|
|
315 |
|
316 |
<div class="sui-box-settings-col-1">
|
317 |
<span class="sui-settings-label sui-sm"><?php echo esc_html( $detail_item['label'] ); ?></span>
|
@@ -321,7 +348,7 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
321 |
|
322 |
<?php if ( empty( $sub_entries ) ) { ?>
|
323 |
|
324 |
-
<span class="sui-description"><?php echo ( $detail_item['value'] )
|
325 |
|
326 |
<?php } else { ?>
|
327 |
|
@@ -329,7 +356,7 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
329 |
|
330 |
<div class="sui-form-field">
|
331 |
<span class="sui-settings-label"><?php echo esc_html( $sub_entry['label'] ); ?></span>
|
332 |
-
<span class="sui-description"><?php echo ( $sub_entry['value'] )
|
333 |
</div>
|
334 |
|
335 |
<?php } ?>
|
@@ -351,15 +378,47 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
351 |
<button
|
352 |
type="button"
|
353 |
class="sui-button sui-button-ghost sui-button-red wpmudev-open-modal"
|
354 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
355 |
data-modal-title="<?php esc_attr_e( 'Delete Submission', Forminator::DOMAIN ); ?>"
|
356 |
data-modal-content="<?php esc_attr_e( 'Are you sure you wish to permanently delete this submission?', Forminator::DOMAIN ); ?>"
|
357 |
-
data-
|
358 |
-
data-nonce="<?php echo wp_create_nonce( 'forminatorCustomFormEntries' ); // WPCS: XSS ok. ?>"
|
359 |
>
|
360 |
-
<i class="sui-icon-trash" aria-hidden="true"></i> <?php
|
361 |
</button>
|
362 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
363 |
</div>
|
364 |
|
365 |
</div>
|
@@ -392,19 +451,19 @@ if ( $this->total_entries() > 0 ) : ?>
|
|
392 |
|
393 |
<div class="sui-box sui-message">
|
394 |
|
395 |
-
<?php if ( forminator_is_show_branding() ): ?>
|
396 |
<img src="<?php echo esc_url( forminator_plugin_url() . 'assets/img/forminator-submissions.png' ); ?>"
|
397 |
-
|
398 |
-
|
399 |
-
|
400 |
-
|
401 |
<?php endif; ?>
|
402 |
|
403 |
<div class="sui-message-content">
|
404 |
|
405 |
-
<h2><?php echo forminator_get_form_name( $this->form_id, 'custom_form' )
|
406 |
|
407 |
-
<p><?php esc_html_e(
|
408 |
|
409 |
</div>
|
410 |
|
11 |
|
12 |
<span class="sui-notice sui-notice-error"><p><?php echo esc_html( $this->error_message() ); ?></p></span>
|
13 |
|
14 |
+
<?php
|
15 |
+
endif;
|
16 |
|
17 |
+
if ( $this->total_entries() > 0 ) :
|
18 |
+
?>
|
19 |
|
20 |
<form method="GET" class="forminator-entries-actions">
|
21 |
|
81 |
|
82 |
<?php if ( isset( $this->filters['search'] ) ) : ?>
|
83 |
<div class="sui-active-filter">
|
84 |
+
<?php
|
85 |
+
printf(/* translators: ... */
|
86 |
esc_html__( 'Keyword: %s', Forminator::DOMAIN ),
|
87 |
esc_html( $this->filters['search'] )
|
88 |
+
);
|
89 |
+
?>
|
90 |
<button class="sui-active-filter-remove" type="submit" name="search" value="">
|
91 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Remove this keyword', Forminator::DOMAIN ); ?></span>
|
92 |
</button>
|
95 |
|
96 |
<?php if ( isset( $this->filters['min_id'] ) ) : ?>
|
97 |
<div class="sui-active-filter">
|
98 |
+
<?php
|
99 |
+
printf(/* translators: ... */
|
100 |
esc_html__( 'From ID: %s', Forminator::DOMAIN ),
|
101 |
esc_html( $this->filters['min_id'] )
|
102 |
+
);
|
103 |
+
?>
|
104 |
<button class="sui-active-filter-remove" type="submit" name="min_id" value="">
|
105 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Remove this keyword', Forminator::DOMAIN ); ?></span>
|
106 |
</button>
|
109 |
|
110 |
<?php if ( isset( $this->filters['max_id'] ) ) : ?>
|
111 |
<div class="sui-active-filter">
|
112 |
+
<?php
|
113 |
+
printf(/* translators: ... */
|
114 |
esc_html__( 'To ID: %s', Forminator::DOMAIN ),
|
115 |
esc_html( $this->filters['max_id'] )
|
116 |
+
);
|
117 |
+
?>
|
118 |
+
<button class="sui-active-filter-remove" type="submit" name="max_id" value="">
|
119 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Remove this keyword', Forminator::DOMAIN ); ?></span>
|
120 |
</button>
|
121 |
</div>
|
123 |
|
124 |
<?php if ( isset( $this->filters['date_created'][0] ) || isset( $this->filters['date_created'][1] ) ) : ?>
|
125 |
<div class="sui-active-filter">
|
126 |
+
<?php
|
127 |
+
printf(/* translators: ... */
|
128 |
esc_html__( 'Submission Date Range: %1$s to %2$s', Forminator::DOMAIN ),
|
129 |
esc_html( $this->filters['date_created'][0] ),
|
130 |
esc_html( $this->filters['date_created'][1] )
|
131 |
+
);
|
132 |
+
?>
|
133 |
<button class="sui-active-filter-remove" type="submit" name="date_range" value="">
|
134 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Remove this keyword', Forminator::DOMAIN ); ?></span>
|
135 |
</button>
|
144 |
esc_html_e( 'Descending', Forminator::DOMAIN );
|
145 |
} else {
|
146 |
esc_html_e( 'Ascending', Forminator::DOMAIN );
|
147 |
+
}
|
148 |
+
?>
|
149 |
</div>
|
150 |
|
151 |
</div>
|
161 |
<tbody>
|
162 |
|
163 |
<?php
|
164 |
+
$url_entry_id = ( isset( $_GET['entry_id'] ) && !empty( $_GET['entry_id'] ) ) ? (int) sanitize_text_field( $_GET['entry_id'] ) : 0;//phpcs:ignore
|
165 |
foreach ( $this->entries_iterator() as $entries ) {
|
166 |
|
167 |
$entry_id = $entries['id'];
|
172 |
|
173 |
$detail = $entries['detail'];
|
174 |
$detail_items = $detail['items'];
|
175 |
+
//Open entry tab by received submission link
|
176 |
+
$cls_open_tab = $url_entry_id === (int)$db_entry_id ? 'sui-accordion-item--open' : '';
|
177 |
?>
|
178 |
|
179 |
+
<tr class="sui-accordion-item <?php echo esc_attr( $cls_open_tab ); ?>" data-entry-id="<?php echo esc_attr( $db_entry_id ); ?>">
|
180 |
|
181 |
<?php foreach ( $summary_items as $key => $summary_item ) { ?>
|
182 |
|
183 |
+
<?php
|
184 |
+
if ( ! $summary['num_fields_left'] && ( count( $summary_items ) - 1 ) === $key ) :
|
185 |
|
186 |
echo '<td>';
|
187 |
|
205 |
|
206 |
echo '<span aria-hidden="true"></span>';
|
207 |
|
208 |
+
echo '<span class="sui-screen-reader-text">' . sprintf(/* translators: ... */
|
209 |
+
esc_html__( 'Select entry number %s', Forminator::DOMAIN ),
|
210 |
+
esc_html( $db_entry_id )
|
211 |
+
) . '</span>';
|
212 |
|
213 |
echo '</label>';
|
214 |
|
228 |
|
229 |
echo '</td>';
|
230 |
|
231 |
+
endif;
|
232 |
+
?>
|
233 |
|
234 |
<?php } ?>
|
235 |
|
236 |
+
<?php
|
237 |
+
if ( $summary['num_fields_left'] ) {
|
238 |
|
239 |
echo '<td>';
|
240 |
+
echo '' . sprintf(/* translators: ... */
|
241 |
+
esc_html__( '+ %s other fields', Forminator::DOMAIN ),
|
242 |
+
esc_html( $summary['num_fields_left'] )
|
243 |
+
) . '';
|
244 |
echo '<span class="sui-accordion-open-indicator">';
|
245 |
echo '<i class="sui-icon-chevron-down"></i>';
|
246 |
echo '</span>';
|
247 |
echo '</td>';
|
248 |
|
249 |
+
}
|
250 |
+
?>
|
251 |
|
252 |
</tr>
|
253 |
|
267 |
|
268 |
<div class="sui-box-settings-slim-row sui-sm">
|
269 |
|
270 |
+
<?php
|
271 |
+
if ( isset( $detail_item['type'] ) && ( 'stripe' === $detail_item['type'] || 'paypal' === $detail_item['type'] ) ) {
|
272 |
|
273 |
+
if ( ! empty( $sub_entries ) ) {
|
274 |
+
?>
|
275 |
|
276 |
<div class="sui-box-settings-col-2">
|
277 |
|
298 |
echo '<th>' . esc_html( $sub_entry['label'] ) . '</th>';
|
299 |
|
300 |
}
|
301 |
+
}
|
302 |
+
?>
|
303 |
|
304 |
</tr>
|
305 |
|
317 |
|
318 |
if ( $sub_key === $end ) {
|
319 |
|
320 |
+
echo '<td colspan="2" style="padding-top: 5px; padding-bottom: 5px;">' . esc_html( $sub_entry['value'] ) . '</td>';
|
321 |
|
322 |
} else {
|
323 |
|
324 |
echo '<td style="padding-top: 5px; padding-bottom: 5px;">' . esc_html( $sub_entry['value'] ) . '</td>';
|
325 |
|
326 |
}
|
327 |
+
}
|
328 |
+
?>
|
329 |
|
330 |
</tr>
|
331 |
|
335 |
|
336 |
</div>
|
337 |
|
338 |
+
<?php
|
339 |
+
}
|
340 |
+
} else {
|
341 |
+
?>
|
342 |
|
343 |
<div class="sui-box-settings-col-1">
|
344 |
<span class="sui-settings-label sui-sm"><?php echo esc_html( $detail_item['label'] ); ?></span>
|
348 |
|
349 |
<?php if ( empty( $sub_entries ) ) { ?>
|
350 |
|
351 |
+
<span class="sui-description"><?php echo ( $detail_item['value'] );//phpcs:ignore -- html output intended ?></span>
|
352 |
|
353 |
<?php } else { ?>
|
354 |
|
356 |
|
357 |
<div class="sui-form-field">
|
358 |
<span class="sui-settings-label"><?php echo esc_html( $sub_entry['label'] ); ?></span>
|
359 |
+
<span class="sui-description"><?php echo ( $sub_entry['value'] );//phpcs:ignore -- html output intended ?></span>
|
360 |
</div>
|
361 |
|
362 |
<?php } ?>
|
378 |
<button
|
379 |
type="button"
|
380 |
class="sui-button sui-button-ghost sui-button-red wpmudev-open-modal"
|
381 |
+
<?php if ( isset( $entries['activation_key'] ) ) {
|
382 |
+
$button_title = esc_html( 'Delete Submission & User', Forminator::DOMAIN );
|
383 |
+
$is_activation_key = true;
|
384 |
+
?>
|
385 |
+
data-activation-key="<?php echo $entries['activation_key']; ?>"
|
386 |
+
data-modal="delete-unconfirmed-user-module"
|
387 |
+
data-entry-id="<?php echo esc_attr( $db_entry_id ); ?>"
|
388 |
+
data-form-id="<?php echo esc_attr( $this->model->id ); ?>"
|
389 |
+
<?php } else {
|
390 |
+
$button_title = esc_html( 'Delete', Forminator::DOMAIN );
|
391 |
+
$is_activation_key = false;
|
392 |
+
?>
|
393 |
+
data-modal="delete-module"
|
394 |
+
data-form-id="<?php echo esc_attr( $db_entry_id ); ?>"
|
395 |
+
<?php } ?>
|
396 |
data-modal-title="<?php esc_attr_e( 'Delete Submission', Forminator::DOMAIN ); ?>"
|
397 |
data-modal-content="<?php esc_attr_e( 'Are you sure you wish to permanently delete this submission?', Forminator::DOMAIN ); ?>"
|
398 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminatorCustomFormEntries' ) ); ?>"
|
|
|
399 |
>
|
400 |
+
<i class="sui-icon-trash" aria-hidden="true"></i> <?php echo $button_title; ?>
|
401 |
</button>
|
402 |
|
403 |
+
<?php if ( isset( $entries['activation_method'] ) && 'manual' === $entries['activation_method'] && $is_activation_key ) { ?>
|
404 |
+
|
405 |
+
<div class="sui-actions-right">
|
406 |
+
<button
|
407 |
+
type="button"
|
408 |
+
class="sui-button wpmudev-open-modal"
|
409 |
+
data-modal="approve-user-module"
|
410 |
+
data-modal-title="<?php esc_attr_e( 'Approve User', Forminator::DOMAIN ); ?>"
|
411 |
+
data-modal-content="<?php esc_attr_e( 'Are you sure you want to approve and activate this user?', Forminator::DOMAIN ); ?>"
|
412 |
+
data-form-id="<?php echo esc_attr( $db_entry_id ); ?>"
|
413 |
+
data-activation-key="<?php echo esc_attr( $entries['activation_key'] ); ?>"
|
414 |
+
data-nonce="<?php echo wp_create_nonce( 'forminatorCustomFormEntries' ); // WPCS: XSS ok. ?>"
|
415 |
+
>
|
416 |
+
<?php esc_html_e( 'Approve User', Forminator::DOMAIN ); ?>
|
417 |
+
</button>
|
418 |
+
</div>
|
419 |
+
|
420 |
+
<?php } ?>
|
421 |
+
|
422 |
</div>
|
423 |
|
424 |
</div>
|
451 |
|
452 |
<div class="sui-box sui-message">
|
453 |
|
454 |
+
<?php if ( forminator_is_show_branding() ) : ?>
|
455 |
<img src="<?php echo esc_url( forminator_plugin_url() . 'assets/img/forminator-submissions.png' ); ?>"
|
456 |
+
srcset="<?php echo esc_url( forminator_plugin_url() . 'assets/img/forminator-submissions.png' ); ?> 1x, <?php echo esc_url( forminator_plugin_url() . 'assets/img/forminator-submissions@2x.png' ); ?> 2x"
|
457 |
+
alt="<?php esc_html_e( 'Forminator', Forminator::DOMAIN ); ?>"
|
458 |
+
class="sui-image"
|
459 |
+
aria-hidden="true"/>
|
460 |
<?php endif; ?>
|
461 |
|
462 |
<div class="sui-message-content">
|
463 |
|
464 |
+
<h2><?php echo forminator_get_form_name( $this->form_id, 'custom_form' );// phpcs:ignore ?></h2>
|
465 |
|
466 |
+
<p><?php esc_html_e( 'You haven’t received any submissions for this form yet. When you do, you’ll be able to view all the data here.', Forminator::DOMAIN ); ?></p>
|
467 |
|
468 |
</div>
|
469 |
|
admin/views/custom-form/entries/filter.php
CHANGED
@@ -8,15 +8,15 @@ $is_filter_enabled = $this->is_filter_box_enabled();
|
|
8 |
$date_range = '';
|
9 |
$date_created = isset( $this->filters['date_created'] ) ? $this->filters['date_created'] : '';
|
10 |
if ( is_array( $date_created ) && isset( $date_created[0] ) && isset( $date_created[1] ) ) {
|
11 |
-
$date_created[0] = date( 'm/d/Y', strtotime($date_created[0]) )
|
12 |
-
$date_created[1] = date( 'm/d/Y', strtotime($date_created[1]) )
|
13 |
-
$date_range
|
14 |
}
|
15 |
-
$
|
16 |
-
$min_id
|
17 |
-
$max_id
|
18 |
-
$order_by
|
19 |
-
$
|
20 |
?>
|
21 |
<div class="sui-pagination-filter <?php echo( $is_filter_enabled ? 'sui-open' : '' ); ?>">
|
22 |
|
@@ -31,12 +31,12 @@ $order = isset( $this->order['order'] ) ? $this->order['order'] : '';
|
|
31 |
<div class="sui-date">
|
32 |
<i class="sui-icon-calendar" aria-hidden="true"></i>
|
33 |
<input type="text"
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
</div>
|
41 |
|
42 |
</div>
|
@@ -47,12 +47,12 @@ $order = isset( $this->order['order'] ) ? $this->order['order'] : '';
|
|
47 |
|
48 |
<label for="forminator-forms-filter--from-id" class="sui-label"><?php esc_html_e( 'From ID', Forminator::DOMAIN ); ?></label>
|
49 |
<input type="number"
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
|
57 |
</div>
|
58 |
|
@@ -60,12 +60,12 @@ $order = isset( $this->order['order'] ) ? $this->order['order'] : '';
|
|
60 |
|
61 |
<label for="forminator-forms-filter--to-id" class="sui-label"><?php esc_html_e( 'To ID', Forminator::DOMAIN ); ?></label>
|
62 |
<input type="number"
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
|
70 |
</div>
|
71 |
|
@@ -82,11 +82,11 @@ $order = isset( $this->order['order'] ) ? $this->order['order'] : '';
|
|
82 |
<div class="sui-control-with-icon">
|
83 |
<i class="sui-icon-magnifying-glass-search" aria-hidden="true"></i>
|
84 |
<input type="text"
|
85 |
-
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
</div>
|
91 |
|
92 |
</div>
|
@@ -107,8 +107,8 @@ $order = isset( $this->order['order'] ) ? $this->order['order'] : '';
|
|
107 |
|
108 |
<label for="forminator-forms-filter--sort-order" class="sui-label"><?php esc_html_e( 'Sort Order', Forminator::DOMAIN ); ?></label>
|
109 |
<select id="forminator-forms-filter--sort-order" name="order">
|
110 |
-
<option value="DESC" <?php selected( 'DESC', $
|
111 |
-
<option value="ASC" <?php selected( 'ASC', $
|
112 |
</select>
|
113 |
|
114 |
</div>
|
@@ -123,19 +123,19 @@ $order = isset( $this->order['order'] ) ? $this->order['order'] : '';
|
|
123 |
|
124 |
<div class="sui-tabs-menu">
|
125 |
|
126 |
-
<label for="forminator-forms-filter--display-false" class="sui-tab-item <?php echo ($this->fields_is_filtered ? '' : 'active'); ?>" data-tab-index="1">
|
127 |
<input type="radio"
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
<?php esc_html_e( 'All', Forminator::DOMAIN ); ?>
|
132 |
</label>
|
133 |
|
134 |
-
<label for="forminator-forms-filter--display-true" class="sui-tab-item <?php echo ($this->fields_is_filtered ? 'active' : ''); ?>" data-tab-index="2">
|
135 |
<input type="radio"
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
<?php esc_html_e( 'Specified Fields', Forminator::DOMAIN ); ?>
|
140 |
</label>
|
141 |
|
@@ -143,15 +143,16 @@ $order = isset( $this->order['order'] ) ? $this->order['order'] : '';
|
|
143 |
|
144 |
<div class="sui-tabs-content">
|
145 |
|
146 |
-
<div class="sui-tab-content <?php echo ($this->fields_is_filtered ? '' : 'active'); ?>" data-tab-index="1">
|
147 |
</div>
|
148 |
-
<div class="sui-tab-content sui-tab-boxed <?php echo ($this->fields_is_filtered ? 'active' : ''); ?>" data-tab-index="2">
|
149 |
|
150 |
-
<fieldset class="forminator-entries-fields-filter" <?php echo ($this->fields_is_filtered ? '' : 'disabled=disabled'); ?>>
|
151 |
<?php
|
152 |
$ignored_field_types = Forminator_Form_Entry_Model::ignored_fields();
|
|
|
153 |
|
154 |
-
foreach ( $
|
155 |
|
156 |
$label = $field->__get( 'field_label' );
|
157 |
$field_type = $field->__get( 'type' );
|
@@ -168,13 +169,14 @@ $order = isset( $this->order['order'] ) ? $this->order['order'] : '';
|
|
168 |
$label = ucfirst( $field_type );
|
169 |
}
|
170 |
|
171 |
-
$slug = isset( $field->slug ) ? $field->slug : sanitize_title( $label );
|
|
|
172 |
|
173 |
<label class="sui-checkbox" for="<?php echo esc_attr( $slug ); ?>-enable">
|
174 |
<input type="checkbox"
|
175 |
-
|
176 |
-
|
177 |
-
|
178 |
<?php $this->checked_field( $slug ); ?> />
|
179 |
<span aria-hidden="true"></span>
|
180 |
<span class="sui-description"><?php echo esc_html( $label ); ?></span>
|
8 |
$date_range = '';
|
9 |
$date_created = isset( $this->filters['date_created'] ) ? $this->filters['date_created'] : '';
|
10 |
if ( is_array( $date_created ) && isset( $date_created[0] ) && isset( $date_created[1] ) ) {
|
11 |
+
$date_created[0] = date( 'm/d/Y', strtotime( $date_created[0] ) );// phpcs:ignore
|
12 |
+
$date_created[1] = date( 'm/d/Y', strtotime( $date_created[1] ) );// phpcs:ignore
|
13 |
+
$date_range = implode( ' - ', $date_created );
|
14 |
}
|
15 |
+
$search_filter = isset( $this->filters['search'] ) ? $this->filters['search'] : '';
|
16 |
+
$min_id = isset( $this->filters['min_id'] ) ? $this->filters['min_id'] : '';
|
17 |
+
$max_id = isset( $this->filters['max_id'] ) ? $this->filters['max_id'] : '';
|
18 |
+
$order_by = isset( $this->order['order_by'] ) ? $this->order['order_by'] : '';
|
19 |
+
$order_filter = isset( $this->order['order'] ) ? $this->order['order'] : '';
|
20 |
?>
|
21 |
<div class="sui-pagination-filter <?php echo( $is_filter_enabled ? 'sui-open' : '' ); ?>">
|
22 |
|
31 |
<div class="sui-date">
|
32 |
<i class="sui-icon-calendar" aria-hidden="true"></i>
|
33 |
<input type="text"
|
34 |
+
placeholder="<?php esc_html_e( 'Pick a date range', Forminator::DOMAIN ); ?>"
|
35 |
+
id="forminator-forms-filter--by-date"
|
36 |
+
name="date_range"
|
37 |
+
autocomplete="off"
|
38 |
+
value="<?php echo esc_attr( $date_range ); ?>"
|
39 |
+
class="sui-form-control forminator-entries-filter-date"/>
|
40 |
</div>
|
41 |
|
42 |
</div>
|
47 |
|
48 |
<label for="forminator-forms-filter--from-id" class="sui-label"><?php esc_html_e( 'From ID', Forminator::DOMAIN ); ?></label>
|
49 |
<input type="number"
|
50 |
+
name="min_id"
|
51 |
+
min="0"
|
52 |
+
value="<?php echo esc_attr( $min_id ); ?>"
|
53 |
+
placeholder="<?php esc_html_e( 'E.g. 100', Forminator::DOMAIN ); ?>"
|
54 |
+
id="forminator-forms-filter--from-id"
|
55 |
+
class="sui-form-control"/>
|
56 |
|
57 |
</div>
|
58 |
|
60 |
|
61 |
<label for="forminator-forms-filter--to-id" class="sui-label"><?php esc_html_e( 'To ID', Forminator::DOMAIN ); ?></label>
|
62 |
<input type="number"
|
63 |
+
name="max_id"
|
64 |
+
min="0"
|
65 |
+
value="<?php echo esc_attr( $max_id ); ?>"
|
66 |
+
placeholder="<?php esc_html_e( 'E.g. 100', Forminator::DOMAIN ); ?>"
|
67 |
+
id="forminator-forms-filte--to-id"
|
68 |
+
class="sui-form-control"/>
|
69 |
|
70 |
</div>
|
71 |
|
82 |
<div class="sui-control-with-icon">
|
83 |
<i class="sui-icon-magnifying-glass-search" aria-hidden="true"></i>
|
84 |
<input type="text"
|
85 |
+
name="search"
|
86 |
+
value="<?php echo esc_attr( $search_filter ); ?>"
|
87 |
+
placeholder="<?php esc_html_e( 'E.g. search', Forminator::DOMAIN ); ?>"
|
88 |
+
id="forminator-forms-filter--by-keyword"
|
89 |
+
class="sui-form-control"/>
|
90 |
</div>
|
91 |
|
92 |
</div>
|
107 |
|
108 |
<label for="forminator-forms-filter--sort-order" class="sui-label"><?php esc_html_e( 'Sort Order', Forminator::DOMAIN ); ?></label>
|
109 |
<select id="forminator-forms-filter--sort-order" name="order">
|
110 |
+
<option value="DESC" <?php selected( 'DESC', $order_filter ); ?>><?php esc_html_e( 'Descending', Forminator::DOMAIN ); ?></option>
|
111 |
+
<option value="ASC" <?php selected( 'ASC', $order_filter ); ?>><?php esc_html_e( 'Ascending', Forminator::DOMAIN ); ?></option>
|
112 |
</select>
|
113 |
|
114 |
</div>
|
123 |
|
124 |
<div class="sui-tabs-menu">
|
125 |
|
126 |
+
<label for="forminator-forms-filter--display-false" class="sui-tab-item <?php echo ( $this->fields_is_filtered ? '' : 'active' ); ?>" data-tab-index="1">
|
127 |
<input type="radio"
|
128 |
+
name="fields_select"
|
129 |
+
id="forminator-forms-filter--display-false"
|
130 |
+
value="false"/>
|
131 |
<?php esc_html_e( 'All', Forminator::DOMAIN ); ?>
|
132 |
</label>
|
133 |
|
134 |
+
<label for="forminator-forms-filter--display-true" class="sui-tab-item <?php echo ( $this->fields_is_filtered ? 'active' : '' ); ?>" data-tab-index="2">
|
135 |
<input type="radio"
|
136 |
+
name="fields_select"
|
137 |
+
id="forminator-forms-filter--display-true"
|
138 |
+
value="true"/>
|
139 |
<?php esc_html_e( 'Specified Fields', Forminator::DOMAIN ); ?>
|
140 |
</label>
|
141 |
|
143 |
|
144 |
<div class="sui-tabs-content">
|
145 |
|
146 |
+
<div class="sui-tab-content <?php echo ( $this->fields_is_filtered ? '' : 'active' ); ?>" data-tab-index="1">
|
147 |
</div>
|
148 |
+
<div class="sui-tab-content sui-tab-boxed <?php echo ( $this->fields_is_filtered ? 'active' : '' ); ?>" data-tab-index="2">
|
149 |
|
150 |
+
<fieldset class="forminator-entries-fields-filter" <?php echo ( $this->fields_is_filtered ? '' : 'disabled=disabled' ); ?>>
|
151 |
<?php
|
152 |
$ignored_field_types = Forminator_Form_Entry_Model::ignored_fields();
|
153 |
+
$fields = apply_filters( 'forminator_custom_form_filter_fields', $this->get_fields() );
|
154 |
|
155 |
+
foreach ( $fields as $field ) {
|
156 |
|
157 |
$label = $field->__get( 'field_label' );
|
158 |
$field_type = $field->__get( 'type' );
|
169 |
$label = ucfirst( $field_type );
|
170 |
}
|
171 |
|
172 |
+
$slug = isset( $field->slug ) ? $field->slug : sanitize_title( $label );
|
173 |
+
?>
|
174 |
|
175 |
<label class="sui-checkbox" for="<?php echo esc_attr( $slug ); ?>-enable">
|
176 |
<input type="checkbox"
|
177 |
+
name="field[]"
|
178 |
+
value="<?php echo esc_attr( $slug ); ?>"
|
179 |
+
id="<?php echo esc_attr( $slug ); ?>-enable"
|
180 |
<?php $this->checked_field( $slug ); ?> />
|
181 |
<span aria-hidden="true"></span>
|
182 |
<span class="sui-description"><?php echo esc_html( $label ); ?></span>
|
admin/views/custom-form/entries/header.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
-
<h1 class="sui-header-title"><?php esc_html_e(
|
2 |
|
3 |
<div class="sui-actions-right">
|
4 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
5 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#submissions" target="_blank" class="sui-button sui-button-ghost">
|
6 |
-
<i class="sui-icon-academy"></i> <?php esc_html_e(
|
7 |
</a>
|
8 |
<?php endif; ?>
|
9 |
</div>
|
1 |
+
<h1 class="sui-header-title"><?php esc_html_e( 'Submissions', Forminator::DOMAIN ); ?></h1>
|
2 |
|
3 |
<div class="sui-actions-right">
|
4 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
5 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#submissions" target="_blank" class="sui-button sui-button-ghost">
|
6 |
+
<i class="sui-icon-academy"></i> <?php esc_html_e( 'View Documentation', Forminator::DOMAIN ); ?>
|
7 |
</a>
|
8 |
<?php endif; ?>
|
9 |
</div>
|
admin/views/custom-form/entries/popup/schedule-export-content.php
CHANGED
@@ -1,91 +1,91 @@
|
|
1 |
<div class="wpmudev-box-gray">
|
2 |
-
|
3 |
-
|
4 |
|
5 |
-
|
6 |
|
7 |
-
|
8 |
|
9 |
-
|
10 |
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
|
15 |
-
|
16 |
|
17 |
-
|
18 |
|
19 |
-
|
20 |
|
21 |
-
|
22 |
|
23 |
-
|
24 |
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
|
33 |
-
|
34 |
|
35 |
-
|
36 |
|
37 |
-
|
38 |
|
39 |
-
|
40 |
|
41 |
-
|
42 |
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
-
|
63 |
-
|
64 |
-
|
65 |
-
|
66 |
-
|
67 |
|
68 |
-
|
69 |
|
70 |
-
|
71 |
|
72 |
-
|
73 |
|
74 |
-
|
75 |
|
76 |
-
|
77 |
|
78 |
-
|
79 |
|
80 |
-
|
81 |
-
|
82 |
|
83 |
-
|
84 |
|
85 |
-
|
86 |
|
87 |
-
|
88 |
<?php wp_nonce_field( 'forminator_export_data', '_forminator_nonce' ); ?>
|
89 |
-
|
90 |
-
|
91 |
</div>
|
1 |
<div class="wpmudev-box-gray">
|
2 |
+
<form class="forminator_schedule_export" method="post">
|
3 |
+
<div id="forminator-export-schedule-timeframe" class="wpmudev-row">
|
4 |
|
5 |
+
<div class="wpmudev-col col-12 col-md-4">
|
6 |
|
7 |
+
<label><?php esc_html_e( 'Frequency', Forminator::DOMAIN ); ?></label>
|
8 |
|
9 |
+
<select class="wpmudev-select">
|
10 |
|
11 |
+
<option><?php esc_html_e( 'Daily', Forminator::DOMAIN ); ?></option>
|
12 |
+
<option><?php esc_html_e( 'Weekly', Forminator::DOMAIN ); ?></option>
|
13 |
+
<option><?php esc_html_e( 'Monthly', Forminator::DOMAIN ); ?></option>
|
14 |
|
15 |
+
</select>
|
16 |
|
17 |
+
</div>
|
18 |
|
19 |
+
<div class="wpmudev-col col-12 col-md-4">
|
20 |
|
21 |
+
<label><?php esc_html_e( 'Day of the week', Forminator::DOMAIN ); ?></label>
|
22 |
|
23 |
+
<select class="wpmudev-select">
|
24 |
|
25 |
+
<option><?php esc_html_e( 'Monday', Forminator::DOMAIN ); ?></option>
|
26 |
+
<option><?php esc_html_e( 'Tuesday', Forminator::DOMAIN ); ?></option>
|
27 |
+
<option><?php esc_html_e( 'Wednesday', Forminator::DOMAIN ); ?></option>
|
28 |
+
<option><?php esc_html_e( 'Thursday', Forminator::DOMAIN ); ?></option>
|
29 |
+
<option><?php esc_html_e( 'Friday', Forminator::DOMAIN ); ?></option>
|
30 |
+
<option><?php esc_html_e( 'Saturday', Forminator::DOMAIN ); ?></option>
|
31 |
+
<option><?php esc_html_e( 'Sunday', Forminator::DOMAIN ); ?></option>
|
32 |
|
33 |
+
</select>
|
34 |
|
35 |
+
</div>
|
36 |
|
37 |
+
<div class="wpmudev-col col-12 col-md-4">
|
38 |
|
39 |
+
<label><?php esc_html_e( 'Time of the day', Forminator::DOMAIN ); ?></label>
|
40 |
|
41 |
+
<select class="wpmudev-select">
|
42 |
|
43 |
+
<option>12:00 AM</option>
|
44 |
+
<option>01:00 AM</option>
|
45 |
+
<option>02:00 AM</option>
|
46 |
+
<option>03:00 AM</option>
|
47 |
+
<option>04:00 AM</option>
|
48 |
+
<option>05:00 AM</option>
|
49 |
+
<option>06:00 AM</option>
|
50 |
+
<option>07:00 AM</option>
|
51 |
+
<option>08:00 AM</option>
|
52 |
+
<option>09:00 AM</option>
|
53 |
+
<option>10:00 AM</option>
|
54 |
+
<option>11:00 AM</option>
|
55 |
+
<option>12:00 PM</option>
|
56 |
+
<option>01:00 PM</option>
|
57 |
+
<option>02:00 PM</option>
|
58 |
+
<option>03:00 PM</option>
|
59 |
+
<option>04:00 PM</option>
|
60 |
+
<option>05:00 PM</option>
|
61 |
+
<option>06:00 PM</option>
|
62 |
+
<option>07:00 PM</option>
|
63 |
+
<option>08:00 PM</option>
|
64 |
+
<option>09:00 PM</option>
|
65 |
+
<option>10:00 PM</option>
|
66 |
+
<option>11:00 PM</option>
|
67 |
|
68 |
+
</select>
|
69 |
|
70 |
+
</div>
|
71 |
|
72 |
+
</div>
|
73 |
|
74 |
+
<div id="forminator-export-schedule-email" class="wpmudev-row">
|
75 |
|
76 |
+
<div class="wpmudev-col col-12">
|
77 |
|
78 |
+
<label><?php esc_html_e( 'Email export data to', Forminator::DOMAIN ); ?></label>
|
79 |
|
80 |
+
<input type="email" class="wpmudev-input"
|
81 |
+
placeholder="<?php esc_html_e( 'admin@website.com', Forminator::DOMAIN ); ?>">
|
82 |
|
83 |
+
<label class="wpmudev-helper"><?php esc_html_e( "Leave blank if you don't want to receive exports via email.", Forminator::DOMAIN ); ?></label>
|
84 |
|
85 |
+
</div>
|
86 |
|
87 |
+
</div>
|
88 |
<?php wp_nonce_field( 'forminator_export_data', '_forminator_nonce' ); ?>
|
89 |
+
<button class="wpmudev-button wpmudev-button-blue" type="submit"><?php esc_html_e( 'Save Changes', Forminator::DOMAIN ); ?></button>
|
90 |
+
</form>
|
91 |
</div>
|
admin/views/custom-form/entries/prompt.php
CHANGED
@@ -12,7 +12,7 @@ if ( ! FORMINATOR_PRO ) {
|
|
12 |
if ( ( 0 < $live_payment_count && 100 >= $submission && ! $submission_later ) ||
|
13 |
( 0 < $live_payment_count && 100 < $submission && ! $submission_later_dismiss ) ) { ?>
|
14 |
<div class="forminator-rating-notice sui-notice sui-notice-purple fui-notice-rate<?php echo forminator_is_show_branding() ? '' : ' fui-unbranded'; ?>"
|
15 |
-
|
16 |
<?php if ( $submission <= 100 ) { ?>
|
17 |
<p><?php printf( esc_html__( "%1\$sCongratulations!%2\$s You have started collecting live payments on this form - that's awesome. We have spent countless hours developing this free plugin for you, and we would really appreciate it if you could drop us a rating on wp.org to help us spread the word and boost our motivation.", Forminator::DOMAIN ), '<strong>', '</strong>' ); ?></p>
|
18 |
<?php } else { ?>
|
@@ -20,41 +20,41 @@ if ( ! FORMINATOR_PRO ) {
|
|
20 |
<?php } ?>
|
21 |
<p>
|
22 |
<a type="button" href="#" target="_blank"
|
23 |
-
|
24 |
-
|
25 |
|
26 |
<button type="button"
|
27 |
class="sui-button sui-button-ghost"
|
28 |
data-prop="<?php echo 100 > $live_payment_count ? 'forminator_submission_rating_later' : 'forminator_submission_rating_later_dismiss'; ?>"><?php esc_html_e( 'Maybe later', Forminator::DOMAIN ); ?></button>
|
29 |
|
30 |
<a href="#" style="color: #888;"
|
31 |
-
|
32 |
-
|
33 |
</p>
|
34 |
|
35 |
</div>
|
36 |
<?php }
|
37 |
} else {
|
38 |
if ( ( ( 10 < $submission && 100 >= $submission ) && ! $submission_later )
|
39 |
-
|
40 |
$milestone = ( 100 >= $submission ) ? 10 : 100;
|
41 |
?>
|
42 |
<div class="forminator-rating-notice sui-notice sui-notice-purple fui-notice-rate<?php echo forminator_is_show_branding() ? '' : ' fui-unbranded'; ?>"
|
43 |
-
|
44 |
|
45 |
<p><?php printf( esc_html__( "Hey, we noticed you just crossed %1\$s submissions%2\$s on this form - that's awesome! We have spent countless hours developing this free plugin for you, and we would really appreciate it if you could drop us a rating on wp.org to help us spread the word and boost our motivation.", Forminator::DOMAIN ), '<strong> ' . $milestone, '</strong>' ); ?></p>
|
46 |
<p>
|
47 |
<a type="button" href="#" target="_blank"
|
48 |
-
|
49 |
-
|
50 |
|
51 |
<button type="button"
|
52 |
class="sui-button sui-button-ghost"
|
53 |
data-prop="<?php echo 100 > $submission ? 'forminator_submission_rating_later' : 'forminator_submission_rating_later_dismiss'; ?>"><?php esc_html_e( 'Maybe later', Forminator::DOMAIN ); ?></button>
|
54 |
|
55 |
<a href="#" style="color: #888;"
|
56 |
-
|
57 |
-
|
58 |
</p>
|
59 |
|
60 |
</div>
|
@@ -104,4 +104,4 @@ if ( ! FORMINATOR_PRO ) {
|
|
104 |
</script>
|
105 |
<?php
|
106 |
} ?>
|
107 |
-
<?php } ?>
|
12 |
if ( ( 0 < $live_payment_count && 100 >= $submission && ! $submission_later ) ||
|
13 |
( 0 < $live_payment_count && 100 < $submission && ! $submission_later_dismiss ) ) { ?>
|
14 |
<div class="forminator-rating-notice sui-notice sui-notice-purple fui-notice-rate<?php echo forminator_is_show_branding() ? '' : ' fui-unbranded'; ?>"
|
15 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminator_dismiss_notification' ) ); ?>">
|
16 |
<?php if ( $submission <= 100 ) { ?>
|
17 |
<p><?php printf( esc_html__( "%1\$sCongratulations!%2\$s You have started collecting live payments on this form - that's awesome. We have spent countless hours developing this free plugin for you, and we would really appreciate it if you could drop us a rating on wp.org to help us spread the word and boost our motivation.", Forminator::DOMAIN ), '<strong>', '</strong>' ); ?></p>
|
18 |
<?php } else { ?>
|
20 |
<?php } ?>
|
21 |
<p>
|
22 |
<a type="button" href="#" target="_blank"
|
23 |
+
class="sui-button sui-button-purple"
|
24 |
+
data-prop="forminator_rating_success"><?php esc_html_e( 'Rate Forminator', Forminator::DOMAIN ); ?></a>
|
25 |
|
26 |
<button type="button"
|
27 |
class="sui-button sui-button-ghost"
|
28 |
data-prop="<?php echo 100 > $live_payment_count ? 'forminator_submission_rating_later' : 'forminator_submission_rating_later_dismiss'; ?>"><?php esc_html_e( 'Maybe later', Forminator::DOMAIN ); ?></button>
|
29 |
|
30 |
<a href="#" style="color: #888;"
|
31 |
+
data-prop="forminator_rating_dismissed"
|
32 |
+
data-prop="forminator_rating_dismissed"><?php esc_html_e( 'No Thanks', Forminator::DOMAIN ); ?></a>
|
33 |
</p>
|
34 |
|
35 |
</div>
|
36 |
<?php }
|
37 |
} else {
|
38 |
if ( ( ( 10 < $submission && 100 >= $submission ) && ! $submission_later )
|
39 |
+
|| ( 100 < $submission && ! $submission_later_dismiss ) ) {
|
40 |
$milestone = ( 100 >= $submission ) ? 10 : 100;
|
41 |
?>
|
42 |
<div class="forminator-rating-notice sui-notice sui-notice-purple fui-notice-rate<?php echo forminator_is_show_branding() ? '' : ' fui-unbranded'; ?>"
|
43 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminator_dismiss_notification' ) ); ?>">
|
44 |
|
45 |
<p><?php printf( esc_html__( "Hey, we noticed you just crossed %1\$s submissions%2\$s on this form - that's awesome! We have spent countless hours developing this free plugin for you, and we would really appreciate it if you could drop us a rating on wp.org to help us spread the word and boost our motivation.", Forminator::DOMAIN ), '<strong> ' . $milestone, '</strong>' ); ?></p>
|
46 |
<p>
|
47 |
<a type="button" href="#" target="_blank"
|
48 |
+
class="sui-button sui-button-purple"
|
49 |
+
data-prop="forminator_rating_success"><?php esc_html_e( 'Rate Forminator', Forminator::DOMAIN ); ?></a>
|
50 |
|
51 |
<button type="button"
|
52 |
class="sui-button sui-button-ghost"
|
53 |
data-prop="<?php echo 100 > $submission ? 'forminator_submission_rating_later' : 'forminator_submission_rating_later_dismiss'; ?>"><?php esc_html_e( 'Maybe later', Forminator::DOMAIN ); ?></button>
|
54 |
|
55 |
<a href="#" style="color: #888;"
|
56 |
+
data-prop="forminator_rating_dismissed"
|
57 |
+
data-prop="forminator_rating_dismissed"><?php esc_html_e( 'No Thanks', Forminator::DOMAIN ); ?></a>
|
58 |
</p>
|
59 |
|
60 |
</div>
|
104 |
</script>
|
105 |
<?php
|
106 |
} ?>
|
107 |
+
<?php } ?>
|
admin/views/custom-form/list/content.php
CHANGED
@@ -6,14 +6,14 @@ $image_empty = forminator_plugin_url() . 'assets/images/forminator-empty-messa
|
|
6 |
$image_empty2x = forminator_plugin_url() . 'assets/images/forminator-empty-message@2x.png';
|
7 |
|
8 |
// Count total forms
|
9 |
-
$count
|
10 |
$count_active = $this->countModules( 'publish' );
|
11 |
|
12 |
// available bulk actions
|
13 |
$bulk_actions = $this->bulk_actions();
|
14 |
|
15 |
// Start date for retrieving the information of the last 30 days in sql format
|
16 |
-
$sql_month_start_date = date( 'Y-m-d H:i:s', strtotime( '-30 days midnight' ) )
|
17 |
|
18 |
// Count total entries from last 30 days
|
19 |
$total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_entry_ids( 'custom-forms', $sql_month_start_date ) );
|
@@ -31,7 +31,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
31 |
|
32 |
<span class="sui-summary-large"><?php echo esc_html( $count_active ); ?></span>
|
33 |
|
34 |
-
<span class="sui-summary-sub"><?php printf( esc_html( _n( 'Active Form', 'Active Forms', $count_active, Forminator::DOMAIN
|
35 |
|
36 |
</div>
|
37 |
|
@@ -43,7 +43,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
43 |
|
44 |
<li>
|
45 |
<span class="sui-list-label"><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></span>
|
46 |
-
<span class="sui-list-detail"><?php echo forminator_get_latest_entry_time( 'custom-forms' );
|
47 |
</li>
|
48 |
|
49 |
<li>
|
@@ -62,7 +62,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
62 |
|
63 |
<div class="fui-pagination-mobile sui-pagination-wrap">
|
64 |
|
65 |
-
<span class="sui-pagination-results"><?php echo esc_html( sprintf( _n( '%s result', '%s results', $count, Forminator::DOMAIN ), $count ) ); ?></span>
|
66 |
|
67 |
<?php $this->pagination(); ?>
|
68 |
|
@@ -99,7 +99,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
99 |
<div class="sui-search-right">
|
100 |
|
101 |
<div class="sui-pagination-wrap">
|
102 |
-
<span class="sui-pagination-results"><?php echo esc_html( sprintf( _n( '%s result', '%s results', $count, Forminator::DOMAIN ), $count ) ); ?></span>
|
103 |
<?php $this->pagination(); ?>
|
104 |
</div>
|
105 |
|
@@ -116,9 +116,9 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
116 |
|
117 |
<?php
|
118 |
foreach ( $this->getModules() as $module ) {
|
119 |
-
$module_entries_from_last_month = 0 !== $module[
|
120 |
-
$opened_class
|
121 |
-
$opened_chart
|
122 |
|
123 |
if( isset( $_GET['view-stats'] ) && intval( $_GET['view-stats'] ) === intval( $module['id'] ) ) { // phpcs:ignore
|
124 |
$opened_class = ' sui-accordion-item--open forminator-scroll-to';
|
@@ -138,28 +138,32 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
138 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Select this form', Forminator::DOMAIN ); ?></span>
|
139 |
</label>
|
140 |
|
141 |
-
<span class="sui-trim-text"><?php echo forminator_get_form_name( $module['id'], 'custom_form')
|
142 |
|
143 |
-
<?php
|
|
|
144 |
echo '<span class="sui-tag sui-tag-blue">' . esc_html__( 'Published', Forminator::DOMAIN ) . '</span>';
|
145 |
-
}
|
|
|
146 |
|
147 |
-
<?php
|
|
|
148 |
echo '<span class="sui-tag">' . esc_html__( 'Draft', Forminator::DOMAIN ) . '</span>';
|
149 |
-
}
|
|
|
150 |
|
151 |
</div>
|
152 |
|
153 |
-
<div class="sui-accordion-item-date"><strong><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></strong> <?php echo esc_html( $module[
|
154 |
|
155 |
<div class="sui-accordion-col-auto">
|
156 |
|
157 |
-
<a href="<?php echo admin_url( 'admin.php?page=forminator-cform-wizard&id=' . $module['id'] ); //
|
158 |
class="sui-button sui-button-ghost sui-accordion-item-action sui-desktop-visible">
|
159 |
-
<i class="sui-icon-pencil" aria-hidden="true"></i> <?php esc_html_e(
|
160 |
</a>
|
161 |
|
162 |
-
<a href="<?php echo admin_url( 'admin.php?page=forminator-cform-wizard&id=' . $module['id'] ); //
|
163 |
class="sui-button-icon sui-accordion-item-action sui-mobile-visible">
|
164 |
<i class="sui-icon-pencil" aria-hidden="true"></i>
|
165 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Edit', Forminator::DOMAIN ); ?></span>
|
@@ -176,15 +180,15 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
176 |
|
177 |
<li><a href="#"
|
178 |
class="wpmudev-open-modal"
|
179 |
-
data-nonce="<?php echo wp_create_nonce( 'forminator_popup_preview_cforms' );
|
180 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
181 |
data-modal="preview_cforms"
|
182 |
-
data-modal-title="<?php echo sprintf(
|
183 |
<i class="sui-icon-eye" aria-hidden="true"></i> <?php esc_html_e( 'Preview', Forminator::DOMAIN ); ?>
|
184 |
</a></li>
|
185 |
|
186 |
<li>
|
187 |
-
<button class="copy-clipboard" data-shortcode='[forminator_form id="<?php echo esc_attr( $module['id'] ); ?>"]'><i class="sui-icon-code" aria-hidden="true"></i> <?php esc_html_e(
|
188 |
</li>
|
189 |
|
190 |
<?php if ( 'publish' === $module['status'] ) { ?>
|
@@ -223,7 +227,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
223 |
|
224 |
<?php } ?>
|
225 |
|
226 |
-
<li><a href="<?php echo admin_url( 'admin.php?page=forminator-entries&form_type=forminator_forms&form_id=' . $module['id'] ); //
|
227 |
<i class="sui-icon-community-people" aria-hidden="true"></i> <?php esc_html_e( 'View Submissions', Forminator::DOMAIN ); ?>
|
228 |
</a></li>
|
229 |
|
@@ -240,7 +244,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
240 |
<input type="hidden" name="forminator_action" value="reset-views">
|
241 |
<input type="hidden" name="id" value="<?php echo esc_attr( $module['id'] ); ?>"/>
|
242 |
<?php wp_nonce_field( 'forminatorCustomFormRequest', 'forminatorNonce' ); ?>
|
243 |
-
<button type="submit"><i class="sui-icon-update" aria-hidden="true"></i> <?php esc_html_e(
|
244 |
</form></li>
|
245 |
|
246 |
<?php if ( Forminator::is_import_export_feature_enabled() ) : ?>
|
@@ -263,7 +267,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
263 |
data-modal-title="<?php esc_attr_e( 'Delete Form', Forminator::DOMAIN ); ?>"
|
264 |
data-modal-content="<?php esc_attr_e( 'Are you sure you wish to permanently delete this form?', Forminator::DOMAIN ); ?>"
|
265 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
266 |
-
data-nonce="<?php echo wp_create_nonce( 'forminatorCustomFormRequest' );
|
267 |
>
|
268 |
<i class="sui-icon-trash" aria-hidden="true"></i> <?php esc_html_e( 'Delete', Forminator::DOMAIN ); ?>
|
269 |
</button>
|
@@ -285,33 +289,33 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
285 |
|
286 |
<li data-col="large">
|
287 |
<strong><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></strong>
|
288 |
-
<span><?php echo esc_html( $module[
|
289 |
</li>
|
290 |
|
291 |
<li data-col="small">
|
292 |
<strong><?php esc_html_e( 'Views', Forminator::DOMAIN ); ?></strong>
|
293 |
-
<span><?php echo esc_html( $module[
|
294 |
</li>
|
295 |
|
296 |
<li>
|
297 |
<strong><?php esc_html_e( 'Submissions', Forminator::DOMAIN ); ?></strong>
|
298 |
-
<a href="<?php echo admin_url( 'admin.php?page=forminator-cform-view&form_id=' . $module['id'] ); //
|
299 |
</li>
|
300 |
|
301 |
<li>
|
302 |
<strong><?php esc_html_e( 'Conversion Rate', Forminator::DOMAIN ); ?></strong>
|
303 |
-
<span><?php echo $this->getRate( $module );
|
304 |
</li>
|
305 |
|
306 |
</ul>
|
307 |
|
308 |
-
<div class="sui-chartjs sui-chartjs-animated<?php echo esc_attr( $opened_chart ); ?>" data-chart-id="<?php echo $module['id'];
|
309 |
|
310 |
<div class="sui-chartjs-message sui-chartjs-message--loading">
|
311 |
<p><i class="sui-icon-loader sui-loading" aria-hidden="true"></i> <?php esc_html_e( 'Loading data...', Forminator::DOMAIN ); ?></p>
|
312 |
</div>
|
313 |
|
314 |
-
<?php if ( 0 === $module[
|
315 |
|
316 |
<div class="sui-chartjs-message sui-chartjs-message--empty">
|
317 |
<p><i class="sui-icon-info" aria-hidden="true"></i> <?php esc_html_e( "Your form doesn't have any submissions yet. Try again in a moment.", Forminator::DOMAIN ); ?></p>
|
@@ -321,11 +325,13 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
321 |
|
322 |
<?php if ( 0 === $module_entries_from_last_month ) { ?>
|
323 |
|
324 |
-
<?php
|
|
|
325 |
$message = esc_html__( "This form is in draft state, so we've paused collecting data until you publish it live.", Forminator::DOMAIN );
|
326 |
} else {
|
327 |
$message = esc_html__( "Your form didn't collect submissions the past 30 days.", Forminator::DOMAIN );
|
328 |
-
}
|
|
|
329 |
|
330 |
<div class="sui-chartjs-message sui-chartjs-message--empty">
|
331 |
<p><i class="sui-icon-info" aria-hidden="true"></i> <?php echo esc_html( $message ); ?></p>
|
@@ -347,8 +353,8 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
347 |
|
348 |
<div class="sui-chartjs-canvas">
|
349 |
|
350 |
-
<?php if ( ( 0 !== $module[
|
351 |
-
<canvas id="forminator-form-<?php echo $module['id']; //
|
352 |
<?php } ?>
|
353 |
|
354 |
</div>
|
@@ -367,12 +373,12 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
367 |
|
368 |
<div class="sui-box sui-message sui-message-lg">
|
369 |
|
370 |
-
<?php if ( forminator_is_show_branding() ): ?>
|
371 |
<img src="<?php echo esc_url( $image_empty ); ?>"
|
372 |
-
|
373 |
-
|
374 |
-
|
375 |
-
|
376 |
<?php endif; ?>
|
377 |
|
378 |
<div class="sui-message-content">
|
@@ -406,24 +412,24 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
406 |
<?php } ?>
|
407 |
|
408 |
<?php
|
409 |
-
$days_array
|
410 |
$default_array = array();
|
411 |
|
412 |
for ( $h = 30; $h >= 0; $h-- ) {
|
413 |
-
$time
|
414 |
-
$date
|
415 |
$default_array[ $date ] = 0;
|
416 |
-
$days_array[]
|
417 |
}
|
418 |
|
419 |
foreach ( $this->getModules() as $module ) {
|
420 |
|
421 |
-
if ( 0 === $module[
|
422 |
$submissions_data = $default_array;
|
423 |
} else {
|
424 |
-
$submissions
|
425 |
$submissions_array = wp_list_pluck( $submissions, 'entries_amount', 'date_created' );
|
426 |
-
$submissions_data
|
427 |
}
|
428 |
|
429 |
// Get highest value
|
@@ -435,10 +441,10 @@ foreach ( $this->getModules() as $module ) {
|
|
435 |
|
436 |
<script>
|
437 |
|
438 |
-
var ctx = document.getElementById( 'forminator-form-<?php echo $module['id']; //
|
439 |
|
440 |
-
var monthDays = [ '<?php echo implode( "', '", $days_array ); //
|
441 |
-
submissions = [ <?php echo implode( ', ', $submissions_data ); //
|
442 |
;
|
443 |
|
444 |
var chartData = {
|
@@ -508,10 +514,10 @@ foreach ( $this->getModules() as $module ) {
|
|
508 |
return tooltipItem.xLabel;
|
509 |
},
|
510 |
// Set label text color
|
511 |
-
|
512 |
-
|
513 |
-
|
514 |
-
|
515 |
},
|
516 |
plugins: {
|
517 |
datalabels: {
|
6 |
$image_empty2x = forminator_plugin_url() . 'assets/images/forminator-empty-message@2x.png';
|
7 |
|
8 |
// Count total forms
|
9 |
+
$count = $this->countModules();
|
10 |
$count_active = $this->countModules( 'publish' );
|
11 |
|
12 |
// available bulk actions
|
13 |
$bulk_actions = $this->bulk_actions();
|
14 |
|
15 |
// Start date for retrieving the information of the last 30 days in sql format
|
16 |
+
$sql_month_start_date = date( 'Y-m-d H:i:s', strtotime( '-30 days midnight' ) );// phpcs:ignore
|
17 |
|
18 |
// Count total entries from last 30 days
|
19 |
$total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_entry_ids( 'custom-forms', $sql_month_start_date ) );
|
31 |
|
32 |
<span class="sui-summary-large"><?php echo esc_html( $count_active ); ?></span>
|
33 |
|
34 |
+
<span class="sui-summary-sub"><?php printf( esc_html( _n( 'Active Form', 'Active Forms', esc_html( $count_active ), Forminator::DOMAIN ) ), esc_html( $count_active ) ); ?></span>
|
35 |
|
36 |
</div>
|
37 |
|
43 |
|
44 |
<li>
|
45 |
<span class="sui-list-label"><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></span>
|
46 |
+
<span class="sui-list-detail"><?php echo esc_html( forminator_get_latest_entry_time( 'custom-forms' ) ); ?></span>
|
47 |
</li>
|
48 |
|
49 |
<li>
|
62 |
|
63 |
<div class="fui-pagination-mobile sui-pagination-wrap">
|
64 |
|
65 |
+
<span class="sui-pagination-results"><?php /* translators: ... */ echo esc_html( sprintf( _n( '%s result', '%s results', $count, Forminator::DOMAIN ), $count ) ); ?></span>
|
66 |
|
67 |
<?php $this->pagination(); ?>
|
68 |
|
99 |
<div class="sui-search-right">
|
100 |
|
101 |
<div class="sui-pagination-wrap">
|
102 |
+
<span class="sui-pagination-results"><?php /* translators: ... */ echo esc_html( sprintf( _n( '%s result', '%s results', $count, Forminator::DOMAIN ), $count ) ); ?></span>
|
103 |
<?php $this->pagination(); ?>
|
104 |
</div>
|
105 |
|
116 |
|
117 |
<?php
|
118 |
foreach ( $this->getModules() as $module ) {
|
119 |
+
$module_entries_from_last_month = 0 !== $module['entries'] ? count( Forminator_Form_Entry_Model::get_newer_entry_ids_of_form_id( $module['id'], $sql_month_start_date ) ) : 0;
|
120 |
+
$opened_class = '';
|
121 |
+
$opened_chart = '';
|
122 |
|
123 |
if( isset( $_GET['view-stats'] ) && intval( $_GET['view-stats'] ) === intval( $module['id'] ) ) { // phpcs:ignore
|
124 |
$opened_class = ' sui-accordion-item--open forminator-scroll-to';
|
138 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Select this form', Forminator::DOMAIN ); ?></span>
|
139 |
</label>
|
140 |
|
141 |
+
<span class="sui-trim-text"><?php echo forminator_get_form_name( $module['id'], 'custom_form' );// phpcs:ignore ?></span>
|
142 |
|
143 |
+
<?php
|
144 |
+
if ( 'publish' === $module['status'] ) {
|
145 |
echo '<span class="sui-tag sui-tag-blue">' . esc_html__( 'Published', Forminator::DOMAIN ) . '</span>';
|
146 |
+
}
|
147 |
+
?>
|
148 |
|
149 |
+
<?php
|
150 |
+
if ( 'draft' === $module['status'] ) {
|
151 |
echo '<span class="sui-tag">' . esc_html__( 'Draft', Forminator::DOMAIN ) . '</span>';
|
152 |
+
}
|
153 |
+
?>
|
154 |
|
155 |
</div>
|
156 |
|
157 |
+
<div class="sui-accordion-item-date"><strong><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></strong> <?php echo esc_html( $module['last_entry_time'] ); ?></div>
|
158 |
|
159 |
<div class="sui-accordion-col-auto">
|
160 |
|
161 |
+
<a href="<?php echo admin_url( 'admin.php?page=forminator-cform-wizard&id=' . $module['id'] ); // phpcs:ignore ?>"
|
162 |
class="sui-button sui-button-ghost sui-accordion-item-action sui-desktop-visible">
|
163 |
+
<i class="sui-icon-pencil" aria-hidden="true"></i> <?php esc_html_e( 'Edit', Forminator::DOMAIN ); ?>
|
164 |
</a>
|
165 |
|
166 |
+
<a href="<?php echo admin_url( 'admin.php?page=forminator-cform-wizard&id=' . $module['id'] ); // phpcs:ignore ?>"
|
167 |
class="sui-button-icon sui-accordion-item-action sui-mobile-visible">
|
168 |
<i class="sui-icon-pencil" aria-hidden="true"></i>
|
169 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Edit', Forminator::DOMAIN ); ?></span>
|
180 |
|
181 |
<li><a href="#"
|
182 |
class="wpmudev-open-modal"
|
183 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminator_popup_preview_cforms' ) ); ?>"
|
184 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
185 |
data-modal="preview_cforms"
|
186 |
+
data-modal-title="<?php echo sprintf( '%s - %s', esc_html__( 'Preview Custom Form', Forminator::DOMAIN ), forminator_get_form_name( $module['id'], 'custom_form' ) ); // phpcs:ignore ?>">
|
187 |
<i class="sui-icon-eye" aria-hidden="true"></i> <?php esc_html_e( 'Preview', Forminator::DOMAIN ); ?>
|
188 |
</a></li>
|
189 |
|
190 |
<li>
|
191 |
+
<button class="copy-clipboard" data-shortcode='[forminator_form id="<?php echo esc_attr( $module['id'] ); ?>"]'><i class="sui-icon-code" aria-hidden="true"></i> <?php esc_html_e( 'Copy Shortcode', Forminator::DOMAIN ); ?></button>
|
192 |
</li>
|
193 |
|
194 |
<?php if ( 'publish' === $module['status'] ) { ?>
|
227 |
|
228 |
<?php } ?>
|
229 |
|
230 |
+
<li><a href="<?php echo admin_url( 'admin.php?page=forminator-entries&form_type=forminator_forms&form_id=' . $module['id'] ); // phpcs:ignore ?>">
|
231 |
<i class="sui-icon-community-people" aria-hidden="true"></i> <?php esc_html_e( 'View Submissions', Forminator::DOMAIN ); ?>
|
232 |
</a></li>
|
233 |
|
244 |
<input type="hidden" name="forminator_action" value="reset-views">
|
245 |
<input type="hidden" name="id" value="<?php echo esc_attr( $module['id'] ); ?>"/>
|
246 |
<?php wp_nonce_field( 'forminatorCustomFormRequest', 'forminatorNonce' ); ?>
|
247 |
+
<button type="submit"><i class="sui-icon-update" aria-hidden="true"></i> <?php esc_html_e( 'Reset Tracking data', Forminator::DOMAIN ); ?></button>
|
248 |
</form></li>
|
249 |
|
250 |
<?php if ( Forminator::is_import_export_feature_enabled() ) : ?>
|
267 |
data-modal-title="<?php esc_attr_e( 'Delete Form', Forminator::DOMAIN ); ?>"
|
268 |
data-modal-content="<?php esc_attr_e( 'Are you sure you wish to permanently delete this form?', Forminator::DOMAIN ); ?>"
|
269 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
270 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminatorCustomFormRequest' ) ); ?>"
|
271 |
>
|
272 |
<i class="sui-icon-trash" aria-hidden="true"></i> <?php esc_html_e( 'Delete', Forminator::DOMAIN ); ?>
|
273 |
</button>
|
289 |
|
290 |
<li data-col="large">
|
291 |
<strong><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></strong>
|
292 |
+
<span><?php echo esc_html( $module['last_entry_time'] ); ?></span>
|
293 |
</li>
|
294 |
|
295 |
<li data-col="small">
|
296 |
<strong><?php esc_html_e( 'Views', Forminator::DOMAIN ); ?></strong>
|
297 |
+
<span><?php echo esc_html( $module['views'] ); ?></span>
|
298 |
</li>
|
299 |
|
300 |
<li>
|
301 |
<strong><?php esc_html_e( 'Submissions', Forminator::DOMAIN ); ?></strong>
|
302 |
+
<a href="<?php echo admin_url( 'admin.php?page=forminator-cform-view&form_id=' . $module['id'] ); // phpcs:ignore ?>"><?php echo esc_html( $module['entries'] ); ?></a>
|
303 |
</li>
|
304 |
|
305 |
<li>
|
306 |
<strong><?php esc_html_e( 'Conversion Rate', Forminator::DOMAIN ); ?></strong>
|
307 |
+
<span><?php echo esc_html( $this->getRate( $module ) ); ?>%</span>
|
308 |
</li>
|
309 |
|
310 |
</ul>
|
311 |
|
312 |
+
<div class="sui-chartjs sui-chartjs-animated<?php echo esc_attr( $opened_chart ); ?>" data-chart-id="<?php echo esc_attr( $module['id'] ); ?>">
|
313 |
|
314 |
<div class="sui-chartjs-message sui-chartjs-message--loading">
|
315 |
<p><i class="sui-icon-loader sui-loading" aria-hidden="true"></i> <?php esc_html_e( 'Loading data...', Forminator::DOMAIN ); ?></p>
|
316 |
</div>
|
317 |
|
318 |
+
<?php if ( 0 === $module['entries'] ) { ?>
|
319 |
|
320 |
<div class="sui-chartjs-message sui-chartjs-message--empty">
|
321 |
<p><i class="sui-icon-info" aria-hidden="true"></i> <?php esc_html_e( "Your form doesn't have any submissions yet. Try again in a moment.", Forminator::DOMAIN ); ?></p>
|
325 |
|
326 |
<?php if ( 0 === $module_entries_from_last_month ) { ?>
|
327 |
|
328 |
+
<?php
|
329 |
+
if ( 'draft' === $module['status'] ) {
|
330 |
$message = esc_html__( "This form is in draft state, so we've paused collecting data until you publish it live.", Forminator::DOMAIN );
|
331 |
} else {
|
332 |
$message = esc_html__( "Your form didn't collect submissions the past 30 days.", Forminator::DOMAIN );
|
333 |
+
}
|
334 |
+
?>
|
335 |
|
336 |
<div class="sui-chartjs-message sui-chartjs-message--empty">
|
337 |
<p><i class="sui-icon-info" aria-hidden="true"></i> <?php echo esc_html( $message ); ?></p>
|
353 |
|
354 |
<div class="sui-chartjs-canvas">
|
355 |
|
356 |
+
<?php if ( ( 0 !== $module['entries'] ) || ( 0 !== $module_entries_from_last_month ) ) { ?>
|
357 |
+
<canvas id="forminator-form-<?php echo $module['id']; // phpcs:ignore ?>-stats"></canvas>
|
358 |
<?php } ?>
|
359 |
|
360 |
</div>
|
373 |
|
374 |
<div class="sui-box sui-message sui-message-lg">
|
375 |
|
376 |
+
<?php if ( forminator_is_show_branding() ) : ?>
|
377 |
<img src="<?php echo esc_url( $image_empty ); ?>"
|
378 |
+
srcset="<?php echo esc_url( $image_empty2x ); ?> 1x, <?php echo esc_url( $image_empty2x ); ?> 2x"
|
379 |
+
alt="<?php esc_html_e( 'Empty forms', Forminator::DOMAIN ); ?>"
|
380 |
+
class="sui-image sui-image-center"
|
381 |
+
aria-hidden="true"/>
|
382 |
<?php endif; ?>
|
383 |
|
384 |
<div class="sui-message-content">
|
412 |
<?php } ?>
|
413 |
|
414 |
<?php
|
415 |
+
$days_array = array();
|
416 |
$default_array = array();
|
417 |
|
418 |
for ( $h = 30; $h >= 0; $h-- ) {
|
419 |
+
$time = strtotime( '-' . $h . ' days' );
|
420 |
+
$date = date( 'Y-m-d', $time );// phpcs:ignore
|
421 |
$default_array[ $date ] = 0;
|
422 |
+
$days_array[] = date( 'M j, Y', $time );// phpcs:ignore
|
423 |
}
|
424 |
|
425 |
foreach ( $this->getModules() as $module ) {
|
426 |
|
427 |
+
if ( 0 === $module['entries'] ) {
|
428 |
$submissions_data = $default_array;
|
429 |
} else {
|
430 |
+
$submissions = Forminator_Form_Entry_Model::get_form_latest_entries_count_grouped_by_day( $module['id'], $sql_month_start_date );
|
431 |
$submissions_array = wp_list_pluck( $submissions, 'entries_amount', 'date_created' );
|
432 |
+
$submissions_data = array_merge( $default_array, array_intersect_key( $submissions_array, $default_array ) );
|
433 |
}
|
434 |
|
435 |
// Get highest value
|
441 |
|
442 |
<script>
|
443 |
|
444 |
+
var ctx = document.getElementById( 'forminator-form-<?php echo $module['id']; // phpcs:ignore ?>-stats' );
|
445 |
|
446 |
+
var monthDays = [ '<?php echo implode( "', '", $days_array ); // phpcs:ignore ?>' ],
|
447 |
+
submissions = [ <?php echo implode( ', ', $submissions_data ); // phpcs:ignore ?> ]
|
448 |
;
|
449 |
|
450 |
var chartData = {
|
514 |
return tooltipItem.xLabel;
|
515 |
},
|
516 |
// Set label text color
|
517 |
+
labelTextColor:function( tooltipItem, chart ) {
|
518 |
+
return '#AAAAAA';
|
519 |
+
}
|
520 |
+
}
|
521 |
},
|
522 |
plugins: {
|
523 |
datalabels: {
|
admin/views/custom-form/list/header.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php $count = $this->countModules(); ?>
|
2 |
|
3 |
-
<h1 class="sui-header-title"><?php esc_html_e(
|
4 |
|
5 |
<div class="sui-actions-left">
|
6 |
|
@@ -21,7 +21,7 @@
|
|
21 |
<div class="sui-actions-right">
|
22 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
23 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#forms" target="_blank" class="sui-button sui-button-ghost">
|
24 |
-
<i class="sui-icon-academy"></i> <?php esc_html_e(
|
25 |
</a>
|
26 |
<?php endif; ?>
|
27 |
</div>
|
1 |
<?php $count = $this->countModules(); ?>
|
2 |
|
3 |
+
<h1 class="sui-header-title"><?php esc_html_e( 'Forms', Forminator::DOMAIN ); ?></h1>
|
4 |
|
5 |
<div class="sui-actions-left">
|
6 |
|
21 |
<div class="sui-actions-right">
|
22 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
23 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#forms" target="_blank" class="sui-button sui-button-ghost">
|
24 |
+
<i class="sui-icon-academy"></i> <?php esc_html_e( 'View Documentation', Forminator::DOMAIN ); ?>
|
25 |
</a>
|
26 |
<?php endif; ?>
|
27 |
</div>
|
admin/views/custom-form/popup/export.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<?php
|
2 |
-
$form_id = $_POST['id'];//
|
3 |
$nonce = wp_create_nonce( 'forminatorCustomFormRequest' );
|
4 |
|
5 |
$exportable = array();
|
@@ -7,7 +7,7 @@ $model = Forminator_Custom_Form_Model::model()->load( $form_id );
|
|
7 |
if ( $model instanceof Forminator_Custom_Form_Model ) {
|
8 |
$exportable = $model->to_exportable_data();
|
9 |
}
|
10 |
-
$text_area_id = uniqid('export-text-');
|
11 |
?>
|
12 |
|
13 |
<div class="sui-box-body wpmudev-popup-form">
|
@@ -19,7 +19,8 @@ $text_area_id = uniqid('export-text-');
|
|
19 |
|
20 |
<div class="sui-notice sui-notice-info">
|
21 |
<p>
|
22 |
-
<?php
|
|
|
23 |
sprintf(
|
24 |
__( 'You can import this %1$s in Forminator %2$s%3$s%4$s or above. The %5$s may break on a version lower than your install.', Forminator::DOMAIN ), //phpcs:ignore
|
25 |
__( 'Form', Forminator::DOMAIN ),//phpcs:ignore
|
@@ -28,7 +29,8 @@ $text_area_id = uniqid('export-text-');
|
|
28 |
'</strong>',
|
29 |
__( 'Form', Forminator::DOMAIN )
|
30 |
)
|
31 |
-
);
|
|
|
32 |
</p>
|
33 |
</div>
|
34 |
|
1 |
<?php
|
2 |
+
$form_id = $_POST['id'];// phpcs:ignore -- varified on admin ajax
|
3 |
$nonce = wp_create_nonce( 'forminatorCustomFormRequest' );
|
4 |
|
5 |
$exportable = array();
|
7 |
if ( $model instanceof Forminator_Custom_Form_Model ) {
|
8 |
$exportable = $model->to_exportable_data();
|
9 |
}
|
10 |
+
$text_area_id = uniqid( 'export-text-' );
|
11 |
?>
|
12 |
|
13 |
<div class="sui-box-body wpmudev-popup-form">
|
19 |
|
20 |
<div class="sui-notice sui-notice-info">
|
21 |
<p>
|
22 |
+
<?php
|
23 |
+
echo(
|
24 |
sprintf(
|
25 |
__( 'You can import this %1$s in Forminator %2$s%3$s%4$s or above. The %5$s may break on a version lower than your install.', Forminator::DOMAIN ), //phpcs:ignore
|
26 |
__( 'Form', Forminator::DOMAIN ),//phpcs:ignore
|
29 |
'</strong>',
|
30 |
__( 'Form', Forminator::DOMAIN )
|
31 |
)
|
32 |
+
);
|
33 |
+
?>
|
34 |
</p>
|
35 |
</div>
|
36 |
|
admin/views/custom-form/wizard/header.php
CHANGED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php // phpcs:ignore
|
admin/views/dashboard/content.php
CHANGED
@@ -10,7 +10,7 @@
|
|
10 |
|
11 |
<?php $this->template( 'dashboard/widgets/widget-quiz' ); ?>
|
12 |
|
13 |
-
<?php if ( isset( $_GET['show_stripe_dialog'] ) && ! empty( $_GET['show_stripe_dialog'] ) ) { //
|
14 |
|
15 |
<?php $this->template( 'dashboard/stripe-notice' ); ?>
|
16 |
|
10 |
|
11 |
<?php $this->template( 'dashboard/widgets/widget-quiz' ); ?>
|
12 |
|
13 |
+
<?php if ( isset( $_GET['show_stripe_dialog'] ) && ! empty( $_GET['show_stripe_dialog'] ) ) { // phpcs:ignore ?>
|
14 |
|
15 |
<?php $this->template( 'dashboard/stripe-notice' ); ?>
|
16 |
|
admin/views/dashboard/footer-free.php
CHANGED
@@ -65,7 +65,7 @@
|
|
65 |
</a>
|
66 |
|
67 |
<img class="sui-image"
|
68 |
-
src="<?php echo forminator_plugin_url(); //
|
69 |
-
srcset="<?php echo forminator_plugin_url(); //
|
70 |
alt="<?php esc_html_e( 'Try pro features for free!', Forminator::DOMAIN ); ?>">
|
71 |
</div>
|
65 |
</a>
|
66 |
|
67 |
<img class="sui-image"
|
68 |
+
src="<?php echo forminator_plugin_url(); // phpcs:ignore ?>assets/images/dev-team.png"
|
69 |
+
srcset="<?php echo forminator_plugin_url(); // phpcs:ignore ?>assets/images/dev-team@2x.png 2x"
|
70 |
alt="<?php esc_html_e( 'Try pro features for free!', Forminator::DOMAIN ); ?>">
|
71 |
</div>
|
admin/views/dashboard/header.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
-
<h1 class="sui-header-title"><?php esc_html_e(
|
2 |
|
3 |
<div class="sui-actions-right">
|
4 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
5 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#dashboard" target="_blank" class="sui-button sui-button-ghost">
|
6 |
-
<i class="sui-icon-academy"></i> <?php esc_html_e(
|
7 |
</a>
|
8 |
<?php endif; ?>
|
9 |
</div>
|
1 |
+
<h1 class="sui-header-title"><?php esc_html_e( 'Dashboard', Forminator::DOMAIN ); ?></h1>
|
2 |
|
3 |
<div class="sui-actions-right">
|
4 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
5 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#dashboard" target="_blank" class="sui-button sui-button-ghost">
|
6 |
+
<i class="sui-icon-academy"></i> <?php esc_html_e( 'View Documentation', Forminator::DOMAIN ); ?>
|
7 |
</a>
|
8 |
<?php endif; ?>
|
9 |
</div>
|
admin/views/dashboard/stripe-notice.php
CHANGED
@@ -23,8 +23,8 @@
|
|
23 |
|
24 |
<div class="sui-box-banner" role="banner" aria-hidden="true">
|
25 |
<img
|
26 |
-
src="<?php echo forminator_plugin_url(); //
|
27 |
-
srcset="<?php echo forminator_plugin_url(); //
|
28 |
/>
|
29 |
</div>
|
30 |
|
@@ -64,13 +64,13 @@
|
|
64 |
|
65 |
<p class="sui-description" style="margin-bottom: 5px;"><?php esc_html_e( 'Following are the forms which are affected by this updated. We recommend going through each of them and follow the recommendations above:', Forminator::DOMAIN ); ?></p>
|
66 |
|
67 |
-
<?php foreach( $this->stripeModules() as $module ) : ?>
|
68 |
|
69 |
<ul class="fui-list-fields">
|
70 |
|
71 |
<li>
|
72 |
<span class="fui-list-label"><?php echo esc_html( $module['title'] ); ?></span>
|
73 |
-
<a href="<?php echo menu_page_url( 'forminator-cform-wizard', false ) . '&id=' . $module['id']; ?>" class="sui-button-icon" target="_blank">
|
74 |
<i class="sui-icon-pencil" aria-hidden="true"></i>
|
75 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Edit Field', Forminator::DOMAIN ); ?></span>
|
76 |
</a>
|
23 |
|
24 |
<div class="sui-box-banner" role="banner" aria-hidden="true">
|
25 |
<img
|
26 |
+
src="<?php echo forminator_plugin_url(); // phpcs:ignore ?>assets/images/sca-cover.png"
|
27 |
+
srcset="<?php echo forminator_plugin_url(); // phpcs:ignore ?>assets/images/sca-cover@2x.png 2x"
|
28 |
/>
|
29 |
</div>
|
30 |
|
64 |
|
65 |
<p class="sui-description" style="margin-bottom: 5px;"><?php esc_html_e( 'Following are the forms which are affected by this updated. We recommend going through each of them and follow the recommendations above:', Forminator::DOMAIN ); ?></p>
|
66 |
|
67 |
+
<?php foreach ( $this->stripeModules() as $module ) : ?>
|
68 |
|
69 |
<ul class="fui-list-fields">
|
70 |
|
71 |
<li>
|
72 |
<span class="fui-list-label"><?php echo esc_html( $module['title'] ); ?></span>
|
73 |
+
<a href="<?php echo esc_url( menu_page_url( 'forminator-cform-wizard', false ) . '&id=' . $module['id'] ); ?>" class="sui-button-icon" target="_blank">
|
74 |
<i class="sui-icon-pencil" aria-hidden="true"></i>
|
75 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Edit Field', Forminator::DOMAIN ); ?></span>
|
76 |
</a>
|
admin/views/dashboard/widgets/widget-cform.php
CHANGED
@@ -34,7 +34,7 @@ if ( 0 === $num_recent ) {
|
|
34 |
|
35 |
<?php if ( 0 === forminator_cforms_total() ) { ?>
|
36 |
|
37 |
-
<p><button href="/" class="sui-button sui-button-blue wpmudev-open-modal" data-modal="custom_forms"><i class="sui-icon-plus" aria-hidden="true"></i> <?php esc_html_e(
|
38 |
|
39 |
<?php } ?>
|
40 |
|
@@ -58,21 +58,23 @@ if ( 0 === $num_recent ) {
|
|
58 |
|
59 |
<tbody>
|
60 |
|
61 |
-
<?php foreach( forminator_cform_modules( $num_recent, $statuses ) as $module ) { ?>
|
62 |
|
63 |
<tr>
|
64 |
|
65 |
-
<td class="sui-table-item-title"><?php echo forminator_get_form_name( $module['id'], 'custom_form'); //
|
66 |
|
67 |
<td class="fui-col-status">
|
68 |
|
69 |
-
<?php
|
|
|
70 |
$status_class = 'published';
|
71 |
$status_text = esc_html__( 'Published', Forminator::DOMAIN );
|
72 |
} else {
|
73 |
$status_class = 'draft';
|
74 |
$status_text = esc_html__( 'Draft', Forminator::DOMAIN );
|
75 |
-
}
|
|
|
76 |
|
77 |
<span
|
78 |
class="sui-status-dot sui-<?php echo esc_html( $status_class ); ?> sui-tooltip"
|
@@ -81,7 +83,7 @@ if ( 0 === $num_recent ) {
|
|
81 |
<span aria-hidden="true"></span>
|
82 |
</span>
|
83 |
|
84 |
-
<a href="<?php echo admin_url( 'admin.php?page=forminator-cform&view-stats=' . esc_attr( $module['id'] ) ); //
|
85 |
class="sui-button-icon sui-tooltip sui-tooltip-top-right-mobile"
|
86 |
data-tooltip="<?php esc_html_e( 'View Stats', Forminator::DOMAIN ); ?>">
|
87 |
<i class="sui-icon-graph-line" aria-hidden="true"></i>
|
@@ -97,23 +99,23 @@ if ( 0 === $num_recent ) {
|
|
97 |
|
98 |
<ul>
|
99 |
<li>
|
100 |
-
<a href="<?php echo admin_url( 'admin.php?page=forminator-cform-wizard&id=' . $module['id'] ); //
|
101 |
-
<i class="sui-icon-pencil" aria-hidden="true"></i> <?php esc_html_e(
|
102 |
</a>
|
103 |
</li>
|
104 |
<li><button class="wpmudev-open-modal"
|
105 |
data-modal="preview_cforms"
|
106 |
-
data-modal-title="<?php echo sprintf( '%s - %s', esc_html__( 'Preview Custom Form', Forminator::DOMAIN ), forminator_get_form_name( $module['id'], 'custom_form' ) ); //
|
107 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
108 |
-
data-nonce="<?php echo wp_create_nonce( 'forminator_popup_preview_cforms' );
|
109 |
<i class="sui-icon-eye" aria-hidden="true"></i> <?php esc_html_e( 'Preview', Forminator::DOMAIN ); ?>
|
110 |
</button></li>
|
111 |
|
112 |
<li>
|
113 |
-
<button class="copy-clipboard" data-shortcode='[forminator_form id="<?php echo esc_attr( $module['id'] ); ?>"]'><i class="sui-icon-code" aria-hidden="true"></i> <?php esc_html_e(
|
114 |
</li>
|
115 |
|
116 |
-
<li><a href="<?php echo admin_url( 'admin.php?page=forminator-entries&form_type=forminator_forms&form_id=' . $module['id'] ); //
|
117 |
|
118 |
<li><form method="post">
|
119 |
<input type="hidden" name="forminator_action" value="clone">
|
@@ -143,7 +145,7 @@ if ( 0 === $num_recent ) {
|
|
143 |
data-modal-title="<?php esc_attr_e( 'Delete Form', Forminator::DOMAIN ); ?>"
|
144 |
data-modal-content="<?php esc_attr_e( 'Are you sure you wish to permanently delete this form?', Forminator::DOMAIN ); ?>"
|
145 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
146 |
-
data-nonce="<?php echo wp_create_nonce( 'forminatorCustomFormRequest' );
|
147 |
<i class="sui-icon-trash" aria-hidden="true"></i> <?php esc_html_e( 'Delete', Forminator::DOMAIN ); ?>
|
148 |
</button>
|
149 |
</li>
|
@@ -166,11 +168,11 @@ if ( 0 === $num_recent ) {
|
|
166 |
|
167 |
<button class="sui-button sui-button-blue wpmudev-open-modal"
|
168 |
data-modal="custom_forms">
|
169 |
-
<i class="sui-icon-plus" aria-hidden="true"></i> <?php esc_html_e(
|
170 |
</button>
|
171 |
|
172 |
<div class="sui-actions-right">
|
173 |
-
<p class="sui-description"><a href="<?php echo admin_url( 'admin.php?page=forminator-cform' ); //
|
174 |
</div>
|
175 |
|
176 |
</div>
|
34 |
|
35 |
<?php if ( 0 === forminator_cforms_total() ) { ?>
|
36 |
|
37 |
+
<p><button href="/" class="sui-button sui-button-blue wpmudev-open-modal" data-modal="custom_forms"><i class="sui-icon-plus" aria-hidden="true"></i> <?php esc_html_e( 'Create', Forminator::DOMAIN ); ?></button></p>
|
38 |
|
39 |
<?php } ?>
|
40 |
|
58 |
|
59 |
<tbody>
|
60 |
|
61 |
+
<?php foreach ( forminator_cform_modules( $num_recent, $statuses ) as $module ) { ?>
|
62 |
|
63 |
<tr>
|
64 |
|
65 |
+
<td class="sui-table-item-title"><?php echo forminator_get_form_name( $module['id'], 'custom_form' ); // phpcs:ignore ?></td>
|
66 |
|
67 |
<td class="fui-col-status">
|
68 |
|
69 |
+
<?php
|
70 |
+
if ( 'publish' === $module['status'] ) {
|
71 |
$status_class = 'published';
|
72 |
$status_text = esc_html__( 'Published', Forminator::DOMAIN );
|
73 |
} else {
|
74 |
$status_class = 'draft';
|
75 |
$status_text = esc_html__( 'Draft', Forminator::DOMAIN );
|
76 |
+
}
|
77 |
+
?>
|
78 |
|
79 |
<span
|
80 |
class="sui-status-dot sui-<?php echo esc_html( $status_class ); ?> sui-tooltip"
|
83 |
<span aria-hidden="true"></span>
|
84 |
</span>
|
85 |
|
86 |
+
<a href="<?php echo admin_url( 'admin.php?page=forminator-cform&view-stats=' . esc_attr( $module['id'] ) ); // phpcs:ignore ?>"
|
87 |
class="sui-button-icon sui-tooltip sui-tooltip-top-right-mobile"
|
88 |
data-tooltip="<?php esc_html_e( 'View Stats', Forminator::DOMAIN ); ?>">
|
89 |
<i class="sui-icon-graph-line" aria-hidden="true"></i>
|
99 |
|
100 |
<ul>
|
101 |
<li>
|
102 |
+
<a href="<?php echo admin_url( 'admin.php?page=forminator-cform-wizard&id=' . $module['id'] ); // phpcs:ignore ?>">
|
103 |
+
<i class="sui-icon-pencil" aria-hidden="true"></i> <?php esc_html_e( 'Edit', Forminator::DOMAIN ); ?>
|
104 |
</a>
|
105 |
</li>
|
106 |
<li><button class="wpmudev-open-modal"
|
107 |
data-modal="preview_cforms"
|
108 |
+
data-modal-title="<?php echo sprintf( '%s - %s', esc_html__( 'Preview Custom Form', Forminator::DOMAIN ), forminator_get_form_name( $module['id'], 'custom_form' ) ); // phpcs:ignore ?>"
|
109 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
110 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminator_popup_preview_cforms' ) ); ?>">
|
111 |
<i class="sui-icon-eye" aria-hidden="true"></i> <?php esc_html_e( 'Preview', Forminator::DOMAIN ); ?>
|
112 |
</button></li>
|
113 |
|
114 |
<li>
|
115 |
+
<button class="copy-clipboard" data-shortcode='[forminator_form id="<?php echo esc_attr( $module['id'] ); ?>"]'><i class="sui-icon-code" aria-hidden="true"></i> <?php esc_html_e( 'Copy Shortcode', Forminator::DOMAIN ); ?></button>
|
116 |
</li>
|
117 |
|
118 |
+
<li><a href="<?php echo admin_url( 'admin.php?page=forminator-entries&form_type=forminator_forms&form_id=' . $module['id'] ); // phpcs:ignore ?>"><i class="sui-icon-community-people" aria-hidden="true"></i> <?php esc_html_e( 'View Submissions', Forminator::DOMAIN ); ?></a></li>
|
119 |
|
120 |
<li><form method="post">
|
121 |
<input type="hidden" name="forminator_action" value="clone">
|
145 |
data-modal-title="<?php esc_attr_e( 'Delete Form', Forminator::DOMAIN ); ?>"
|
146 |
data-modal-content="<?php esc_attr_e( 'Are you sure you wish to permanently delete this form?', Forminator::DOMAIN ); ?>"
|
147 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
148 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminatorCustomFormRequest' ) ); ?>">
|
149 |
<i class="sui-icon-trash" aria-hidden="true"></i> <?php esc_html_e( 'Delete', Forminator::DOMAIN ); ?>
|
150 |
</button>
|
151 |
</li>
|
168 |
|
169 |
<button class="sui-button sui-button-blue wpmudev-open-modal"
|
170 |
data-modal="custom_forms">
|
171 |
+
<i class="sui-icon-plus" aria-hidden="true"></i> <?php esc_html_e( 'Create', Forminator::DOMAIN ); ?>
|
172 |
</button>
|
173 |
|
174 |
<div class="sui-actions-right">
|
175 |
+
<p class="sui-description"><a href="<?php echo admin_url( 'admin.php?page=forminator-cform' ); // phpcs:ignore ?>" class="sui-link-gray"><?php esc_html_e( 'View all forms', Forminator::DOMAIN ); ?></a></p>
|
176 |
</div>
|
177 |
|
178 |
</div>
|
admin/views/dashboard/widgets/widget-create.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
-
$icon_minus
|
3 |
-
$hero_sample = forminator_plugin_dir() .
|
4 |
?>
|
5 |
|
6 |
<div class="wpmudev-row">
|
@@ -12,8 +12,8 @@ $hero_sample = forminator_plugin_dir() . "assets/icons/forminator-icons/hero-sam
|
|
12 |
<div class="wpmudev-box-header">
|
13 |
|
14 |
<div class="wpmudev-header--text">
|
15 |
-
|
16 |
-
<h2 class="wpmudev-title"><?php esc_html_e(
|
17 |
|
18 |
</div>
|
19 |
|
@@ -21,7 +21,7 @@ $hero_sample = forminator_plugin_dir() . "assets/icons/forminator-icons/hero-sam
|
|
21 |
|
22 |
<button class="wpmudev-box--action" aria-hidden="true"><span class="wpmudev-icon--plus"></span></button>
|
23 |
|
24 |
-
<button class="wpmudev-sr-only"><?php esc_html_e(
|
25 |
|
26 |
</div>
|
27 |
|
@@ -35,22 +35,22 @@ $hero_sample = forminator_plugin_dir() . "assets/icons/forminator-icons/hero-sam
|
|
35 |
|
36 |
<div class="wpmudev-sitem--header">
|
37 |
|
38 |
-
<div class="wpmudev-sitem--icon" aria-hidden="true"><?php echo $module->get_icon(); //
|
39 |
|
40 |
-
<h3 class="wpmudev-sitem--title"><?php echo $module->get_name(); //
|
41 |
|
42 |
</div>
|
43 |
|
44 |
<div class="wpmudev-sitem--section">
|
45 |
|
46 |
-
<p><?php echo $module->get_description(); //
|
47 |
|
48 |
</div>
|
49 |
|
50 |
<div class="wpmudev-sitem--footer">
|
51 |
-
|
52 |
-
<button href="/" class="wpmudev-button wpmudev-button-sm wpmudev-button-ghost wpmudev-open-modal" data-modal="<?php echo esc_attr( $module->get_id() ); ?>"><?php echo $module->get_label(); //
|
53 |
-
|
54 |
</div>
|
55 |
|
56 |
</div>
|
1 |
<?php
|
2 |
+
$icon_minus = forminator_plugin_dir() . 'assets/icons/admin-icons/minus.php';
|
3 |
+
$hero_sample = forminator_plugin_dir() . 'assets/icons/forminator-icons/hero-sample.php';
|
4 |
?>
|
5 |
|
6 |
<div class="wpmudev-row">
|
12 |
<div class="wpmudev-box-header">
|
13 |
|
14 |
<div class="wpmudev-header--text">
|
15 |
+
|
16 |
+
<h2 class="wpmudev-title"><?php esc_html_e( 'Create Modules', Forminator::DOMAIN ); ?></h2>
|
17 |
|
18 |
</div>
|
19 |
|
21 |
|
22 |
<button class="wpmudev-box--action" aria-hidden="true"><span class="wpmudev-icon--plus"></span></button>
|
23 |
|
24 |
+
<button class="wpmudev-sr-only"><?php esc_html_e( 'Hide box', Forminator::DOMAIN ); ?></button>
|
25 |
|
26 |
</div>
|
27 |
|
35 |
|
36 |
<div class="wpmudev-sitem--header">
|
37 |
|
38 |
+
<div class="wpmudev-sitem--icon" aria-hidden="true"><?php echo $module->get_icon(); // phpcs:ignore ?></div>
|
39 |
|
40 |
+
<h3 class="wpmudev-sitem--title"><?php echo $module->get_name(); // phpcs:ignore ?></h3>
|
41 |
|
42 |
</div>
|
43 |
|
44 |
<div class="wpmudev-sitem--section">
|
45 |
|
46 |
+
<p><?php echo $module->get_description(); // phpcs:ignore ?></p>
|
47 |
|
48 |
</div>
|
49 |
|
50 |
<div class="wpmudev-sitem--footer">
|
51 |
+
|
52 |
+
<button href="/" class="wpmudev-button wpmudev-button-sm wpmudev-button-ghost wpmudev-open-modal" data-modal="<?php echo esc_attr( $module->get_id() ); ?>"><?php echo $module->get_label(); // phpcs:ignore ?></button>
|
53 |
+
|
54 |
</div>
|
55 |
|
56 |
</div>
|
admin/views/dashboard/widgets/widget-poll.php
CHANGED
@@ -22,13 +22,13 @@ if ( 0 === $num_recent ) {
|
|
22 |
|
23 |
<div class="sui-box-header">
|
24 |
|
25 |
-
<h3 class="sui-box-title"><i class="sui-icon-graph-bar" aria-hidden="true"></i><?php esc_html_e(
|
26 |
|
27 |
</div>
|
28 |
|
29 |
<div class="sui-box-body">
|
30 |
|
31 |
-
<p><?php esc_html_e( 'Create interactive polls to collect users opinions, with lots of dynamic options and settings.', Forminator::DOMAIN ); ?></p>
|
32 |
|
33 |
<?php if ( 0 === forminator_polls_total() ) { ?>
|
34 |
|
@@ -55,21 +55,23 @@ if ( 0 === $num_recent ) {
|
|
55 |
|
56 |
<tbody>
|
57 |
|
58 |
-
<?php foreach( forminator_polls_modules( $num_recent, $statuses ) as $module ) { ?>
|
59 |
|
60 |
<tr>
|
61 |
|
62 |
-
<td class="sui-table-item-title"><?php echo $module['name'];
|
63 |
|
64 |
<td class="fui-col-status">
|
65 |
|
66 |
-
<?php
|
|
|
67 |
$status_class = 'published';
|
68 |
$status_text = esc_html__( 'Published', Forminator::DOMAIN );
|
69 |
} else {
|
70 |
$status_class = 'draft';
|
71 |
$status_text = esc_html__( 'Draft', Forminator::DOMAIN );
|
72 |
-
}
|
|
|
73 |
|
74 |
<span
|
75 |
class="sui-status-dot sui-<?php echo esc_html( $status_class ); ?> sui-tooltip"
|
@@ -78,7 +80,7 @@ if ( 0 === $num_recent ) {
|
|
78 |
<span aria-hidden="true"></span>
|
79 |
</span>
|
80 |
|
81 |
-
<a href="<?php echo admin_url( 'admin.php?page=forminator-poll&view-stats=' . esc_attr( $module['id'] ) ); //
|
82 |
class="sui-button-icon sui-tooltip"
|
83 |
data-tooltip="<?php esc_html_e( 'View Status', Forminator::DOMAIN ); ?>">
|
84 |
<i class="sui-icon-graph-line" aria-hidden="true"></i>
|
@@ -94,23 +96,23 @@ if ( 0 === $num_recent ) {
|
|
94 |
|
95 |
<ul>
|
96 |
<li>
|
97 |
-
<a href="<?php echo admin_url( 'admin.php?page=forminator-poll-wizard&id=' . $module['id'] ); //
|
98 |
<i class="sui-icon-pencil" aria-hidden="true"></i> <?php esc_html_e( 'Edit', Forminator::DOMAIN ); ?>
|
99 |
</a>
|
100 |
</li>
|
101 |
<li><button class="wpmudev-open-modal"
|
102 |
data-modal="preview_polls"
|
103 |
-
data-modal-title="<?php echo sprintf(
|
104 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
105 |
-
data-nonce="<?php echo wp_create_nonce( 'forminator_popup_preview_polls' );
|
106 |
-
<i class="sui-icon-eye" aria-hidden="true"></i> <?php esc_html_e(
|
107 |
</button></li>
|
108 |
|
109 |
<li>
|
110 |
-
<button class="copy-clipboard" data-shortcode='[forminator_poll id="<?php echo esc_attr( $module['id'] ); ?>"]'><i class="sui-icon-code" aria-hidden="true"></i> <?php esc_html_e(
|
111 |
</li>
|
112 |
|
113 |
-
<li><a href="<?php echo admin_url( 'admin.php?page=forminator-entries&form_type=forminator_polls&form_id=' . $module['id'] ); //
|
114 |
|
115 |
<li><form method="post">
|
116 |
<input type="hidden" name="forminator_action" value="clone">
|
@@ -135,12 +137,12 @@ if ( 0 === $num_recent ) {
|
|
135 |
<?php endif; ?>
|
136 |
|
137 |
<li><a href="#"
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
<i class="sui-icon-trash" aria-hidden="true"></i> <?php esc_html_e( 'Delete', Forminator::DOMAIN ); ?>
|
145 |
</a></li>
|
146 |
|
@@ -166,7 +168,7 @@ if ( 0 === $num_recent ) {
|
|
166 |
</button>
|
167 |
|
168 |
<div class="sui-actions-right">
|
169 |
-
<p class="sui-description"><a href="<?php echo admin_url( 'admin.php?page=forminator-poll' ); //
|
170 |
</div>
|
171 |
|
172 |
</div>
|
22 |
|
23 |
<div class="sui-box-header">
|
24 |
|
25 |
+
<h3 class="sui-box-title"><i class="sui-icon-graph-bar" aria-hidden="true"></i><?php esc_html_e( 'Polls', Forminator::DOMAIN ); ?></h3>
|
26 |
|
27 |
</div>
|
28 |
|
29 |
<div class="sui-box-body">
|
30 |
|
31 |
+
<p><?php esc_html_e( 'Create interactive polls to collect users\' opinions, with lots of dynamic options and settings.', Forminator::DOMAIN ); ?></p>
|
32 |
|
33 |
<?php if ( 0 === forminator_polls_total() ) { ?>
|
34 |
|
55 |
|
56 |
<tbody>
|
57 |
|
58 |
+
<?php foreach ( forminator_polls_modules( $num_recent, $statuses ) as $module ) { ?>
|
59 |
|
60 |
<tr>
|
61 |
|
62 |
+
<td class="sui-table-item-title"><?php echo esc_html( $module['name'] ); ?></td>
|
63 |
|
64 |
<td class="fui-col-status">
|
65 |
|
66 |
+
<?php
|
67 |
+
if ( 'publish' === $module['status'] ) {
|
68 |
$status_class = 'published';
|
69 |
$status_text = esc_html__( 'Published', Forminator::DOMAIN );
|
70 |
} else {
|
71 |
$status_class = 'draft';
|
72 |
$status_text = esc_html__( 'Draft', Forminator::DOMAIN );
|
73 |
+
}
|
74 |
+
?>
|
75 |
|
76 |
<span
|
77 |
class="sui-status-dot sui-<?php echo esc_html( $status_class ); ?> sui-tooltip"
|
80 |
<span aria-hidden="true"></span>
|
81 |
</span>
|
82 |
|
83 |
+
<a href="<?php echo admin_url( 'admin.php?page=forminator-poll&view-stats=' . esc_attr( $module['id'] ) ); // phpcs:ignore ?>"
|
84 |
class="sui-button-icon sui-tooltip"
|
85 |
data-tooltip="<?php esc_html_e( 'View Status', Forminator::DOMAIN ); ?>">
|
86 |
<i class="sui-icon-graph-line" aria-hidden="true"></i>
|
96 |
|
97 |
<ul>
|
98 |
<li>
|
99 |
+
<a href="<?php echo admin_url( 'admin.php?page=forminator-poll-wizard&id=' . $module['id'] ); // phpcs:ignore ?>">
|
100 |
<i class="sui-icon-pencil" aria-hidden="true"></i> <?php esc_html_e( 'Edit', Forminator::DOMAIN ); ?>
|
101 |
</a>
|
102 |
</li>
|
103 |
<li><button class="wpmudev-open-modal"
|
104 |
data-modal="preview_polls"
|
105 |
+
data-modal-title="<?php echo sprintf( '%s - %s', __( 'Preview Poll', Forminator::DOMAIN ), forminator_get_form_name( $module['id'], 'poll' ) ); // phpcs:ignore ?>"
|
106 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
107 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminator_popup_preview_polls' ) ); ?>">
|
108 |
+
<i class="sui-icon-eye" aria-hidden="true"></i> <?php esc_html_e( 'Preview', Forminator::DOMAIN ); ?>
|
109 |
</button></li>
|
110 |
|
111 |
<li>
|
112 |
+
<button class="copy-clipboard" data-shortcode='[forminator_poll id="<?php echo esc_attr( $module['id'] ); ?>"]'><i class="sui-icon-code" aria-hidden="true"></i> <?php esc_html_e( 'Copy Shortcode', Forminator::DOMAIN ); ?></button>
|
113 |
</li>
|
114 |
|
115 |
+
<li><a href="<?php echo admin_url( 'admin.php?page=forminator-entries&form_type=forminator_polls&form_id=' . $module['id'] ); // phpcs:ignore ?>"><i class="sui-icon-community-people" aria-hidden="true"></i> <?php esc_html_e( 'View Submissions', Forminator::DOMAIN ); ?></a></li>
|
116 |
|
117 |
<li><form method="post">
|
118 |
<input type="hidden" name="forminator_action" value="clone">
|
137 |
<?php endif; ?>
|
138 |
|
139 |
<li><a href="#"
|
140 |
+
class="wpmudev-open-modal"
|
141 |
+
data-modal="delete-module"
|
142 |
+
data-modal-title="<?php esc_attr_e( 'Delete Poll', Forminator::DOMAIN ); ?>"
|
143 |
+
data-modal-content="<?php esc_attr_e( 'Are you sure you wish to permanently delete this poll?', Forminator::DOMAIN ); ?>"
|
144 |
+
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
145 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminatorPollFormRequest' ) ); ?>">
|
146 |
<i class="sui-icon-trash" aria-hidden="true"></i> <?php esc_html_e( 'Delete', Forminator::DOMAIN ); ?>
|
147 |
</a></li>
|
148 |
|
168 |
</button>
|
169 |
|
170 |
<div class="sui-actions-right">
|
171 |
+
<p class="sui-description"><a href="<?php echo admin_url( 'admin.php?page=forminator-poll' ); // phpcs:ignore ?>" class="sui-link-gray"><?php esc_html_e( 'View all polls', Forminator::DOMAIN ); ?></a></p>
|
172 |
</div>
|
173 |
|
174 |
</div>
|
admin/views/dashboard/widgets/widget-quiz.php
CHANGED
@@ -24,7 +24,7 @@ if ( 0 === $num_recent ) {
|
|
24 |
|
25 |
<div class="sui-box-header">
|
26 |
|
27 |
-
<h3 class="sui-box-title"><i class="sui-icon-academy" aria-hidden="true"></i><?php esc_html_e(
|
28 |
|
29 |
</div>
|
30 |
|
@@ -64,17 +64,19 @@ if ( 0 === $num_recent ) {
|
|
64 |
|
65 |
<tr>
|
66 |
|
67 |
-
<td class="sui-table-item-title"><?php echo $module['name'];
|
68 |
|
69 |
<td class="fui-col-status">
|
70 |
|
71 |
-
<?php
|
|
|
72 |
$status_class = 'published';
|
73 |
$status_text = esc_html__( 'Published', Forminator::DOMAIN );
|
74 |
} else {
|
75 |
$status_class = 'draft';
|
76 |
$status_text = esc_html__( 'Draft', Forminator::DOMAIN );
|
77 |
-
}
|
|
|
78 |
|
79 |
<span
|
80 |
class="sui-status-dot sui-<?php echo esc_html( $status_class ); ?> sui-tooltip"
|
@@ -83,7 +85,7 @@ if ( 0 === $num_recent ) {
|
|
83 |
<span aria-hidden="true"></span>
|
84 |
</span>
|
85 |
|
86 |
-
<a href="<?php echo admin_url( 'admin.php?page=forminator-quiz&view-stats=' . esc_attr( $module['id'] ) ); //
|
87 |
class="sui-button-icon sui-tooltip"
|
88 |
data-tooltip="<?php esc_html_e( 'View Status', Forminator::DOMAIN ); ?>">
|
89 |
<i class="sui-icon-graph-line" aria-hidden="true"></i>
|
@@ -99,24 +101,24 @@ if ( 0 === $num_recent ) {
|
|
99 |
|
100 |
<ul>
|
101 |
<li>
|
102 |
-
<a href="<?php echo $this->getAdminEditUrl( $module['type'], $module['id'] ); //
|
103 |
<i class="sui-icon-pencil" aria-hidden="true"></i> <?php esc_html_e( 'Edit', Forminator::DOMAIN ); ?>
|
104 |
</a>
|
105 |
</li>
|
106 |
|
107 |
<li><button class="wpmudev-open-modal"
|
108 |
data-modal="preview_quizzes"
|
109 |
-
data-modal-title="<?php echo sprintf(
|
110 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
111 |
-
data-nonce="<?php echo wp_create_nonce( 'forminator_popup_preview_quizzes' );
|
112 |
<i class="sui-icon-eye" aria-hidden="true"></i> <?php esc_html_e( 'Preview', Forminator::DOMAIN ); ?>
|
113 |
</button></li>
|
114 |
|
115 |
<li>
|
116 |
-
<button class="copy-clipboard" data-shortcode='[forminator_quiz id="<?php echo esc_attr( $module['id'] ); ?>"]'><i class="sui-icon-code" aria-hidden="true"></i> <?php esc_html_e(
|
117 |
</li>
|
118 |
|
119 |
-
<li><a href="<?php echo admin_url( 'admin.php?page=forminator-entries&form_type=forminator_quizzes&form_id=' . $module['id'] ); //
|
120 |
|
121 |
<li><form method="post">
|
122 |
<input type="hidden" name="forminator_action" value="clone">
|
@@ -140,12 +142,12 @@ if ( 0 === $num_recent ) {
|
|
140 |
<?php endif; ?>
|
141 |
|
142 |
<li><a href="#"
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
-
|
149 |
<i class="sui-icon-trash" aria-hidden="true"></i> <?php esc_html_e( 'Delete', Forminator::DOMAIN ); ?>
|
150 |
</a></li>
|
151 |
|
@@ -171,7 +173,7 @@ if ( 0 === $num_recent ) {
|
|
171 |
</button>
|
172 |
|
173 |
<div class="sui-actions-right">
|
174 |
-
<p class="sui-description"><a href="<?php echo admin_url( 'admin.php?page=forminator-quiz' ); //
|
175 |
</div>
|
176 |
|
177 |
</div>
|
@@ -180,4 +182,4 @@ if ( 0 === $num_recent ) {
|
|
180 |
|
181 |
</div>
|
182 |
|
183 |
-
</div>
|
24 |
|
25 |
<div class="sui-box-header">
|
26 |
|
27 |
+
<h3 class="sui-box-title"><i class="sui-icon-academy" aria-hidden="true"></i><?php esc_html_e( 'Quizzes', Forminator::DOMAIN ); ?></h3>
|
28 |
|
29 |
</div>
|
30 |
|
64 |
|
65 |
<tr>
|
66 |
|
67 |
+
<td class="sui-table-item-title"><?php echo esc_html( $module['name'] ); ?></td>
|
68 |
|
69 |
<td class="fui-col-status">
|
70 |
|
71 |
+
<?php
|
72 |
+
if ( 'publish' === $module['status'] ) {
|
73 |
$status_class = 'published';
|
74 |
$status_text = esc_html__( 'Published', Forminator::DOMAIN );
|
75 |
} else {
|
76 |
$status_class = 'draft';
|
77 |
$status_text = esc_html__( 'Draft', Forminator::DOMAIN );
|
78 |
+
}
|
79 |
+
?>
|
80 |
|
81 |
<span
|
82 |
class="sui-status-dot sui-<?php echo esc_html( $status_class ); ?> sui-tooltip"
|
85 |
<span aria-hidden="true"></span>
|
86 |
</span>
|
87 |
|
88 |
+
<a href="<?php echo admin_url( 'admin.php?page=forminator-quiz&view-stats=' . esc_attr( $module['id'] ) ); // phpcs:ignore ?>"
|
89 |
class="sui-button-icon sui-tooltip"
|
90 |
data-tooltip="<?php esc_html_e( 'View Status', Forminator::DOMAIN ); ?>">
|
91 |
<i class="sui-icon-graph-line" aria-hidden="true"></i>
|
101 |
|
102 |
<ul>
|
103 |
<li>
|
104 |
+
<a href="<?php echo $this->getAdminEditUrl( $module['type'], $module['id'] ); // phpcs:ignore ?>">
|
105 |
<i class="sui-icon-pencil" aria-hidden="true"></i> <?php esc_html_e( 'Edit', Forminator::DOMAIN ); ?>
|
106 |
</a>
|
107 |
</li>
|
108 |
|
109 |
<li><button class="wpmudev-open-modal"
|
110 |
data-modal="preview_quizzes"
|
111 |
+
data-modal-title="<?php echo sprintf( '%s - %s', __( 'Preview Quiz', Forminator::DOMAIN ), forminator_get_form_name( $module['id'], 'quiz' ) ); // phpcs:ignore ?>"
|
112 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
113 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminator_popup_preview_quizzes' ) ); ?>">
|
114 |
<i class="sui-icon-eye" aria-hidden="true"></i> <?php esc_html_e( 'Preview', Forminator::DOMAIN ); ?>
|
115 |
</button></li>
|
116 |
|
117 |
<li>
|
118 |
+
<button class="copy-clipboard" data-shortcode='[forminator_quiz id="<?php echo esc_attr( $module['id'] ); ?>"]'><i class="sui-icon-code" aria-hidden="true"></i> <?php esc_html_e( 'Copy Shortcode', Forminator::DOMAIN ); ?></button>
|
119 |
</li>
|
120 |
|
121 |
+
<li><a href="<?php echo admin_url( 'admin.php?page=forminator-entries&form_type=forminator_quizzes&form_id=' . $module['id'] ); // phpcs:ignore ?>"><i class="sui-icon-community-people" aria-hidden="true"></i> <?php esc_html_e( 'View Submissions', Forminator::DOMAIN ); ?></a></li>
|
122 |
|
123 |
<li><form method="post">
|
124 |
<input type="hidden" name="forminator_action" value="clone">
|
142 |
<?php endif; ?>
|
143 |
|
144 |
<li><a href="#"
|
145 |
+
class="wpmudev-open-modal"
|
146 |
+
data-modal="delete-module"
|
147 |
+
data-modal-title="<?php esc_attr_e( 'Delete Quiz', Forminator::DOMAIN ); ?>"
|
148 |
+
data-modal-content="<?php esc_attr_e( 'Are you sure you wish to permanently delete this quiz?', Forminator::DOMAIN ); ?>"
|
149 |
+
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
150 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminatorQuizFormRequest' ) ); ?>">
|
151 |
<i class="sui-icon-trash" aria-hidden="true"></i> <?php esc_html_e( 'Delete', Forminator::DOMAIN ); ?>
|
152 |
</a></li>
|
153 |
|
173 |
</button>
|
174 |
|
175 |
<div class="sui-actions-right">
|
176 |
+
<p class="sui-description"><a href="<?php echo admin_url( 'admin.php?page=forminator-quiz' ); // phpcs:ignore ?>" class="sui-link-gray"><?php esc_html_e( 'View all quizzes', Forminator::DOMAIN ); ?></a></p>
|
177 |
</div>
|
178 |
|
179 |
</div>
|
182 |
|
183 |
</div>
|
184 |
|
185 |
+
</div>
|
admin/views/dashboard/widgets/widget-resume.php
CHANGED
@@ -1,11 +1,10 @@
|
|
1 |
<?php
|
2 |
-
$
|
3 |
-
$
|
4 |
-
$
|
5 |
-
$
|
6 |
-
$
|
7 |
-
$
|
8 |
-
$last_submission = forminator_get_latest_entry_time( 'custom-forms' );
|
9 |
?>
|
10 |
|
11 |
<div class="sui-box sui-summary <?php echo esc_attr( $this->get_box_summary_classes() ); ?>">
|
1 |
<?php
|
2 |
+
$total_modules = forminator_total_forms();
|
3 |
+
$count_active = forminator_total_forms( 'publish' );
|
4 |
+
$forms_total_submissions = Forminator_Form_Entry_Model::count_all_entries_by_type( 'custom-forms' ); // phpcs:ignore -- forminator_cforms_total();
|
5 |
+
$poll_total_submissions = Forminator_Form_Entry_Model::count_all_entries_by_type( 'poll' );// phpcs:ignore -- forminator_polls_total();
|
6 |
+
$quiz_total_submissions = Forminator_Form_Entry_Model::count_all_entries_by_type( 'quizzes' );// phpcs:ignore -- forminator_quizzes_total();
|
7 |
+
$last_submission = forminator_get_latest_entry_time( 'custom-forms' );
|
|
|
8 |
?>
|
9 |
|
10 |
<div class="sui-box sui-summary <?php echo esc_attr( $this->get_box_summary_classes() ); ?>">
|
admin/views/entries/content.php
CHANGED
@@ -22,7 +22,7 @@ $count = Forminator_Form_Entry_Model::count_all_entries();
|
|
22 |
class="sui-select-sm"
|
23 |
>
|
24 |
|
25 |
-
<?php foreach ( $this->get_form_types() as $post_type => $name ) { ?>
|
26 |
<option value="<?php echo esc_attr( $post_type ); ?>" <?php echo selected( $post_type, $this->get_current_form_type() ); ?>><?php echo esc_html( $name ); ?></option>
|
27 |
<?php } ?>
|
28 |
|
@@ -42,19 +42,19 @@ $count = Forminator_Form_Entry_Model::count_all_entries();
|
|
42 |
|
43 |
</form>
|
44 |
|
45 |
-
<?php if( $markup ) : ?>
|
46 |
|
47 |
<?php echo $markup; // phpcs:ignore ?>
|
48 |
|
49 |
-
<?php else: ?>
|
50 |
|
51 |
<div class="sui-box sui-message">
|
52 |
|
53 |
-
<?php if ( forminator_is_show_branding() ): ?>
|
54 |
<img src="<?php echo esc_url( forminator_plugin_url() . 'assets/img/forminator-disabled.png' ); ?>"
|
55 |
-
|
56 |
-
|
57 |
-
|
58 |
<?php endif; ?>
|
59 |
|
60 |
<div class="sui-message-content">
|
@@ -73,11 +73,11 @@ $count = Forminator_Form_Entry_Model::count_all_entries();
|
|
73 |
|
74 |
<div class="sui-box sui-message">
|
75 |
|
76 |
-
<?php if ( forminator_is_show_branding() ): ?>
|
77 |
<img src="<?php echo esc_url( forminator_plugin_url() . 'assets/img/forminator-submissions.png' ); ?>"
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
<?php endif; ?>
|
82 |
|
83 |
<div class="sui-message-content">
|
22 |
class="sui-select-sm"
|
23 |
>
|
24 |
|
25 |
+
<?php foreach ( $this->get_form_types() as $post_type => $name ) { // phpcs:ignore ?>
|
26 |
<option value="<?php echo esc_attr( $post_type ); ?>" <?php echo selected( $post_type, $this->get_current_form_type() ); ?>><?php echo esc_html( $name ); ?></option>
|
27 |
<?php } ?>
|
28 |
|
42 |
|
43 |
</form>
|
44 |
|
45 |
+
<?php if ( $markup ) : ?>
|
46 |
|
47 |
<?php echo $markup; // phpcs:ignore ?>
|
48 |
|
49 |
+
<?php else : ?>
|
50 |
|
51 |
<div class="sui-box sui-message">
|
52 |
|
53 |
+
<?php if ( forminator_is_show_branding() ) : ?>
|
54 |
<img src="<?php echo esc_url( forminator_plugin_url() . 'assets/img/forminator-disabled.png' ); ?>"
|
55 |
+
srcset="<?php echo esc_url( forminator_plugin_url() . 'assets/img/forminator-disabled.png' ); ?> 1x, <?php echo esc_url( forminator_plugin_url() . 'assets/img/forminator-disabled@2x.png' ); ?> 2x"
|
56 |
+
alt="<?php esc_html_e( 'Forminator', Forminator::DOMAIN ); ?>"
|
57 |
+
class="sui-image"/>
|
58 |
<?php endif; ?>
|
59 |
|
60 |
<div class="sui-message-content">
|
73 |
|
74 |
<div class="sui-box sui-message">
|
75 |
|
76 |
+
<?php if ( forminator_is_show_branding() ) : ?>
|
77 |
<img src="<?php echo esc_url( forminator_plugin_url() . 'assets/img/forminator-submissions.png' ); ?>"
|
78 |
+
srcset="<?php echo esc_url( forminator_plugin_url() . 'assets/img/forminator-submissions.png' ); ?> 1x, <?php echo esc_url( forminator_plugin_url() . 'assets/img/forminator-submissions@2x.png' ); ?> 2x"
|
79 |
+
alt="<?php esc_html_e( 'Forminator', Forminator::DOMAIN ); ?>"
|
80 |
+
class="sui-image"/>
|
81 |
<?php endif; ?>
|
82 |
|
83 |
<div class="sui-message-content">
|
admin/views/entries/header.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
-
<h1 class="sui-header-title"><?php esc_html_e(
|
2 |
|
3 |
<div class="sui-actions-right">
|
4 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
5 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#submissions" target="_blank" class="sui-button sui-button-ghost">
|
6 |
-
<i class="sui-icon-academy"></i> <?php esc_html_e(
|
7 |
</a>
|
8 |
<?php endif; ?>
|
9 |
</div>
|
1 |
+
<h1 class="sui-header-title"><?php esc_html_e( 'Submissions', Forminator::DOMAIN ); ?></h1>
|
2 |
|
3 |
<div class="sui-actions-right">
|
4 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
5 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#submissions" target="_blank" class="sui-button sui-button-ghost">
|
6 |
+
<i class="sui-icon-academy"></i> <?php esc_html_e( 'View Documentation', Forminator::DOMAIN ); ?>
|
7 |
</a>
|
8 |
<?php endif; ?>
|
9 |
</div>
|
admin/views/integrations/addon.php
CHANGED
@@ -10,14 +10,14 @@ $show_action = false;
|
|
10 |
|
11 |
$icon_class_action = 'sui-icon-plus';
|
12 |
$tooltip = __( 'Configure Integration', Forminator::DOMAIN );
|
13 |
-
$
|
14 |
|
15 |
$multi_id = 0;
|
16 |
$multi_name = false;
|
17 |
|
18 |
if ( ! empty( $form_id ) ) {
|
19 |
|
20 |
-
$
|
21 |
$show_action = false;
|
22 |
$icon_class_action = 'sui-icon-plus';
|
23 |
|
@@ -52,7 +52,6 @@ if ( ! empty( $form_id ) ) {
|
|
52 |
$tooltip = __( 'Activate App', Forminator::DOMAIN );
|
53 |
}
|
54 |
}
|
55 |
-
|
56 |
}
|
57 |
} else {
|
58 |
|
@@ -101,7 +100,12 @@ $pro_url_target = '_blank';
|
|
101 |
<?php endif; ?></td>
|
102 |
*/ ?>
|
103 |
|
104 |
-
<tr class="
|
|
|
|
|
|
|
|
|
|
|
105 |
|
106 |
<td class="sui-table-item-title">
|
107 |
|
@@ -135,7 +139,7 @@ $pro_url_target = '_blank';
|
|
135 |
|
136 |
<span><?php echo esc_html( $addon['title'] ); ?><?php if ( $show_pro_info && $addon['is_pro'] ) : ?>
|
137 |
<span class="sui-tag sui-tag-pro">
|
138 |
-
<?php esc_html_e(
|
139 |
</span>
|
140 |
<?php endif; ?></span>
|
141 |
|
@@ -150,8 +154,8 @@ $pro_url_target = '_blank';
|
|
150 |
data-title="<?php echo esc_attr( $addon['title'] ); ?>"
|
151 |
data-image="<?php echo esc_attr( $addon['image'] ); ?>"
|
152 |
data-imagex2="<?php echo esc_attr( $addon['image_x2'] ); ?>"
|
153 |
-
data-nonce="<?php echo wp_create_nonce( 'forminator_addon_action' );
|
154 |
-
data-action="<?php echo esc_attr( $
|
155 |
data-form-id="<?php echo esc_attr( $form_id ); ?>"
|
156 |
data-multi-id="<?php echo esc_attr( $multi_id ); ?>">
|
157 |
<i class="<?php echo esc_attr( $icon_class_action ); ?>" aria-hidden="true"></i>
|
@@ -189,7 +193,7 @@ $pro_url_target = '_blank';
|
|
189 |
|
190 |
<span><?php echo esc_html( $addon['title'] ); ?><?php if ( $show_pro_info && $addon['is_pro'] ) : ?>
|
191 |
<span class="sui-tag sui-tag-pro">
|
192 |
-
<?php esc_html_e(
|
193 |
</span>
|
194 |
<?php endif; ?></span>
|
195 |
|
@@ -200,8 +204,8 @@ $pro_url_target = '_blank';
|
|
200 |
data-title="<?php echo esc_attr( $addon['title'] ); ?>"
|
201 |
data-image="<?php echo esc_attr( $addon['image'] ); ?>"
|
202 |
data-imagex2="<?php echo esc_attr( $addon['image_x2'] ); ?>"
|
203 |
-
data-nonce="<?php echo wp_create_nonce( 'forminator_addon_action' );
|
204 |
-
data-action="<?php echo esc_attr( $
|
205 |
data-form-id="<?php echo esc_attr( $form_id ); ?>"
|
206 |
data-multi-id="<?php echo esc_attr( $multi_id ); ?>">
|
207 |
<i class="<?php echo esc_attr( $icon_class_action ); ?>" aria-hidden="true"></i>
|
10 |
|
11 |
$icon_class_action = 'sui-icon-plus';
|
12 |
$tooltip = __( 'Configure Integration', Forminator::DOMAIN );
|
13 |
+
$action_addon = 'forminator_addon_settings';
|
14 |
|
15 |
$multi_id = 0;
|
16 |
$multi_name = false;
|
17 |
|
18 |
if ( ! empty( $form_id ) ) {
|
19 |
|
20 |
+
$action_addon = 'forminator_addon_form_settings';
|
21 |
$show_action = false;
|
22 |
$icon_class_action = 'sui-icon-plus';
|
23 |
|
52 |
$tooltip = __( 'Activate App', Forminator::DOMAIN );
|
53 |
}
|
54 |
}
|
|
|
55 |
}
|
56 |
} else {
|
57 |
|
100 |
<?php endif; ?></td>
|
101 |
*/ ?>
|
102 |
|
103 |
+
<tr class="
|
104 |
+
<?php
|
105 |
+
if ( ! $is_active && true === $advertising ) {
|
106 |
+
echo 'fui-app--promote '; }
|
107 |
+
?>
|
108 |
+
<?php echo( $is_active ? 'fui-integration-enabled' : '' ); ?>">
|
109 |
|
110 |
<td class="sui-table-item-title">
|
111 |
|
139 |
|
140 |
<span><?php echo esc_html( $addon['title'] ); ?><?php if ( $show_pro_info && $addon['is_pro'] ) : ?>
|
141 |
<span class="sui-tag sui-tag-pro">
|
142 |
+
<?php esc_html_e( 'PRO', Forminator::DOMAIN ); ?>
|
143 |
</span>
|
144 |
<?php endif; ?></span>
|
145 |
|
154 |
data-title="<?php echo esc_attr( $addon['title'] ); ?>"
|
155 |
data-image="<?php echo esc_attr( $addon['image'] ); ?>"
|
156 |
data-imagex2="<?php echo esc_attr( $addon['image_x2'] ); ?>"
|
157 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminator_addon_action' ) ); ?>"
|
158 |
+
data-action="<?php echo esc_attr( $action_addon ); ?>"
|
159 |
data-form-id="<?php echo esc_attr( $form_id ); ?>"
|
160 |
data-multi-id="<?php echo esc_attr( $multi_id ); ?>">
|
161 |
<i class="<?php echo esc_attr( $icon_class_action ); ?>" aria-hidden="true"></i>
|
193 |
|
194 |
<span><?php echo esc_html( $addon['title'] ); ?><?php if ( $show_pro_info && $addon['is_pro'] ) : ?>
|
195 |
<span class="sui-tag sui-tag-pro">
|
196 |
+
<?php esc_html_e( 'PRO', Forminator::DOMAIN ); ?>
|
197 |
</span>
|
198 |
<?php endif; ?></span>
|
199 |
|
204 |
data-title="<?php echo esc_attr( $addon['title'] ); ?>"
|
205 |
data-image="<?php echo esc_attr( $addon['image'] ); ?>"
|
206 |
data-imagex2="<?php echo esc_attr( $addon['image_x2'] ); ?>"
|
207 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminator_addon_action' ) ); ?>"
|
208 |
+
data-action="<?php echo esc_attr( $action_addon ); ?>"
|
209 |
data-form-id="<?php echo esc_attr( $form_id ); ?>"
|
210 |
data-multi-id="<?php echo esc_attr( $multi_id ); ?>">
|
211 |
<i class="<?php echo esc_attr( $icon_class_action ); ?>" aria-hidden="true"></i>
|
admin/views/integrations/content.php
CHANGED
@@ -1,4 +1,4 @@
|
|
1 |
-
<?php $
|
2 |
|
3 |
<div class="sui-row-with-sidenav forminator-integrations-wrapper">
|
4 |
|
@@ -7,11 +7,11 @@
|
|
7 |
<ul class="sui-vertical-tabs sui-sidenav-hide-md">
|
8 |
|
9 |
<li class="sui-vertical-tab forminator-integrations" data-tab-id="forminator-integrations">
|
10 |
-
<a href="#forminator-integrations" role="button"><?php esc_html_e(
|
11 |
</li>
|
12 |
|
13 |
<li class="sui-vertical-tab forminator-api" data-tab-id="forminator-api">
|
14 |
-
<a href="#forminator-api" role="button"><?php esc_html_e(
|
15 |
</li>
|
16 |
|
17 |
</ul>
|
@@ -29,7 +29,7 @@
|
|
29 |
|
30 |
<div class="sui-box-header">
|
31 |
|
32 |
-
<h2 class="sui-box-title"><?php esc_html_e(
|
33 |
|
34 |
</div>
|
35 |
|
@@ -51,10 +51,10 @@
|
|
51 |
|
52 |
<div class="sui-box-header">
|
53 |
|
54 |
-
<h2 class="sui-box-title"><?php esc_html_e(
|
55 |
|
56 |
<div class="sui-actions-left">
|
57 |
-
<span class="sui-tag sui-tag-pro"><?php esc_html_e(
|
58 |
</div>
|
59 |
|
60 |
</div>
|
@@ -63,19 +63,19 @@
|
|
63 |
|
64 |
<div class="sui-box-body sui-block-content-center">
|
65 |
|
66 |
-
<?php if ( forminator_is_show_branding() ): ?>
|
67 |
-
<img src="<?php echo $
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
-
|
72 |
<?php endif; ?>
|
73 |
|
74 |
<div class="fui-limit-block-600 fui-limit-block-center">
|
75 |
|
76 |
<p>
|
77 |
<?php
|
78 |
-
esc_html_e(
|
79 |
?>
|
80 |
</p>
|
81 |
<p>
|
1 |
+
<?php $url = forminator_plugin_url(); ?>
|
2 |
|
3 |
<div class="sui-row-with-sidenav forminator-integrations-wrapper">
|
4 |
|
7 |
<ul class="sui-vertical-tabs sui-sidenav-hide-md">
|
8 |
|
9 |
<li class="sui-vertical-tab forminator-integrations" data-tab-id="forminator-integrations">
|
10 |
+
<a href="#forminator-integrations" role="button"><?php esc_html_e( 'Applications', Forminator::DOMAIN ); ?></a>
|
11 |
</li>
|
12 |
|
13 |
<li class="sui-vertical-tab forminator-api" data-tab-id="forminator-api">
|
14 |
+
<a href="#forminator-api" role="button"><?php esc_html_e( 'API', Forminator::DOMAIN ); ?></a>
|
15 |
</li>
|
16 |
|
17 |
</ul>
|
29 |
|
30 |
<div class="sui-box-header">
|
31 |
|
32 |
+
<h2 class="sui-box-title"><?php esc_html_e( 'Applications', Forminator::DOMAIN ); ?></h2>
|
33 |
|
34 |
</div>
|
35 |
|
51 |
|
52 |
<div class="sui-box-header">
|
53 |
|
54 |
+
<h2 class="sui-box-title"><?php esc_html_e( 'API', Forminator::DOMAIN ); ?></h2>
|
55 |
|
56 |
<div class="sui-actions-left">
|
57 |
+
<span class="sui-tag sui-tag-pro"><?php esc_html_e( 'PRO', Forminator::DOMAIN ); ?></span>
|
58 |
</div>
|
59 |
|
60 |
</div>
|
63 |
|
64 |
<div class="sui-box-body sui-block-content-center">
|
65 |
|
66 |
+
<?php if ( forminator_is_show_branding() ) : ?>
|
67 |
+
<img src="<?php echo $url . 'assets/img/forminator-disabled.png'; // phpcs:ignore ?>"
|
68 |
+
srcset="<?php echo $url . 'assets/img/forminator-disabled.png'; // phpcs:ignore ?> 1x,
|
69 |
+
<?php echo $url . 'assets/img/forminator-disabled@2x.png'; // phpcs:ignore ?> 2x"
|
70 |
+
alt="<?php esc_html_e( 'Forminator APIs', Forminator::DOMAIN ); ?>"
|
71 |
+
class="sui-image sui-image-center fui-image"/>
|
72 |
<?php endif; ?>
|
73 |
|
74 |
<div class="fui-limit-block-600 fui-limit-block-center">
|
75 |
|
76 |
<p>
|
77 |
<?php
|
78 |
+
esc_html_e( 'Build your own integrations and custom Forminator apps using our full featured API! Visit the Forminator API Docs to get started.', Forminator::DOMAIN );
|
79 |
?>
|
80 |
</p>
|
81 |
<p>
|
admin/views/integrations/form-content.php
CHANGED
@@ -8,7 +8,7 @@ if ( empty( $form_id ) ) {
|
|
8 |
if ( empty( $addons['form_connected'] ) && empty( $addons['not_form_connected'] ) ) { ?>
|
9 |
|
10 |
<div class="sui-notice sui-notice-info">
|
11 |
-
<p><?php printf( esc_html__( 'You are not connected to any third party apps. You can connect to the available apps via their API on the %1$sIntegrations%2$s page and come back to activate them for collecting data of this form.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' );
|
12 |
</div>
|
13 |
|
14 |
<?php } else { ?>
|
@@ -31,7 +31,7 @@ if ( empty( $addons['form_connected'] ) && empty( $addons['not_form_connected']
|
|
31 |
|
32 |
<?php foreach ( $addons['form_connected'] as $key => $provider ) : ?>
|
33 |
|
34 |
-
<?php echo forminator_addon_row_html_markup( $provider, $form_id, true, true );//
|
35 |
|
36 |
<?php endforeach; ?>
|
37 |
|
@@ -52,7 +52,7 @@ if ( empty( $addons['form_connected'] ) && empty( $addons['not_form_connected']
|
|
52 |
<?php if ( empty( $addons['not_form_connected'] ) ) { ?>
|
53 |
|
54 |
<div class="sui-notice">
|
55 |
-
<p><?php printf( esc_html__( 'Connect to more third party apps on the %1$sIntegrations%2$s page and activate them to collect the data of this form here.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' );
|
56 |
</div>
|
57 |
|
58 |
<?php } else { ?>
|
@@ -63,7 +63,7 @@ if ( empty( $addons['form_connected'] ) && empty( $addons['not_form_connected']
|
|
63 |
|
64 |
<?php foreach ( $addons['not_form_connected'] as $key => $provider ) : ?>
|
65 |
|
66 |
-
<?php echo forminator_addon_row_html_markup( $provider, $form_id, true, true );//
|
67 |
|
68 |
<?php endforeach; ?>
|
69 |
|
@@ -71,10 +71,11 @@ if ( empty( $addons['form_connected'] ) && empty( $addons['not_form_connected']
|
|
71 |
|
72 |
</table>
|
73 |
|
74 |
-
<span class="sui-description"><?php printf( esc_html__( 'You are connected to these apps via their API. Connect to more apps on the %1$sIntegrations%2$s page.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' ); ?></span>
|
75 |
|
76 |
<?php } ?>
|
77 |
|
78 |
</div>
|
79 |
|
80 |
-
<?php
|
|
8 |
if ( empty( $addons['form_connected'] ) && empty( $addons['not_form_connected'] ) ) { ?>
|
9 |
|
10 |
<div class="sui-notice sui-notice-info">
|
11 |
+
<p><?php printf( /* translators: ... */ esc_html__( 'You are not connected to any third party apps. You can connect to the available apps via their API on the %1$sIntegrations%2$s page and come back to activate them for collecting data of this form.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' ); ?></p>
|
12 |
</div>
|
13 |
|
14 |
<?php } else { ?>
|
31 |
|
32 |
<?php foreach ( $addons['form_connected'] as $key => $provider ) : ?>
|
33 |
|
34 |
+
<?php echo forminator_addon_row_html_markup( $provider, $form_id, true, true );// phpcs:ignore ?>
|
35 |
|
36 |
<?php endforeach; ?>
|
37 |
|
52 |
<?php if ( empty( $addons['not_form_connected'] ) ) { ?>
|
53 |
|
54 |
<div class="sui-notice">
|
55 |
+
<p><?php printf( /* translators: ... */ esc_html__( 'Connect to more third party apps on the %1$sIntegrations%2$s page and activate them to collect the data of this form here.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' ); ?></p>
|
56 |
</div>
|
57 |
|
58 |
<?php } else { ?>
|
63 |
|
64 |
<?php foreach ( $addons['not_form_connected'] as $key => $provider ) : ?>
|
65 |
|
66 |
+
<?php echo forminator_addon_row_html_markup( $provider, $form_id, true, true );// phpcs:ignore ?>
|
67 |
|
68 |
<?php endforeach; ?>
|
69 |
|
71 |
|
72 |
</table>
|
73 |
|
74 |
+
<span class="sui-description"><?php printf( /* translators: ... */ esc_html__( 'You are connected to these apps via their API. Connect to more apps on the %1$sIntegrations%2$s page.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' ); ?></span>
|
75 |
|
76 |
<?php } ?>
|
77 |
|
78 |
</div>
|
79 |
|
80 |
+
<?php
|
81 |
+
}
|
admin/views/integrations/header.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
-
<h1 class="sui-header-title"><?php esc_html_e(
|
2 |
|
3 |
<div class="sui-actions-right">
|
4 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
5 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#integrations" target="_blank" class="sui-button sui-button-ghost">
|
6 |
-
<i class="sui-icon-academy"></i> <?php esc_html_e(
|
7 |
</a>
|
8 |
<?php endif; ?>
|
9 |
|
1 |
+
<h1 class="sui-header-title"><?php esc_html_e( 'Integrations', Forminator::DOMAIN ); ?></h1>
|
2 |
|
3 |
<div class="sui-actions-right">
|
4 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
5 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#integrations" target="_blank" class="sui-button sui-button-ghost">
|
6 |
+
<i class="sui-icon-academy"></i> <?php esc_html_e( 'View Documentation', Forminator::DOMAIN ); ?>
|
7 |
</a>
|
8 |
<?php endif; ?>
|
9 |
|
admin/views/integrations/page-content.php
CHANGED
@@ -1,8 +1,7 @@
|
|
1 |
-
<?php $path = forminator_plugin_url(); ?>
|
2 |
<p>
|
3 |
<?php
|
4 |
esc_html_e( 'Forminator integrates with your favorite third party apps. You can connect to the available apps via their API here and activate them to collect data in the Integrations tab of your forms, polls or quizzes.', Forminator::DOMAIN );
|
5 |
-
|
6 |
</p>
|
7 |
|
8 |
<div class="fui-integrations-block">
|
@@ -10,7 +9,8 @@
|
|
10 |
<span class="sui-table-title"><?php esc_html_e( 'Connected Apps', Forminator::DOMAIN ); ?></span>
|
11 |
|
12 |
<?php
|
13 |
-
if ( ! empty( $addons['connected'] ) ) {
|
|
|
14 |
|
15 |
<table class="sui-table fui-table--apps">
|
16 |
|
@@ -18,7 +18,7 @@
|
|
18 |
|
19 |
<?php foreach ( $addons['connected'] as $key => $provider ) : ?>
|
20 |
|
21 |
-
<?php echo forminator_addon_row_html_markup( $provider, 0, true, true );//
|
22 |
|
23 |
<?php endforeach; ?>
|
24 |
|
@@ -43,7 +43,8 @@
|
|
43 |
<span class="sui-table-title"><?php esc_html_e( 'Available Apps', Forminator::DOMAIN ); ?></span>
|
44 |
|
45 |
<?php
|
46 |
-
if ( ! empty( $addons['not_connected'] ) ) {
|
|
|
47 |
|
48 |
<table class="sui-table fui-table--apps">
|
49 |
|
@@ -51,7 +52,7 @@
|
|
51 |
|
52 |
<?php foreach ( $addons['not_connected'] as $key => $provider ) : ?>
|
53 |
|
54 |
-
<?php echo forminator_addon_row_html_markup( $provider, 0, true );//
|
55 |
|
56 |
<?php endforeach; ?>
|
57 |
|
@@ -60,6 +61,7 @@
|
|
60 |
</table>
|
61 |
|
62 |
<?php
|
63 |
-
}
|
|
|
64 |
|
65 |
</div>
|
|
|
1 |
<p>
|
2 |
<?php
|
3 |
esc_html_e( 'Forminator integrates with your favorite third party apps. You can connect to the available apps via their API here and activate them to collect data in the Integrations tab of your forms, polls or quizzes.', Forminator::DOMAIN );
|
4 |
+
?>
|
5 |
</p>
|
6 |
|
7 |
<div class="fui-integrations-block">
|
9 |
<span class="sui-table-title"><?php esc_html_e( 'Connected Apps', Forminator::DOMAIN ); ?></span>
|
10 |
|
11 |
<?php
|
12 |
+
if ( ! empty( $addons['connected'] ) ) {
|
13 |
+
?>
|
14 |
|
15 |
<table class="sui-table fui-table--apps">
|
16 |
|
18 |
|
19 |
<?php foreach ( $addons['connected'] as $key => $provider ) : ?>
|
20 |
|
21 |
+
<?php echo forminator_addon_row_html_markup( $provider, 0, true, true );// phpcs:ignore ?>
|
22 |
|
23 |
<?php endforeach; ?>
|
24 |
|
43 |
<span class="sui-table-title"><?php esc_html_e( 'Available Apps', Forminator::DOMAIN ); ?></span>
|
44 |
|
45 |
<?php
|
46 |
+
if ( ! empty( $addons['not_connected'] ) ) {
|
47 |
+
?>
|
48 |
|
49 |
<table class="sui-table fui-table--apps">
|
50 |
|
52 |
|
53 |
<?php foreach ( $addons['not_connected'] as $key => $provider ) : ?>
|
54 |
|
55 |
+
<?php echo forminator_addon_row_html_markup( $provider, 0, true );// phpcs:ignore ?>
|
56 |
|
57 |
<?php endforeach; ?>
|
58 |
|
61 |
</table>
|
62 |
|
63 |
<?php
|
64 |
+
}
|
65 |
+
?>
|
66 |
|
67 |
</div>
|
admin/views/integrations/poll-content.php
CHANGED
@@ -8,7 +8,7 @@ if ( empty( $poll_id ) ) {
|
|
8 |
if ( empty( $addons['poll_connected'] ) && empty( $addons['not_poll_connected'] ) ) { ?>
|
9 |
|
10 |
<div class="sui-notice sui-notice-info">
|
11 |
-
<p><?php printf( esc_html__( 'You are not connected to any third party apps. You can connect to the available apps via their API on the %1$sIntegrations%2$s page and come back to activate them for collecting data of this poll.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' );
|
12 |
</div>
|
13 |
|
14 |
<?php } else { ?>
|
@@ -31,7 +31,7 @@ if ( empty( $addons['poll_connected'] ) && empty( $addons['not_poll_connected']
|
|
31 |
|
32 |
<?php foreach ( $addons['poll_connected'] as $key => $provider ) : ?>
|
33 |
|
34 |
-
<?php echo forminator_addon_poll_row_html_markup( $provider, $poll_id, true, true ); //
|
35 |
|
36 |
<?php endforeach; ?>
|
37 |
|
@@ -52,7 +52,7 @@ if ( empty( $addons['poll_connected'] ) && empty( $addons['not_poll_connected']
|
|
52 |
<?php if ( empty( $addons['not_poll_connected'] ) ) { ?>
|
53 |
|
54 |
<div class="sui-notice">
|
55 |
-
<p><?php printf( esc_html__( 'Connect to more third party apps on the %1$sIntegrations%2$s page and activate them to collect the data of this poll here.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' );
|
56 |
</div>
|
57 |
|
58 |
<?php } else { ?>
|
@@ -63,12 +63,13 @@ if ( empty( $addons['poll_connected'] ) && empty( $addons['not_poll_connected']
|
|
63 |
|
64 |
<?php foreach ( $addons['not_poll_connected'] as $key => $provider ) : ?>
|
65 |
|
66 |
-
<?php
|
|
|
67 |
continue;
|
68 |
}
|
69 |
?>
|
70 |
|
71 |
-
<?php echo forminator_addon_poll_row_html_markup( $provider, $poll_id, true, true ); //
|
72 |
|
73 |
<?php endforeach; ?>
|
74 |
|
@@ -76,10 +77,11 @@ if ( empty( $addons['poll_connected'] ) && empty( $addons['not_poll_connected']
|
|
76 |
|
77 |
</table>
|
78 |
|
79 |
-
<span class="sui-description"><?php printf( esc_html__( 'You are connected to these apps via their API. Connect to more apps on the %1$sIntegrations%2$s page.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' ); ?></span>
|
80 |
|
81 |
<?php } ?>
|
82 |
|
83 |
</div>
|
84 |
|
85 |
-
<?php
|
|
8 |
if ( empty( $addons['poll_connected'] ) && empty( $addons['not_poll_connected'] ) ) { ?>
|
9 |
|
10 |
<div class="sui-notice sui-notice-info">
|
11 |
+
<p><?php printf( /* translators: ... */ esc_html__( 'You are not connected to any third party apps. You can connect to the available apps via their API on the %1$sIntegrations%2$s page and come back to activate them for collecting data of this poll.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' ); ?></p>
|
12 |
</div>
|
13 |
|
14 |
<?php } else { ?>
|
31 |
|
32 |
<?php foreach ( $addons['poll_connected'] as $key => $provider ) : ?>
|
33 |
|
34 |
+
<?php echo forminator_addon_poll_row_html_markup( $provider, $poll_id, true, true ); // phpcs:ignore ?>
|
35 |
|
36 |
<?php endforeach; ?>
|
37 |
|
52 |
<?php if ( empty( $addons['not_poll_connected'] ) ) { ?>
|
53 |
|
54 |
<div class="sui-notice">
|
55 |
+
<p><?php printf( /* translators: ... */ esc_html__( 'Connect to more third party apps on the %1$sIntegrations%2$s page and activate them to collect the data of this poll here.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' ); ?></p>
|
56 |
</div>
|
57 |
|
58 |
<?php } else { ?>
|
63 |
|
64 |
<?php foreach ( $addons['not_poll_connected'] as $key => $provider ) : ?>
|
65 |
|
66 |
+
<?php
|
67 |
+
if ( ! $provider['is_poll_settings_available'] ) {
|
68 |
continue;
|
69 |
}
|
70 |
?>
|
71 |
|
72 |
+
<?php echo forminator_addon_poll_row_html_markup( $provider, $poll_id, true, true ); // phpcs:ignore ?>
|
73 |
|
74 |
<?php endforeach; ?>
|
75 |
|
77 |
|
78 |
</table>
|
79 |
|
80 |
+
<span class="sui-description"><?php printf( /* translators: ... */ esc_html__( 'You are connected to these apps via their API. Connect to more apps on the %1$sIntegrations%2$s page.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' ); ?></span>
|
81 |
|
82 |
<?php } ?>
|
83 |
|
84 |
</div>
|
85 |
|
86 |
+
<?php
|
87 |
+
}
|
admin/views/integrations/quiz-addon.php
CHANGED
@@ -42,7 +42,6 @@ if ( ! empty( $quiz_id ) ) {
|
|
42 |
$tooltip = __( 'Activate App', Forminator::DOMAIN );
|
43 |
}
|
44 |
}
|
45 |
-
|
46 |
}
|
47 |
} else {
|
48 |
// on integrations page
|
@@ -124,7 +123,7 @@ if ( ! $show_action ) {
|
|
124 |
|
125 |
<span><?php echo esc_html( $addon['title'] ); ?><?php if ( $show_pro_info && $addon['is_pro'] ) : ?>
|
126 |
<span class="sui-tag sui-tag-pro">
|
127 |
-
<?php esc_html_e(
|
128 |
</span>
|
129 |
<?php endif; ?></span>
|
130 |
|
@@ -132,19 +131,19 @@ if ( ! $show_action ) {
|
|
132 |
<a href="<?php echo esc_url( $addon['documentation'] ); ?>" target="_blank"><?php esc_html_e( 'View Docs', Forminator::DOMAIN ); ?></a>
|
133 |
<?php } ?>
|
134 |
|
135 |
-
|
136 |
-
|
137 |
-
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
-
|
144 |
-
|
145 |
-
|
146 |
-
|
147 |
-
|
148 |
|
149 |
</div>
|
150 |
|
@@ -176,23 +175,23 @@ if ( ! $show_action ) {
|
|
176 |
|
177 |
<span><?php echo esc_html( $addon['title'] ); ?><?php if ( $show_pro_info && $addon['is_pro'] ) : ?>
|
178 |
<span class="sui-tag sui-tag-pro">
|
179 |
-
<?php esc_html_e(
|
180 |
</span>
|
181 |
<?php endif; ?></span>
|
182 |
|
183 |
-
|
184 |
-
|
185 |
-
|
186 |
-
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
-
|
191 |
-
|
192 |
-
|
193 |
-
|
194 |
-
|
195 |
-
|
196 |
|
197 |
<?php } ?>
|
198 |
|
42 |
$tooltip = __( 'Activate App', Forminator::DOMAIN );
|
43 |
}
|
44 |
}
|
|
|
45 |
}
|
46 |
} else {
|
47 |
// on integrations page
|
123 |
|
124 |
<span><?php echo esc_html( $addon['title'] ); ?><?php if ( $show_pro_info && $addon['is_pro'] ) : ?>
|
125 |
<span class="sui-tag sui-tag-pro">
|
126 |
+
<?php esc_html_e( 'PRO', Forminator::DOMAIN ); ?>
|
127 |
</span>
|
128 |
<?php endif; ?></span>
|
129 |
|
131 |
<a href="<?php echo esc_url( $addon['documentation'] ); ?>" target="_blank"><?php esc_html_e( 'View Docs', Forminator::DOMAIN ); ?></a>
|
132 |
<?php } ?>
|
133 |
|
134 |
+
<button class="sui-button-icon sui-tooltip sui-tooltip-top-right connect-integration"
|
135 |
+
data-tooltip="<?php echo esc_attr( $tooltip ); ?>"
|
136 |
+
data-slug="<?php echo esc_attr( $addon['slug'] ); ?>"
|
137 |
+
data-title="<?php echo esc_attr( $addon['title'] ); ?>"
|
138 |
+
data-image="<?php echo esc_attr( $addon['image'] ); ?>"
|
139 |
+
data-imagex2="<?php echo esc_attr( $addon['image_x2'] ); ?>"
|
140 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminator_addon_action' ) ); ?>"
|
141 |
+
data-action="<?php echo esc_attr( $main_action ); ?>"
|
142 |
+
data-quiz-id="<?php echo esc_attr( $quiz_id ); ?>"
|
143 |
+
data-multi-id="<?php echo esc_attr( $multi_id ); ?>">
|
144 |
+
<i class="<?php echo esc_attr( $icon_class_action ); ?>" aria-hidden="true"></i>
|
145 |
+
<span class="sui-screen-reader-text"><?php esc_html_e( 'Connect this integration', Forminator::DOMAIN ); ?></span>
|
146 |
+
</button>
|
147 |
|
148 |
</div>
|
149 |
|
175 |
|
176 |
<span><?php echo esc_html( $addon['title'] ); ?><?php if ( $show_pro_info && $addon['is_pro'] ) : ?>
|
177 |
<span class="sui-tag sui-tag-pro">
|
178 |
+
<?php esc_html_e( 'PRO', Forminator::DOMAIN ); ?>
|
179 |
</span>
|
180 |
<?php endif; ?></span>
|
181 |
|
182 |
+
<button class="sui-button-icon sui-tooltip sui-tooltip-top-right connect-integration"
|
183 |
+
data-tooltip="<?php echo esc_attr( $tooltip ); ?>"
|
184 |
+
data-slug="<?php echo esc_attr( $addon['slug'] ); ?>"
|
185 |
+
data-title="<?php echo esc_attr( $addon['title'] ); ?>"
|
186 |
+
data-image="<?php echo esc_attr( $addon['image'] ); ?>"
|
187 |
+
data-imagex2="<?php echo esc_attr( $addon['image_x2'] ); ?>"
|
188 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminator_addon_action' ) ); ?>"
|
189 |
+
data-action="<?php echo esc_attr( $main_action ); ?>"
|
190 |
+
data-quiz-id="<?php echo esc_attr( $quiz_id ); ?>"
|
191 |
+
data-multi-id="<?php echo esc_attr( $multi_id ); ?>">
|
192 |
+
<i class="<?php echo esc_attr( $icon_class_action ); ?>" aria-hidden="true"></i>
|
193 |
+
<span class="sui-screen-reader-text"><?php esc_html_e( 'Connect this integration', Forminator::DOMAIN ); ?></span>
|
194 |
+
</button>
|
195 |
|
196 |
<?php } ?>
|
197 |
|
admin/views/integrations/quiz-content.php
CHANGED
@@ -8,7 +8,7 @@ if ( empty( $quiz_id ) ) {
|
|
8 |
if ( empty( $addons['quiz_connected'] ) && empty( $addons['not_quiz_connected'] ) ) { ?>
|
9 |
|
10 |
<div class="sui-notice sui-notice-info">
|
11 |
-
<p><?php printf( esc_html__( 'You are not connected to any third party apps. You can connect to the available apps via their API on the %1$sIntegrations%2$s page and come back to activate them for collecting data of this quiz.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' );
|
12 |
</div>
|
13 |
|
14 |
<?php } else { ?>
|
@@ -31,7 +31,7 @@ if ( empty( $addons['quiz_connected'] ) && empty( $addons['not_quiz_connected']
|
|
31 |
|
32 |
<?php foreach ( $addons['quiz_connected'] as $key => $provider ) : ?>
|
33 |
|
34 |
-
|
35 |
|
36 |
<?php endforeach; ?>
|
37 |
|
@@ -52,7 +52,7 @@ if ( empty( $addons['quiz_connected'] ) && empty( $addons['not_quiz_connected']
|
|
52 |
<?php if ( empty( $addons['not_quiz_connected'] ) ) { ?>
|
53 |
|
54 |
<div class="sui-notice">
|
55 |
-
<p><?php printf( esc_html__( 'Connect to more third party apps on the %1$sIntegrations%2$s page and activate them to collect the data of this quiz here.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' );
|
56 |
</div>
|
57 |
|
58 |
<?php } else { ?>
|
@@ -63,7 +63,7 @@ if ( empty( $addons['quiz_connected'] ) && empty( $addons['not_quiz_connected']
|
|
63 |
|
64 |
<?php foreach ( $addons['not_quiz_connected'] as $key => $provider ) : ?>
|
65 |
|
66 |
-
<?php echo forminator_addon_quiz_row_html_markup( $provider, $quiz_id, true, true ); //
|
67 |
|
68 |
<?php endforeach; ?>
|
69 |
|
@@ -71,10 +71,10 @@ if ( empty( $addons['quiz_connected'] ) && empty( $addons['not_quiz_connected']
|
|
71 |
|
72 |
</table>
|
73 |
|
74 |
-
<span class="sui-description"><?php printf( esc_html__( 'You are connected to these apps via their API. Connect to more apps on the %1$sIntegrations%2$s page.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' ); ?></span>
|
75 |
|
76 |
<?php } ?>
|
77 |
|
78 |
</div>
|
79 |
|
80 |
-
<?php } ?>
|
8 |
if ( empty( $addons['quiz_connected'] ) && empty( $addons['not_quiz_connected'] ) ) { ?>
|
9 |
|
10 |
<div class="sui-notice sui-notice-info">
|
11 |
+
<p><?php printf( /* translators: ... */ esc_html__( 'You are not connected to any third party apps. You can connect to the available apps via their API on the %1$sIntegrations%2$s page and come back to activate them for collecting data of this quiz.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' ); ?></p>
|
12 |
</div>
|
13 |
|
14 |
<?php } else { ?>
|
31 |
|
32 |
<?php foreach ( $addons['quiz_connected'] as $key => $provider ) : ?>
|
33 |
|
34 |
+
<?php echo forminator_addon_quiz_row_html_markup( $provider, $quiz_id, true, true ); // phpcs:ignore ?>
|
35 |
|
36 |
<?php endforeach; ?>
|
37 |
|
52 |
<?php if ( empty( $addons['not_quiz_connected'] ) ) { ?>
|
53 |
|
54 |
<div class="sui-notice">
|
55 |
+
<p><?php printf( /* translators: ... */ esc_html__( 'Connect to more third party apps on the %1$sIntegrations%2$s page and activate them to collect the data of this quiz here.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' ); ?></p>
|
56 |
</div>
|
57 |
|
58 |
<?php } else { ?>
|
63 |
|
64 |
<?php foreach ( $addons['not_quiz_connected'] as $key => $provider ) : ?>
|
65 |
|
66 |
+
<?php echo forminator_addon_quiz_row_html_markup( $provider, $quiz_id, true, true ); // phpcs:ignore ?>
|
67 |
|
68 |
<?php endforeach; ?>
|
69 |
|
71 |
|
72 |
</table>
|
73 |
|
74 |
+
<span class="sui-description"><?php printf( /* translators: ... */ esc_html__( 'You are connected to these apps via their API. Connect to more apps on the %1$sIntegrations%2$s page.', Forminator::DOMAIN ), '<a href="' . esc_url( $integrations_page ) . '">', '</a>' ); ?></span>
|
75 |
|
76 |
<?php } ?>
|
77 |
|
78 |
</div>
|
79 |
|
80 |
+
<?php } ?>
|
admin/views/poll/entries/content-none.php
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
-
<?php if ( forminator_is_show_branding() ): ?>
|
2 |
-
|
3 |
-
|
4 |
-
|
5 |
-
|
6 |
-
|
7 |
<?php endif; ?>
|
8 |
|
9 |
<div class="sui-message-content">
|
10 |
|
11 |
-
|
12 |
|
13 |
-
|
14 |
|
15 |
</div>
|
1 |
+
<?php if ( forminator_is_show_branding() ) : ?>
|
2 |
+
<img src="<?php echo esc_url( forminator_plugin_url() . 'assets/img/forminator-submissions.png' ); ?>"
|
3 |
+
srcset="<?php echo esc_url( forminator_plugin_url() . 'assets/img/forminator-submissions.png' ); ?> 1x, <?php echo esc_url( forminator_plugin_url() . 'assets/img/forminator-submissions@2x.png' ); ?> 2x"
|
4 |
+
alt="<?php esc_html_e( 'Forminator', Forminator::DOMAIN ); ?>"
|
5 |
+
class="sui-image"
|
6 |
+
aria-hidden="true"/>
|
7 |
<?php endif; ?>
|
8 |
|
9 |
<div class="sui-message-content">
|
10 |
|
11 |
+
<h2><?php echo forminator_get_form_name( $form_id, 'poll' ); // phpcs:ignore ?></h2>
|
12 |
|
13 |
+
<p><?php esc_html_e( 'You haven’t received any submissions for this poll yet. When you do, you’ll be able to view all the data here.', Forminator::DOMAIN ); ?></p>
|
14 |
|
15 |
</div>
|
admin/views/poll/entries/content.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<?php
|
2 |
-
$count
|
3 |
|
4 |
$poll_question = $this->get_poll_question();
|
5 |
$poll_description = $this->get_poll_description();
|
@@ -22,16 +22,16 @@ $custom_votes = $this->map_custom_votes();
|
|
22 |
<div class="sui-block-content-center">
|
23 |
<?php if ( ! empty( $poll_question ) ) { ?>
|
24 |
|
25 |
-
|
26 |
|
27 |
<?php } ?>
|
28 |
|
29 |
<?php if ( ! empty( $poll_description ) ) { ?>
|
30 |
|
31 |
-
|
32 |
|
33 |
<?php } ?>
|
34 |
-
|
35 |
|
36 |
</div>
|
37 |
|
@@ -41,23 +41,25 @@ $custom_votes = $this->map_custom_votes();
|
|
41 |
|
42 |
<?php if ( ! empty( $custom_votes ) && count( $custom_votes ) > 0 ) { ?>
|
43 |
|
44 |
-
<?php
|
|
|
45 |
|
46 |
echo '<div style="margin-top: 30px;">';
|
47 |
|
48 |
-
echo '<label class="sui-label">' . $this->get_field_title( $element_id ) . '</label>'; //
|
49 |
|
50 |
echo '<div style="margin-top: 10px;">';
|
51 |
|
52 |
-
|
53 |
-
|
54 |
-
|
55 |
|
56 |
echo '</div>';
|
57 |
|
58 |
echo '</div>';
|
59 |
|
60 |
-
}
|
|
|
61 |
|
62 |
<?php } ?>
|
63 |
|
@@ -67,17 +69,17 @@ $custom_votes = $this->map_custom_votes();
|
|
67 |
|
68 |
<div class="sui-actions-right">
|
69 |
|
70 |
-
|
71 |
-
|
72 |
-
|
73 |
-
|
74 |
-
|
75 |
-
|
76 |
-
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
|
82 |
</div>
|
83 |
|
@@ -88,10 +90,11 @@ $custom_votes = $this->map_custom_votes();
|
|
88 |
<?php else : ?>
|
89 |
|
90 |
<div class="sui-box sui-message">
|
91 |
-
|
92 |
-
|
93 |
-
|
|
|
94 |
</div>
|
95 |
|
96 |
-
<?php
|
97 |
endif;
|
1 |
<?php
|
2 |
+
$count = Forminator_Form_Entry_Model::count_entries( $this->form_id );
|
3 |
|
4 |
$poll_question = $this->get_poll_question();
|
5 |
$poll_description = $this->get_poll_description();
|
22 |
<div class="sui-block-content-center">
|
23 |
<?php if ( ! empty( $poll_question ) ) { ?>
|
24 |
|
25 |
+
<h2><?php echo $poll_question; // WPCS: XSS ok. ?></h2>
|
26 |
|
27 |
<?php } ?>
|
28 |
|
29 |
<?php if ( ! empty( $poll_description ) ) { ?>
|
30 |
|
31 |
+
<p><?php echo $poll_description; // WPCS: XSS ok. ?></p>
|
32 |
|
33 |
<?php } ?>
|
34 |
+
</div>
|
35 |
|
36 |
</div>
|
37 |
|
41 |
|
42 |
<?php if ( ! empty( $custom_votes ) && count( $custom_votes ) > 0 ) { ?>
|
43 |
|
44 |
+
<?php
|
45 |
+
foreach ( $custom_votes as $element_id => $custom_vote ) {
|
46 |
|
47 |
echo '<div style="margin-top: 30px;">';
|
48 |
|
49 |
+
echo '<label class="sui-label">' . $this->get_field_title( $element_id ) . '</label>'; // phpcs:ignore
|
50 |
|
51 |
echo '<div style="margin-top: 10px;">';
|
52 |
|
53 |
+
foreach ( $custom_vote as $answer => $vote ) {
|
54 |
+
echo '<span class="sui-tag">' . /* translators: ... */ esc_html( sprintf( _n( '%1$s (%2$s) vote', '%1$s (%2$s) votes', $vote, Forminator::DOMAIN ), $answer, $vote ) ) . '</span>';
|
55 |
+
}
|
56 |
|
57 |
echo '</div>';
|
58 |
|
59 |
echo '</div>';
|
60 |
|
61 |
+
}
|
62 |
+
?>
|
63 |
|
64 |
<?php } ?>
|
65 |
|
69 |
|
70 |
<div class="sui-actions-right">
|
71 |
|
72 |
+
<button
|
73 |
+
type="button"
|
74 |
+
class="sui-button sui-button-ghost wpmudev-open-modal"
|
75 |
+
data-modal="delete-poll-submission"
|
76 |
+
data-modal-title="<?php esc_attr_e( 'Delete Submissions', Forminator::DOMAIN ); ?>"
|
77 |
+
data-modal-content="<?php esc_attr_e( 'Are you sure you wish to delete the submissions on this poll?', Forminator::DOMAIN ); ?>"
|
78 |
+
data-form-id="<?php echo esc_attr( $this->form_id ); ?>"
|
79 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminatorPollEntries' ) ); ?>"
|
80 |
+
>
|
81 |
+
<i class="sui-icon-trash" aria-hidden="true"></i> <?php esc_html_e( 'Delete Submissions', Forminator::DOMAIN ); ?>
|
82 |
+
</button>
|
83 |
|
84 |
</div>
|
85 |
|
90 |
<?php else : ?>
|
91 |
|
92 |
<div class="sui-box sui-message">
|
93 |
+
<?php
|
94 |
+
$form_id = $this->form_id;
|
95 |
+
include_once forminator_plugin_dir() . 'admin/views/poll/entries/content-none.php';
|
96 |
+
?>
|
97 |
</div>
|
98 |
|
99 |
+
<?php
|
100 |
endif;
|
admin/views/poll/entries/header.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
-
<h1 class="sui-header-title"><?php esc_html_e(
|
2 |
|
3 |
<div class="sui-actions-right">
|
4 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
5 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#polls" target="_blank" class="sui-button sui-button-ghost">
|
6 |
-
<i class="sui-icon-academy"></i> <?php esc_html_e(
|
7 |
</a>
|
8 |
<?php endif; ?>
|
9 |
</div>
|
1 |
+
<h1 class="sui-header-title"><?php esc_html_e( 'Submissions', Forminator::DOMAIN ); ?></h1>
|
2 |
|
3 |
<div class="sui-actions-right">
|
4 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
5 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#polls" target="_blank" class="sui-button sui-button-ghost">
|
6 |
+
<i class="sui-icon-academy"></i> <?php esc_html_e( 'View Documentation', Forminator::DOMAIN ); ?>
|
7 |
</a>
|
8 |
<?php endif; ?>
|
9 |
</div>
|
admin/views/poll/list/content.php
CHANGED
@@ -6,14 +6,14 @@ $image_empty = forminator_plugin_url() . 'assets/images/forminator-empty-messa
|
|
6 |
$image_empty2x = forminator_plugin_url() . 'assets/images/forminator-empty-message@2x.png';
|
7 |
|
8 |
// Count total forms
|
9 |
-
$count
|
10 |
$count_active = $this->countModules( 'publish' );
|
11 |
|
12 |
// available bulk actions
|
13 |
$bulk_actions = $this->bulk_actions();
|
14 |
|
15 |
// Start date for retrieving the information of the last 30 days in sql format
|
16 |
-
$sql_month_start_date = date( 'Y-m-d H:i:s', strtotime( '-30 days midnight' ) )
|
17 |
|
18 |
// Count total entries from last 30 days
|
19 |
$total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_entry_ids( 'poll', $sql_month_start_date ) );
|
@@ -31,9 +31,9 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
31 |
|
32 |
<span class="sui-summary-large"><?php echo esc_html( $count_active ); ?></span>
|
33 |
<?php if ( $count_active > 1 ) { ?>
|
34 |
-
<span class="sui-summary-sub"><?php esc_html_e(
|
35 |
<?php } else { ?>
|
36 |
-
<span class="sui-summary-sub"><?php esc_html_e(
|
37 |
<?php } ?>
|
38 |
|
39 |
</div>
|
@@ -46,7 +46,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
46 |
|
47 |
<li>
|
48 |
<span class="sui-list-label"><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></span>
|
49 |
-
<span class="sui-list-detail"><?php echo forminator_get_latest_entry_time( 'poll' ); //
|
50 |
</li>
|
51 |
|
52 |
<li>
|
@@ -65,7 +65,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
65 |
|
66 |
<div class="fui-pagination-mobile sui-pagination-wrap">
|
67 |
|
68 |
-
<span class="sui-pagination-results"><?php echo esc_html( sprintf( _n( '%s result', '%s results', $count, Forminator::DOMAIN ), $count ) ); ?></span>
|
69 |
|
70 |
<?php $this->pagination(); ?>
|
71 |
|
@@ -106,7 +106,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
106 |
<div class="sui-search-right">
|
107 |
|
108 |
<div class="sui-pagination-wrap">
|
109 |
-
<span class="sui-pagination-results"><?php echo esc_html( sprintf( _n( '%s result', '%s results', $count, Forminator::DOMAIN ), $count ) ); ?></span>
|
110 |
<?php $this->pagination(); ?>
|
111 |
</div>
|
112 |
|
@@ -123,9 +123,9 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
123 |
|
124 |
<?php
|
125 |
foreach ( $this->getModules() as $module ) {
|
126 |
-
$module_entries_from_last_month =
|
127 |
-
$opened_class
|
128 |
-
$opened_chart
|
129 |
|
130 |
if( isset( $_GET['view-stats'] ) && intval( $_GET['view-stats'] ) === intval( $module['id'] ) ) { // phpcs:ignore
|
131 |
$opened_class = ' sui-accordion-item--open forminator-scroll-to';
|
@@ -145,23 +145,27 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
145 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Select this poll', Forminator::DOMAIN ); ?></span>
|
146 |
</label>
|
147 |
|
148 |
-
<span class="sui-trim-text"><?php echo forminator_get_form_name( $module['id'], 'poll'); //
|
149 |
|
150 |
-
<?php
|
|
|
151 |
echo '<span class="sui-tag sui-tag-blue">' . esc_html__( 'Published', Forminator::DOMAIN ) . '</span>';
|
152 |
-
}
|
|
|
153 |
|
154 |
-
<?php
|
|
|
155 |
echo '<span class="sui-tag">' . esc_html__( 'Draft', Forminator::DOMAIN ) . '</span>';
|
156 |
-
}
|
|
|
157 |
|
158 |
</div>
|
159 |
|
160 |
-
<div class="sui-accordion-item-date"><strong><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></strong> <?php echo esc_html( $module[
|
161 |
|
162 |
<div class="sui-accordion-col-auto">
|
163 |
|
164 |
-
<a href="<?php echo admin_url( 'admin.php?page=forminator-poll-wizard&id=' . $module['id'] ); //
|
165 |
class="sui-button sui-button-ghost sui-accordion-item-action">
|
166 |
<i class="sui-icon-pencil" aria-hidden="true"></i> <?php esc_html_e( 'Edit', Forminator::DOMAIN ); ?>
|
167 |
</a>
|
@@ -178,14 +182,14 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
178 |
<li><a href="#"
|
179 |
class="wpmudev-open-modal"
|
180 |
data-modal="preview_polls"
|
181 |
-
data-modal-title="<?php echo sprintf(
|
182 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
183 |
-
data-nonce="<?php echo wp_create_nonce( 'forminator_popup_preview_polls' );
|
184 |
-
<i class="sui-icon-eye" aria-hidden="true"></i> <?php esc_html_e(
|
185 |
</a></li>
|
186 |
|
187 |
<li>
|
188 |
-
<button class="copy-clipboard" data-shortcode='[forminator_poll id="<?php echo esc_attr( $module['id'] ); ?>"]'><i class="sui-icon-code" aria-hidden="true"></i> <?php esc_html_e(
|
189 |
</li>
|
190 |
|
191 |
<li>
|
@@ -195,7 +199,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
195 |
|
196 |
<?php if ( Forminator_Poll_Form_Model::STATUS_PUBLISH === $module['status'] ) : ?>
|
197 |
<input type="hidden" name="status" value="draft"/>
|
198 |
-
<?php elseif ( Forminator_Poll_Form_Model::STATUS_DRAFT === $module['status'] ): ?>
|
199 |
<input type="hidden" name="status" value="publish"/>
|
200 |
<?php endif; ?>
|
201 |
|
@@ -204,7 +208,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
204 |
|
205 |
<?php if ( Forminator_Poll_Form_Model::STATUS_PUBLISH === $module['status'] ) : ?>
|
206 |
<i class="sui-icon-unpublish" aria-hidden="true"></i> <?php esc_html_e( 'Unpublish', Forminator::DOMAIN ); ?>
|
207 |
-
<?php elseif ( Forminator_Poll_Form_Model::STATUS_DRAFT === $module['status'] ): ?>
|
208 |
<i class="sui-icon-upload-cloud" aria-hidden="true"></i> <?php esc_html_e( 'Publish', Forminator::DOMAIN ); ?>
|
209 |
<?php endif; ?>
|
210 |
|
@@ -212,20 +216,20 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
212 |
</form>
|
213 |
</li>
|
214 |
|
215 |
-
<li><a href="<?php echo admin_url( 'admin.php?page=forminator-poll-view&form_id=' . $module['id'] ); //
|
216 |
|
217 |
<li><form method="post">
|
218 |
<input type="hidden" name="forminator_action" value="clone">
|
219 |
<input type="hidden" name="id" value="<?php echo esc_attr( $module['id'] ); ?>"/>
|
220 |
<?php wp_nonce_field( 'forminatorPollFormRequest', 'forminatorNonce' ); ?>
|
221 |
-
<button type="submit"><i class="sui-icon-page-multiple" aria-hidden="true"></i> <?php esc_html_e(
|
222 |
</form></li>
|
223 |
|
224 |
<li><form method="post">
|
225 |
<input type="hidden" name="forminator_action" value="reset-views">
|
226 |
<input type="hidden" name="id" value="<?php echo esc_attr( $module['id'] ); ?>"/>
|
227 |
<?php wp_nonce_field( 'forminatorPollFormRequest', 'forminatorNonce' ); ?>
|
228 |
-
<button type="submit"><i class="sui-icon-update" aria-hidden="true"></i> <?php esc_html_e(
|
229 |
</form></li>
|
230 |
|
231 |
<?php if ( Forminator::is_import_export_feature_enabled() ) : ?>
|
@@ -248,7 +252,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
248 |
data-modal-title="<?php esc_attr_e( 'Delete Poll', Forminator::DOMAIN ); ?>"
|
249 |
data-modal-content="<?php esc_attr_e( 'Are you sure you wish to permanently delete this poll?', Forminator::DOMAIN ); ?>"
|
250 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
251 |
-
data-nonce="<?php echo wp_create_nonce( 'forminatorPollFormRequest' );
|
252 |
>
|
253 |
<i class="sui-icon-trash" aria-hidden="true"></i> <?php esc_html_e( 'Delete', Forminator::DOMAIN ); ?>
|
254 |
</button>
|
@@ -270,33 +274,33 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
270 |
|
271 |
<li data-col="large">
|
272 |
<strong><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></strong>
|
273 |
-
<span><?php echo esc_html( $module[
|
274 |
</li>
|
275 |
|
276 |
<li data-col="small">
|
277 |
<strong><?php esc_html_e( 'Views', Forminator::DOMAIN ); ?></strong>
|
278 |
-
<span><?php echo esc_html( $module[
|
279 |
</li>
|
280 |
|
281 |
<li>
|
282 |
<strong><?php esc_html_e( 'Submissions', Forminator::DOMAIN ); ?></strong>
|
283 |
-
<a href="<?php echo admin_url( 'admin.php?page=forminator-poll-view&form_id=' . $module['id'] ); //
|
284 |
</li>
|
285 |
|
286 |
<li>
|
287 |
<strong><?php esc_html_e( 'Conversion Rate', Forminator::DOMAIN ); ?></strong>
|
288 |
-
<span><?php echo $this->getRate( $module ); //
|
289 |
</li>
|
290 |
|
291 |
</ul>
|
292 |
|
293 |
-
<div class="sui-chartjs sui-chartjs-animated<?php echo esc_attr( $opened_chart ); ?>" data-chart-id="<?php echo $module['id'];
|
294 |
|
295 |
<div class="sui-chartjs-message sui-chartjs-message--loading">
|
296 |
<p><i class="sui-icon-loader sui-loading" aria-hidden="true"></i> <?php esc_html_e( 'Loading data...', Forminator::DOMAIN ); ?></p>
|
297 |
</div>
|
298 |
|
299 |
-
<?php if ( 0 === $module[
|
300 |
|
301 |
<div class="sui-chartjs-message sui-chartjs-message--empty">
|
302 |
<p><i class="sui-icon-info" aria-hidden="true"></i> <?php esc_html_e( "Your poll doesn't have any submission yet. Try again in a moment.", Forminator::DOMAIN ); ?></p>
|
@@ -316,8 +320,8 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
316 |
|
317 |
<div class="sui-chartjs-canvas">
|
318 |
|
319 |
-
<?php if ( ( 0 !== $module[
|
320 |
-
<canvas id="forminator-poll-<?php echo $module['id']; //
|
321 |
<?php } ?>
|
322 |
|
323 |
</div>
|
@@ -336,12 +340,12 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
336 |
|
337 |
<div class="sui-box sui-message">
|
338 |
|
339 |
-
<?php if ( forminator_is_show_branding() ): ?>
|
340 |
-
<img src="<?php echo $image_empty; //
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
<?php endif; ?>
|
346 |
|
347 |
<div class="sui-message-content">
|
@@ -375,24 +379,24 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
375 |
<?php } ?>
|
376 |
|
377 |
<?php
|
378 |
-
$days_array
|
379 |
$default_array = array();
|
380 |
|
381 |
for ( $h = 30; $h >= 0; $h-- ) {
|
382 |
-
$time
|
383 |
-
$date
|
384 |
$default_array[ $date ] = 0;
|
385 |
-
$days_array[]
|
386 |
}
|
387 |
|
388 |
foreach ( $this->getModules() as $module ) {
|
389 |
|
390 |
-
if ( 0 === $module[
|
391 |
$submissions_data = $default_array;
|
392 |
} else {
|
393 |
-
$submissions
|
394 |
$submissions_array = wp_list_pluck( $submissions, 'entries_amount', 'date_created' );
|
395 |
-
$submissions_data
|
396 |
}
|
397 |
|
398 |
// Get highest value
|
@@ -404,10 +408,10 @@ foreach ( $this->getModules() as $module ) {
|
|
404 |
|
405 |
<script>
|
406 |
|
407 |
-
var ctx = document.getElementById( 'forminator-poll-<?php echo $module['id']; //
|
408 |
|
409 |
-
var monthDays = [ '<?php echo implode( "', '", $days_array ); //
|
410 |
-
submissions = [ <?php echo implode( ', ', $submissions_data ); //
|
411 |
|
412 |
var chartData = {
|
413 |
labels: monthDays,
|
@@ -476,10 +480,10 @@ foreach ( $this->getModules() as $module ) {
|
|
476 |
return tooltipItem.xLabel;
|
477 |
},
|
478 |
// Set label text color
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
},
|
484 |
plugins: {
|
485 |
datalabels: {
|
6 |
$image_empty2x = forminator_plugin_url() . 'assets/images/forminator-empty-message@2x.png';
|
7 |
|
8 |
// Count total forms
|
9 |
+
$count = $this->countModules();
|
10 |
$count_active = $this->countModules( 'publish' );
|
11 |
|
12 |
// available bulk actions
|
13 |
$bulk_actions = $this->bulk_actions();
|
14 |
|
15 |
// Start date for retrieving the information of the last 30 days in sql format
|
16 |
+
$sql_month_start_date = date( 'Y-m-d H:i:s', strtotime( '-30 days midnight' ) );// phpcs:ignore
|
17 |
|
18 |
// Count total entries from last 30 days
|
19 |
$total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_entry_ids( 'poll', $sql_month_start_date ) );
|
31 |
|
32 |
<span class="sui-summary-large"><?php echo esc_html( $count_active ); ?></span>
|
33 |
<?php if ( $count_active > 1 ) { ?>
|
34 |
+
<span class="sui-summary-sub"><?php esc_html_e( 'Active Polls', Forminator::DOMAIN ); ?></span>
|
35 |
<?php } else { ?>
|
36 |
+
<span class="sui-summary-sub"><?php esc_html_e( 'Active Poll', Forminator::DOMAIN ); ?></span>
|
37 |
<?php } ?>
|
38 |
|
39 |
</div>
|
46 |
|
47 |
<li>
|
48 |
<span class="sui-list-label"><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></span>
|
49 |
+
<span class="sui-list-detail"><?php echo forminator_get_latest_entry_time( 'poll' ); // phpcs:ignore ?></span>
|
50 |
</li>
|
51 |
|
52 |
<li>
|
65 |
|
66 |
<div class="fui-pagination-mobile sui-pagination-wrap">
|
67 |
|
68 |
+
<span class="sui-pagination-results"><?php echo /* translators: ... */ esc_html( sprintf( _n( '%s result', '%s results', $count, Forminator::DOMAIN ), $count ) ); ?></span>
|
69 |
|
70 |
<?php $this->pagination(); ?>
|
71 |
|
106 |
<div class="sui-search-right">
|
107 |
|
108 |
<div class="sui-pagination-wrap">
|
109 |
+
<span class="sui-pagination-results"><?php /* translators: ... */ echo esc_html( sprintf( _n( '%s result', '%s results', $count, Forminator::DOMAIN ), $count ) ); ?></span>
|
110 |
<?php $this->pagination(); ?>
|
111 |
</div>
|
112 |
|
123 |
|
124 |
<?php
|
125 |
foreach ( $this->getModules() as $module ) {
|
126 |
+
$module_entries_from_last_month = 0 !== $module['entries'] ? count( Forminator_Form_Entry_Model::get_newer_entry_ids_of_form_id( $module['id'], $sql_month_start_date ) ) : 0;
|
127 |
+
$opened_class = '';
|
128 |
+
$opened_chart = '';
|
129 |
|
130 |
if( isset( $_GET['view-stats'] ) && intval( $_GET['view-stats'] ) === intval( $module['id'] ) ) { // phpcs:ignore
|
131 |
$opened_class = ' sui-accordion-item--open forminator-scroll-to';
|
145 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Select this poll', Forminator::DOMAIN ); ?></span>
|
146 |
</label>
|
147 |
|
148 |
+
<span class="sui-trim-text"><?php echo forminator_get_form_name( $module['id'], 'poll' ); // phpcs:ignore ?></span>
|
149 |
|
150 |
+
<?php
|
151 |
+
if ( 'publish' === $module['status'] ) {
|
152 |
echo '<span class="sui-tag sui-tag-blue">' . esc_html__( 'Published', Forminator::DOMAIN ) . '</span>';
|
153 |
+
}
|
154 |
+
?>
|
155 |
|
156 |
+
<?php
|
157 |
+
if ( 'draft' === $module['status'] ) {
|
158 |
echo '<span class="sui-tag">' . esc_html__( 'Draft', Forminator::DOMAIN ) . '</span>';
|
159 |
+
}
|
160 |
+
?>
|
161 |
|
162 |
</div>
|
163 |
|
164 |
+
<div class="sui-accordion-item-date"><strong><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></strong> <?php echo esc_html( $module['last_entry_time'] ); ?></div>
|
165 |
|
166 |
<div class="sui-accordion-col-auto">
|
167 |
|
168 |
+
<a href="<?php echo admin_url( 'admin.php?page=forminator-poll-wizard&id=' . $module['id'] ); //phpcs:ignore ?>"
|
169 |
class="sui-button sui-button-ghost sui-accordion-item-action">
|
170 |
<i class="sui-icon-pencil" aria-hidden="true"></i> <?php esc_html_e( 'Edit', Forminator::DOMAIN ); ?>
|
171 |
</a>
|
182 |
<li><a href="#"
|
183 |
class="wpmudev-open-modal"
|
184 |
data-modal="preview_polls"
|
185 |
+
data-modal-title="<?php /* translators: ... */ echo sprintf( '%s - %s', __( 'Preview Poll', Forminator::DOMAIN ), forminator_get_form_name( $module['id'], 'poll' ) ); // phpcs:ignore ?>"
|
186 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
187 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminator_popup_preview_polls' ) ); ?>">
|
188 |
+
<i class="sui-icon-eye" aria-hidden="true"></i> <?php esc_html_e( 'Preview', Forminator::DOMAIN ); ?>
|
189 |
</a></li>
|
190 |
|
191 |
<li>
|
192 |
+
<button class="copy-clipboard" data-shortcode='[forminator_poll id="<?php echo esc_attr( $module['id'] ); ?>"]'><i class="sui-icon-code" aria-hidden="true"></i> <?php esc_html_e( 'Copy Shortcode', Forminator::DOMAIN ); ?></button>
|
193 |
</li>
|
194 |
|
195 |
<li>
|
199 |
|
200 |
<?php if ( Forminator_Poll_Form_Model::STATUS_PUBLISH === $module['status'] ) : ?>
|
201 |
<input type="hidden" name="status" value="draft"/>
|
202 |
+
<?php elseif ( Forminator_Poll_Form_Model::STATUS_DRAFT === $module['status'] ) : ?>
|
203 |
<input type="hidden" name="status" value="publish"/>
|
204 |
<?php endif; ?>
|
205 |
|
208 |
|
209 |
<?php if ( Forminator_Poll_Form_Model::STATUS_PUBLISH === $module['status'] ) : ?>
|
210 |
<i class="sui-icon-unpublish" aria-hidden="true"></i> <?php esc_html_e( 'Unpublish', Forminator::DOMAIN ); ?>
|
211 |
+
<?php elseif ( Forminator_Poll_Form_Model::STATUS_DRAFT === $module['status'] ) : ?>
|
212 |
<i class="sui-icon-upload-cloud" aria-hidden="true"></i> <?php esc_html_e( 'Publish', Forminator::DOMAIN ); ?>
|
213 |
<?php endif; ?>
|
214 |
|
216 |
</form>
|
217 |
</li>
|
218 |
|
219 |
+
<li><a href="<?php echo admin_url( 'admin.php?page=forminator-poll-view&form_id=' . $module['id'] ); // phpcs:ignore ?>"><i class="sui-icon-community-people" aria-hidden="true"></i> <?php esc_html_e( 'View Submissions', Forminator::DOMAIN ); ?></a></li>
|
220 |
|
221 |
<li><form method="post">
|
222 |
<input type="hidden" name="forminator_action" value="clone">
|
223 |
<input type="hidden" name="id" value="<?php echo esc_attr( $module['id'] ); ?>"/>
|
224 |
<?php wp_nonce_field( 'forminatorPollFormRequest', 'forminatorNonce' ); ?>
|
225 |
+
<button type="submit"><i class="sui-icon-page-multiple" aria-hidden="true"></i> <?php esc_html_e( 'Duplicate', Forminator::DOMAIN ); ?></button>
|
226 |
</form></li>
|
227 |
|
228 |
<li><form method="post">
|
229 |
<input type="hidden" name="forminator_action" value="reset-views">
|
230 |
<input type="hidden" name="id" value="<?php echo esc_attr( $module['id'] ); ?>"/>
|
231 |
<?php wp_nonce_field( 'forminatorPollFormRequest', 'forminatorNonce' ); ?>
|
232 |
+
<button type="submit"><i class="sui-icon-update" aria-hidden="true"></i> <?php esc_html_e( 'Reset Tracking data', Forminator::DOMAIN ); ?></button>
|
233 |
</form></li>
|
234 |
|
235 |
<?php if ( Forminator::is_import_export_feature_enabled() ) : ?>
|
252 |
data-modal-title="<?php esc_attr_e( 'Delete Poll', Forminator::DOMAIN ); ?>"
|
253 |
data-modal-content="<?php esc_attr_e( 'Are you sure you wish to permanently delete this poll?', Forminator::DOMAIN ); ?>"
|
254 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
255 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminatorPollFormRequest' ) ); ?>"
|
256 |
>
|
257 |
<i class="sui-icon-trash" aria-hidden="true"></i> <?php esc_html_e( 'Delete', Forminator::DOMAIN ); ?>
|
258 |
</button>
|
274 |
|
275 |
<li data-col="large">
|
276 |
<strong><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></strong>
|
277 |
+
<span><?php echo esc_html( $module['last_entry_time'] ); ?></span>
|
278 |
</li>
|
279 |
|
280 |
<li data-col="small">
|
281 |
<strong><?php esc_html_e( 'Views', Forminator::DOMAIN ); ?></strong>
|
282 |
+
<span><?php echo esc_html( $module['views'] ); ?></span>
|
283 |
</li>
|
284 |
|
285 |
<li>
|
286 |
<strong><?php esc_html_e( 'Submissions', Forminator::DOMAIN ); ?></strong>
|
287 |
+
<a href="<?php echo admin_url( 'admin.php?page=forminator-poll-view&form_id=' . $module['id'] ); // phpcs:ignore ?>"><?php echo esc_html( $module['entries'] ); ?></a>
|
288 |
</li>
|
289 |
|
290 |
<li>
|
291 |
<strong><?php esc_html_e( 'Conversion Rate', Forminator::DOMAIN ); ?></strong>
|
292 |
+
<span><?php echo $this->getRate( $module ); // phpcs:ignore ?>%</span>
|
293 |
</li>
|
294 |
|
295 |
</ul>
|
296 |
|
297 |
+
<div class="sui-chartjs sui-chartjs-animated<?php echo esc_attr( $opened_chart ); ?>" data-chart-id="<?php echo esc_attr( $module['id'] ); ?>">
|
298 |
|
299 |
<div class="sui-chartjs-message sui-chartjs-message--loading">
|
300 |
<p><i class="sui-icon-loader sui-loading" aria-hidden="true"></i> <?php esc_html_e( 'Loading data...', Forminator::DOMAIN ); ?></p>
|
301 |
</div>
|
302 |
|
303 |
+
<?php if ( 0 === $module['entries'] ) { ?>
|
304 |
|
305 |
<div class="sui-chartjs-message sui-chartjs-message--empty">
|
306 |
<p><i class="sui-icon-info" aria-hidden="true"></i> <?php esc_html_e( "Your poll doesn't have any submission yet. Try again in a moment.", Forminator::DOMAIN ); ?></p>
|
320 |
|
321 |
<div class="sui-chartjs-canvas">
|
322 |
|
323 |
+
<?php if ( ( 0 !== $module['entries'] ) || ( 0 !== $module_entries_from_last_month ) ) { ?>
|
324 |
+
<canvas id="forminator-poll-<?php echo $module['id']; // phpcs:ignore ?>-stats"></canvas>
|
325 |
<?php } ?>
|
326 |
|
327 |
</div>
|
340 |
|
341 |
<div class="sui-box sui-message">
|
342 |
|
343 |
+
<?php if ( forminator_is_show_branding() ) : ?>
|
344 |
+
<img src="<?php echo $image_empty; // phpcs:ignore ?>"
|
345 |
+
srcset="<?php echo $image_empty2x; // phpcs:ignore ?> 1x, <?php echo $image_empty2x; // phpcs:ignore ?> 2x"
|
346 |
+
alt="<?php esc_html_e( 'Empty polls', Forminator::DOMAIN ); ?>"
|
347 |
+
class="sui-image"
|
348 |
+
aria-hidden="true"/>
|
349 |
<?php endif; ?>
|
350 |
|
351 |
<div class="sui-message-content">
|
379 |
<?php } ?>
|
380 |
|
381 |
<?php
|
382 |
+
$days_array = array();
|
383 |
$default_array = array();
|
384 |
|
385 |
for ( $h = 30; $h >= 0; $h-- ) {
|
386 |
+
$time = strtotime( '-' . $h . ' days' );
|
387 |
+
$date = date( 'Y-m-d', $time );//phpcs:ignore
|
388 |
$default_array[ $date ] = 0;
|
389 |
+
$days_array[] = date( 'M j, Y', $time );//phpcs:ignore
|
390 |
}
|
391 |
|
392 |
foreach ( $this->getModules() as $module ) {
|
393 |
|
394 |
+
if ( 0 === $module['entries'] ) {
|
395 |
$submissions_data = $default_array;
|
396 |
} else {
|
397 |
+
$submissions = Forminator_Form_Entry_Model::get_form_latest_entries_count_grouped_by_day( $module['id'], $sql_month_start_date );
|
398 |
$submissions_array = wp_list_pluck( $submissions, 'entries_amount', 'date_created' );
|
399 |
+
$submissions_data = array_merge( $default_array, array_intersect_key( $submissions_array, $default_array ) );
|
400 |
}
|
401 |
|
402 |
// Get highest value
|
408 |
|
409 |
<script>
|
410 |
|
411 |
+
var ctx = document.getElementById( 'forminator-poll-<?php echo $module['id']; // phpcs:ignore ?>-stats' );
|
412 |
|
413 |
+
var monthDays = [ '<?php echo implode( "', '", $days_array ); // phpcs:ignore ?>' ],
|
414 |
+
submissions = [ <?php echo implode( ', ', $submissions_data ); // phpcs:ignore ?> ];
|
415 |
|
416 |
var chartData = {
|
417 |
labels: monthDays,
|
480 |
return tooltipItem.xLabel;
|
481 |
},
|
482 |
// Set label text color
|
483 |
+
labelTextColor:function( tooltipItem, chart ){
|
484 |
+
return '#AAAAAA';
|
485 |
+
}
|
486 |
+
}
|
487 |
},
|
488 |
plugins: {
|
489 |
datalabels: {
|
admin/views/poll/list/header.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php $count = $this->countModules(); ?>
|
2 |
|
3 |
-
<h1 class="sui-header-title"><?php esc_html_e(
|
4 |
|
5 |
<div class="sui-actions-left">
|
6 |
|
@@ -23,7 +23,7 @@
|
|
23 |
<div class="sui-actions-right">
|
24 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
25 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#polls" target="_blank" class="sui-button sui-button-ghost">
|
26 |
-
<i class="sui-icon-academy"></i> <?php esc_html_e(
|
27 |
</a>
|
28 |
<?php endif; ?>
|
29 |
</div>
|
1 |
<?php $count = $this->countModules(); ?>
|
2 |
|
3 |
+
<h1 class="sui-header-title"><?php esc_html_e( 'Polls', Forminator::DOMAIN ); ?></h1>
|
4 |
|
5 |
<div class="sui-actions-left">
|
6 |
|
23 |
<div class="sui-actions-right">
|
24 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
25 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#polls" target="_blank" class="sui-button sui-button-ghost">
|
26 |
+
<i class="sui-icon-academy"></i> <?php esc_html_e( 'View Documentation', Forminator::DOMAIN ); ?>
|
27 |
</a>
|
28 |
<?php endif; ?>
|
29 |
</div>
|
admin/views/poll/popup/export.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<?php
|
2 |
-
$form_id = $_POST['id'];//
|
3 |
$nonce = wp_create_nonce( 'forminatorPollFormRequest' );
|
4 |
|
5 |
$exportable = array();
|
@@ -7,7 +7,7 @@ $model = Forminator_Poll_Form_Model::model()->load( $form_id );
|
|
7 |
if ( $model instanceof Forminator_Poll_Form_Model ) {
|
8 |
$exportable = $model->to_exportable_data();
|
9 |
}
|
10 |
-
$text_area_id = uniqid('export-text-');
|
11 |
?>
|
12 |
|
13 |
<div class="sui-box-body wpmudev-popup-form">
|
@@ -19,7 +19,8 @@ $text_area_id = uniqid('export-text-');
|
|
19 |
|
20 |
<div class="sui-notice sui-notice-info">
|
21 |
<p>
|
22 |
-
<?php
|
|
|
23 |
sprintf(
|
24 |
__( 'You can import this %1$s in Forminator %2$s%3$s%4$s or above. The %5$s may break on a version lower than your install.', Forminator::DOMAIN ), //phpcs:ignore
|
25 |
__( 'Poll', Forminator::DOMAIN ),//phpcs:ignore
|
@@ -28,7 +29,8 @@ $text_area_id = uniqid('export-text-');
|
|
28 |
'</strong>',
|
29 |
__( 'Poll', Forminator::DOMAIN )
|
30 |
)
|
31 |
-
);
|
|
|
32 |
</p>
|
33 |
</div>
|
34 |
|
1 |
<?php
|
2 |
+
$form_id = $_POST['id'];// phpcs:ignore -- varified on admin ajax
|
3 |
$nonce = wp_create_nonce( 'forminatorPollFormRequest' );
|
4 |
|
5 |
$exportable = array();
|
7 |
if ( $model instanceof Forminator_Poll_Form_Model ) {
|
8 |
$exportable = $model->to_exportable_data();
|
9 |
}
|
10 |
+
$text_area_id = uniqid( 'export-text-' );
|
11 |
?>
|
12 |
|
13 |
<div class="sui-box-body wpmudev-popup-form">
|
19 |
|
20 |
<div class="sui-notice sui-notice-info">
|
21 |
<p>
|
22 |
+
<?php
|
23 |
+
echo(
|
24 |
sprintf(
|
25 |
__( 'You can import this %1$s in Forminator %2$s%3$s%4$s or above. The %5$s may break on a version lower than your install.', Forminator::DOMAIN ), //phpcs:ignore
|
26 |
__( 'Poll', Forminator::DOMAIN ),//phpcs:ignore
|
29 |
'</strong>',
|
30 |
__( 'Poll', Forminator::DOMAIN )
|
31 |
)
|
32 |
+
);
|
33 |
+
?>
|
34 |
</p>
|
35 |
</div>
|
36 |
|
admin/views/poll/wizard/header.php
CHANGED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php // phpcs:ignore
|
admin/views/quiz/entries/content.php
CHANGED
@@ -36,11 +36,15 @@ $total_page = ceil( $count / $entries_per_page );
|
|
36 |
<div class="sui-pagination-wrap">
|
37 |
|
38 |
<span class="sui-pagination-results">
|
39 |
-
<?php
|
|
|
|
|
40 |
printf( esc_html__( '%s result', Forminator::DOMAIN ), esc_html( $count ) );
|
41 |
} else {
|
|
|
42 |
printf( esc_html__( '%s results', Forminator::DOMAIN ), esc_html( $count ) );
|
43 |
-
}
|
|
|
44 |
</span>
|
45 |
|
46 |
<?php $this->paginate(); ?>
|
@@ -61,10 +65,10 @@ $total_page = ceil( $count / $entries_per_page );
|
|
61 |
<label class="sui-checkbox">
|
62 |
<input id="wpf-cform-check_all" type="checkbox">
|
63 |
<span></span>
|
64 |
-
<div class="sui-description"><?php esc_html_e(
|
65 |
</label>
|
66 |
</th>
|
67 |
-
<th colspan="5"><?php esc_html_e(
|
68 |
</tr>
|
69 |
|
70 |
</thead>
|
@@ -92,7 +96,7 @@ $total_page = ceil( $count / $entries_per_page );
|
|
92 |
</td>
|
93 |
|
94 |
<td colspan="5">
|
95 |
-
<?php echo date( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( $entry->date_created_sql ) ); //
|
96 |
<span class="sui-accordion-open-indicator">
|
97 |
<i class="sui-icon-chevron-down"></i>
|
98 |
</span>
|
@@ -109,7 +113,7 @@ $total_page = ceil( $count / $entries_per_page );
|
|
109 |
<div class="sui-box-body">
|
110 |
|
111 |
<h2>
|
112 |
-
<?php echo forminator_get_form_name( $this->form_id, 'quiz' ); //
|
113 |
</h2>
|
114 |
|
115 |
<?php if ( 'knowledge' === $form_type ) { ?>
|
@@ -126,9 +130,9 @@ $total_page = ceil( $count / $entries_per_page );
|
|
126 |
|
127 |
<tr>
|
128 |
|
129 |
-
<th><?php esc_html_e(
|
130 |
|
131 |
-
<th><?php esc_html_e(
|
132 |
|
133 |
</tr>
|
134 |
|
@@ -155,11 +159,11 @@ $total_page = ceil( $count / $entries_per_page );
|
|
155 |
<?php
|
156 |
if ( $answer['isCorrect'] ) {
|
157 |
|
158 |
-
echo '<span class="sui-tag sui-tag-success">' . $user_answer . '</span>';
|
159 |
|
160 |
} else {
|
161 |
|
162 |
-
echo '<span class="sui-tag sui-tag-error">' . $user_answer . '</span>';
|
163 |
|
164 |
}
|
165 |
?>
|
@@ -173,7 +177,7 @@ $total_page = ceil( $count / $entries_per_page );
|
|
173 |
<?php if ( ! empty( $integrations_data ) ) : ?>
|
174 |
<?php foreach ( $integrations_data as $integrations_datum ) : ?>
|
175 |
<tr>
|
176 |
-
<td><?php echo $integrations_datum['label']; //
|
177 |
<td>
|
178 |
<?php
|
179 |
$sub_entries = isset( $integrations_datum['sub_entries'] ) ? $integrations_datum['sub_entries'] : array();
|
@@ -182,11 +186,11 @@ $total_page = ceil( $count / $entries_per_page );
|
|
182 |
<?php foreach ( $sub_entries as $sub_entry ) : ?>
|
183 |
<div class="">
|
184 |
<span class="sui-settings-label"><?php echo esc_html( $sub_entry['label'] ); ?></span>
|
185 |
-
<span class="sui-description"><?php echo( $sub_entry['value'] ); //
|
186 |
</div>
|
187 |
<?php endforeach; ?>
|
188 |
-
<?php else: ?>
|
189 |
-
<?php echo( $integrations_datum['value'] ); //
|
190 |
<?php endif; ?>
|
191 |
</td>
|
192 |
</tr>
|
@@ -216,9 +220,9 @@ $total_page = ceil( $count / $entries_per_page );
|
|
216 |
|
217 |
<tr>
|
218 |
|
219 |
-
<th><?php esc_html_e(
|
220 |
|
221 |
-
<th><?php esc_html_e(
|
222 |
|
223 |
</tr>
|
224 |
|
@@ -230,9 +234,9 @@ $total_page = ceil( $count / $entries_per_page );
|
|
230 |
|
231 |
<tr>
|
232 |
|
233 |
-
<td><?php echo $answer['question'];
|
234 |
|
235 |
-
<td><?php echo $answer['answer'];
|
236 |
|
237 |
</tr>
|
238 |
|
@@ -242,7 +246,7 @@ $total_page = ceil( $count / $entries_per_page );
|
|
242 |
<?php if ( ! empty( $integrations_data ) ) : ?>
|
243 |
<?php foreach ( $integrations_data as $integrations_datum ) : ?>
|
244 |
<tr>
|
245 |
-
<td><?php echo $integrations_datum['label']; //
|
246 |
<td>
|
247 |
<?php
|
248 |
$sub_entries = isset( $integrations_datum['sub_entries'] ) ? $integrations_datum['sub_entries'] : array();
|
@@ -251,11 +255,11 @@ $total_page = ceil( $count / $entries_per_page );
|
|
251 |
<?php foreach ( $sub_entries as $sub_entry ) : ?>
|
252 |
<div class="">
|
253 |
<span class="sui-settings-label"><?php echo esc_html( $sub_entry['label'] ); ?></span>
|
254 |
-
<span class="sui-description"><?php echo( $sub_entry['value'] ); //
|
255 |
</div>
|
256 |
<?php endforeach; ?>
|
257 |
-
<?php else: ?>
|
258 |
-
<?php echo( $integrations_datum['value'] ); //
|
259 |
<?php endif; ?>
|
260 |
</td>
|
261 |
</tr>
|
@@ -271,7 +275,7 @@ $total_page = ceil( $count / $entries_per_page );
|
|
271 |
|
272 |
<div class="sui-box-footer">
|
273 |
|
274 |
-
<p><?php printf( __(
|
275 |
|
276 |
</div>
|
277 |
|
@@ -310,11 +314,15 @@ $total_page = ceil( $count / $entries_per_page );
|
|
310 |
<div class="sui-pagination-wrap">
|
311 |
|
312 |
<span class="sui-pagination-results">
|
313 |
-
<?php
|
|
|
|
|
314 |
printf( esc_html__( '%s result', Forminator::DOMAIN ), esc_html( $count ) );
|
315 |
} else {
|
|
|
316 |
printf( esc_html__( '%s results', Forminator::DOMAIN ), esc_html( $count ) );
|
317 |
-
}
|
|
|
318 |
</span>
|
319 |
|
320 |
<?php $this->paginate(); ?>
|
@@ -333,20 +341,20 @@ $total_page = ceil( $count / $entries_per_page );
|
|
333 |
|
334 |
<div class="sui-box sui-message">
|
335 |
|
336 |
-
<?php if ( forminator_is_show_branding() ): ?>
|
337 |
-
<img src="<?php echo $plugin_path . 'assets/img/forminator-submissions.png';
|
338 |
-
|
339 |
-
|
340 |
-
|
341 |
-
|
342 |
-
|
343 |
<?php endif; ?>
|
344 |
|
345 |
<div class="sui-message-content">
|
346 |
|
347 |
-
<h2><?php echo forminator_get_form_name( $this->form_id, 'quiz' ); //
|
348 |
|
349 |
-
<p><?php esc_html_e(
|
350 |
|
351 |
</div>
|
352 |
|
36 |
<div class="sui-pagination-wrap">
|
37 |
|
38 |
<span class="sui-pagination-results">
|
39 |
+
<?php
|
40 |
+
if ( 1 === $count ) {
|
41 |
+
/* translators: ... */
|
42 |
printf( esc_html__( '%s result', Forminator::DOMAIN ), esc_html( $count ) );
|
43 |
} else {
|
44 |
+
/* translators: ... */
|
45 |
printf( esc_html__( '%s results', Forminator::DOMAIN ), esc_html( $count ) );
|
46 |
+
}
|
47 |
+
?>
|
48 |
</span>
|
49 |
|
50 |
<?php $this->paginate(); ?>
|
65 |
<label class="sui-checkbox">
|
66 |
<input id="wpf-cform-check_all" type="checkbox">
|
67 |
<span></span>
|
68 |
+
<div class="sui-description"><?php esc_html_e( 'ID', Forminator::DOMAIN ); ?></div>
|
69 |
</label>
|
70 |
</th>
|
71 |
+
<th colspan="5"><?php esc_html_e( 'Date Submitted', Forminator::DOMAIN ); ?></th>
|
72 |
</tr>
|
73 |
|
74 |
</thead>
|
96 |
</td>
|
97 |
|
98 |
<td colspan="5">
|
99 |
+
<?php echo date( get_option( 'date_format' ) . ' ' . get_option( 'time_format' ), strtotime( $entry->date_created_sql ) ); // phpcs:ignore ?>
|
100 |
<span class="sui-accordion-open-indicator">
|
101 |
<i class="sui-icon-chevron-down"></i>
|
102 |
</span>
|
113 |
<div class="sui-box-body">
|
114 |
|
115 |
<h2>
|
116 |
+
<?php echo forminator_get_form_name( $this->form_id, 'quiz' ); // phpcs:ignore ?>
|
117 |
</h2>
|
118 |
|
119 |
<?php if ( 'knowledge' === $form_type ) { ?>
|
130 |
|
131 |
<tr>
|
132 |
|
133 |
+
<th><?php esc_html_e( 'Question', Forminator::DOMAIN ); ?></th>
|
134 |
|
135 |
+
<th><?php esc_html_e( 'Answer', Forminator::DOMAIN ); ?></th>
|
136 |
|
137 |
</tr>
|
138 |
|
159 |
<?php
|
160 |
if ( $answer['isCorrect'] ) {
|
161 |
|
162 |
+
echo '<span class="sui-tag sui-tag-success">' . esc_html( $user_answer ) . '</span>';
|
163 |
|
164 |
} else {
|
165 |
|
166 |
+
echo '<span class="sui-tag sui-tag-error">' . esc_html( $user_answer ) . '</span>';
|
167 |
|
168 |
}
|
169 |
?>
|
177 |
<?php if ( ! empty( $integrations_data ) ) : ?>
|
178 |
<?php foreach ( $integrations_data as $integrations_datum ) : ?>
|
179 |
<tr>
|
180 |
+
<td><?php echo $integrations_datum['label']; // phpcs:ignore -- html output intended ?></td>
|
181 |
<td>
|
182 |
<?php
|
183 |
$sub_entries = isset( $integrations_datum['sub_entries'] ) ? $integrations_datum['sub_entries'] : array();
|
186 |
<?php foreach ( $sub_entries as $sub_entry ) : ?>
|
187 |
<div class="">
|
188 |
<span class="sui-settings-label"><?php echo esc_html( $sub_entry['label'] ); ?></span>
|
189 |
+
<span class="sui-description"><?php echo( $sub_entry['value'] ); // phpcs:ignore -- html output intended ?></span>
|
190 |
</div>
|
191 |
<?php endforeach; ?>
|
192 |
+
<?php else : ?>
|
193 |
+
<?php echo( $integrations_datum['value'] ); // phpcs:ignore -- html output intended ?>
|
194 |
<?php endif; ?>
|
195 |
</td>
|
196 |
</tr>
|
220 |
|
221 |
<tr>
|
222 |
|
223 |
+
<th><?php esc_html_e( 'Question', Forminator::DOMAIN ); ?></th>
|
224 |
|
225 |
+
<th><?php esc_html_e( 'Answer', Forminator::DOMAIN ); ?></th>
|
226 |
|
227 |
</tr>
|
228 |
|
234 |
|
235 |
<tr>
|
236 |
|
237 |
+
<td><?php echo esc_html( $answer['question'] ); ?></td>
|
238 |
|
239 |
+
<td><?php echo esc_html( $answer['answer'] ); ?></td>
|
240 |
|
241 |
</tr>
|
242 |
|
246 |
<?php if ( ! empty( $integrations_data ) ) : ?>
|
247 |
<?php foreach ( $integrations_data as $integrations_datum ) : ?>
|
248 |
<tr>
|
249 |
+
<td><?php echo $integrations_datum['label']; // phpcs:ignore -- html output intended ?></td>
|
250 |
<td>
|
251 |
<?php
|
252 |
$sub_entries = isset( $integrations_datum['sub_entries'] ) ? $integrations_datum['sub_entries'] : array();
|
255 |
<?php foreach ( $sub_entries as $sub_entry ) : ?>
|
256 |
<div class="">
|
257 |
<span class="sui-settings-label"><?php echo esc_html( $sub_entry['label'] ); ?></span>
|
258 |
+
<span class="sui-description"><?php echo( $sub_entry['value'] ); // phpcs:ignore -- html output intended ?></span>
|
259 |
</div>
|
260 |
<?php endforeach; ?>
|
261 |
+
<?php else : ?>
|
262 |
+
<?php echo( $integrations_datum['value'] ); // phpcs:ignore -- html output intended ?>
|
263 |
<?php endif; ?>
|
264 |
</td>
|
265 |
</tr>
|
275 |
|
276 |
<div class="sui-box-footer">
|
277 |
|
278 |
+
<p><?php printf( __( '<strong>Quiz Result:</strong> %s', Forminator::DOMAIN ), $meta['result']['title'] ); // phpcs:ignore ?></p>
|
279 |
|
280 |
</div>
|
281 |
|
314 |
<div class="sui-pagination-wrap">
|
315 |
|
316 |
<span class="sui-pagination-results">
|
317 |
+
<?php
|
318 |
+
if ( 1 === $count ) {
|
319 |
+
/* translators: ... */
|
320 |
printf( esc_html__( '%s result', Forminator::DOMAIN ), esc_html( $count ) );
|
321 |
} else {
|
322 |
+
/* translators: ... */
|
323 |
printf( esc_html__( '%s results', Forminator::DOMAIN ), esc_html( $count ) );
|
324 |
+
}
|
325 |
+
?>
|
326 |
</span>
|
327 |
|
328 |
<?php $this->paginate(); ?>
|
341 |
|
342 |
<div class="sui-box sui-message">
|
343 |
|
344 |
+
<?php if ( forminator_is_show_branding() ) : ?>
|
345 |
+
<img src="<?php echo esc_url( $plugin_path . 'assets/img/forminator-submissions.png' ); ?>"
|
346 |
+
srcset="<?php echo esc_url( $plugin_path . 'assets/img/forminator-submissions.png' ); ?> 1x,
|
347 |
+
<?php echo esc_url( $plugin_path . 'assets/img/forminator-submissions@2x.png' ); ?> 2x"
|
348 |
+
alt="<?php esc_html_e( 'Forminator', Forminator::DOMAIN ); ?>"
|
349 |
+
class="sui-image"
|
350 |
+
aria-hidden="true"/>
|
351 |
<?php endif; ?>
|
352 |
|
353 |
<div class="sui-message-content">
|
354 |
|
355 |
+
<h2><?php echo forminator_get_form_name( $this->form_id, 'quiz' ); // phpcs:ignore ?></h2>
|
356 |
|
357 |
+
<p><?php esc_html_e( 'You haven’t received any submissions for this quiz yet. When you do, you’ll be able to view all the data here.', Forminator::DOMAIN ); ?></p>
|
358 |
|
359 |
</div>
|
360 |
|
admin/views/quiz/entries/header.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
-
<h1 class="sui-header-title"><?php esc_html_e(
|
2 |
|
3 |
<div class="sui-actions-right">
|
4 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
5 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#quizzes" target="_blank" class="sui-button sui-button-ghost">
|
6 |
-
<i class="sui-icon-academy"></i> <?php esc_html_e(
|
7 |
</a>
|
8 |
<?php endif; ?>
|
9 |
</div>
|
1 |
+
<h1 class="sui-header-title"><?php esc_html_e( 'Submissions', Forminator::DOMAIN ); ?></h1>
|
2 |
|
3 |
<div class="sui-actions-right">
|
4 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
5 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#quizzes" target="_blank" class="sui-button sui-button-ghost">
|
6 |
+
<i class="sui-icon-academy"></i> <?php esc_html_e( 'View Documentation', Forminator::DOMAIN ); ?>
|
7 |
</a>
|
8 |
<?php endif; ?>
|
9 |
</div>
|
admin/views/quiz/knowledge/header.php
CHANGED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php // phpcs:ignore
|
admin/views/quiz/list/content.php
CHANGED
@@ -6,14 +6,14 @@ $image_empty = forminator_plugin_url() . 'assets/images/forminator-empty-messa
|
|
6 |
$image_empty2x = forminator_plugin_url() . 'assets/images/forminator-empty-message@2x.png';
|
7 |
|
8 |
// Count total forms
|
9 |
-
$count
|
10 |
$count_active = $this->countModules( 'publish' );
|
11 |
|
12 |
// available bulk actions
|
13 |
$bulk_actions = $this->bulk_actions();
|
14 |
|
15 |
// Start date for retrieving the information of the last 30 days in sql format
|
16 |
-
$sql_month_start_date = date( 'Y-m-d H:i:s', strtotime( '-30 days midnight' ) )
|
17 |
|
18 |
// Count total entries from last 30 days
|
19 |
$total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_entry_ids( 'quizzes', $sql_month_start_date ) );
|
@@ -31,9 +31,9 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
31 |
|
32 |
<span class="sui-summary-large"><?php echo esc_html( $count_active ); ?></span>
|
33 |
<?php if ( $count_active > 1 ) { ?>
|
34 |
-
<span class="sui-summary-sub"><?php esc_html_e(
|
35 |
<?php } else { ?>
|
36 |
-
<span class="sui-summary-sub"><?php esc_html_e(
|
37 |
<?php } ?>
|
38 |
|
39 |
</div>
|
@@ -46,7 +46,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
46 |
|
47 |
<li>
|
48 |
<span class="sui-list-label"><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></span>
|
49 |
-
<span class="sui-list-detail"><?php echo forminator_get_latest_entry_time( 'quizzes' ); //
|
50 |
</li>
|
51 |
|
52 |
<li>
|
@@ -65,7 +65,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
65 |
|
66 |
<div class="fui-pagination-mobile sui-pagination-wrap">
|
67 |
|
68 |
-
<span class="sui-pagination-results"><?php echo esc_html( sprintf( _n( '%s result', '%s results', $count, Forminator::DOMAIN ), $count ) ); ?></span>
|
69 |
|
70 |
<?php $this->pagination(); ?>
|
71 |
|
@@ -102,7 +102,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
102 |
<div class="sui-search-right">
|
103 |
|
104 |
<div class="sui-pagination-wrap">
|
105 |
-
<span class="sui-pagination-results"><?php echo esc_html( sprintf( _n( '%s result', '%s results', $count, Forminator::DOMAIN ), $count ) ); ?></span>
|
106 |
<?php $this->pagination(); ?>
|
107 |
</div>
|
108 |
|
@@ -119,9 +119,9 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
119 |
|
120 |
<?php
|
121 |
foreach ( $this->getModules() as $module ) {
|
122 |
-
$module_entries_from_last_month =
|
123 |
-
$opened_class
|
124 |
-
$opened_chart
|
125 |
|
126 |
if( isset( $_GET['view-stats'] ) && intval( $_GET['view-stats'] ) === intval( $module['id'] ) ) { // phpcs:ignore
|
127 |
$opened_class = ' sui-accordion-item--open forminator-scroll-to';
|
@@ -141,23 +141,27 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
141 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Select this quiz', Forminator::DOMAIN ); ?></span>
|
142 |
</label>
|
143 |
|
144 |
-
<span class="sui-trim-text"><?php echo forminator_get_form_name( $module['id'], 'quiz'); //
|
145 |
|
146 |
-
<?php
|
|
|
147 |
echo '<span class="sui-tag sui-tag-blue">' . esc_html__( 'Published', Forminator::DOMAIN ) . '</span>';
|
148 |
-
}
|
|
|
149 |
|
150 |
-
<?php
|
|
|
151 |
echo '<span class="sui-tag">' . esc_html__( 'Draft', Forminator::DOMAIN ) . '</span>';
|
152 |
-
}
|
|
|
153 |
|
154 |
</div>
|
155 |
|
156 |
-
<div class="sui-accordion-item-date"><strong><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></strong> <?php echo esc_html( $module[
|
157 |
|
158 |
<div class="sui-accordion-col-auto">
|
159 |
|
160 |
-
<a href="<?php echo $this->getAdminEditUrl( $module['type'], $module['id'] ); //
|
161 |
class="sui-button sui-button-ghost sui-accordion-item-action">
|
162 |
<i class="sui-icon-pencil" aria-hidden="true"></i> <?php esc_html_e( 'Edit', Forminator::DOMAIN ); ?>
|
163 |
</a>
|
@@ -174,14 +178,14 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
174 |
<li><a href="#"
|
175 |
class="wpmudev-open-modal"
|
176 |
data-modal="preview_quizzes"
|
177 |
-
data-modal-title="<?php echo sprintf(
|
178 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
179 |
-
data-nonce="<?php echo wp_create_nonce( 'forminator_popup_preview_quizzes' );
|
180 |
-
<i class="sui-icon-eye" aria-hidden="true"></i> <?php esc_html_e(
|
181 |
</a></li>
|
182 |
|
183 |
<li>
|
184 |
-
<button class="copy-clipboard" data-shortcode='[forminator_quiz id="<?php echo esc_attr( $module['id'] ); ?>"]'><i class="sui-icon-code" aria-hidden="true"></i> <?php esc_html_e(
|
185 |
</li>
|
186 |
|
187 |
<li>
|
@@ -191,7 +195,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
191 |
|
192 |
<?php if ( Forminator_Poll_Form_Model::STATUS_PUBLISH === $module['status'] ) : ?>
|
193 |
<input type="hidden" name="status" value="draft"/>
|
194 |
-
<?php elseif ( Forminator_Poll_Form_Model::STATUS_DRAFT === $module['status'] ): ?>
|
195 |
<input type="hidden" name="status" value="publish"/>
|
196 |
<?php endif; ?>
|
197 |
|
@@ -200,7 +204,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
200 |
|
201 |
<?php if ( Forminator_Poll_Form_Model::STATUS_PUBLISH === $module['status'] ) : ?>
|
202 |
<i class="sui-icon-unpublish" aria-hidden="true"></i> <?php esc_html_e( 'Unpublish', Forminator::DOMAIN ); ?>
|
203 |
-
<?php elseif ( Forminator_Poll_Form_Model::STATUS_DRAFT === $module['status'] ): ?>
|
204 |
<i class="sui-icon-upload-cloud" aria-hidden="true"></i> <?php esc_html_e( 'Publish', Forminator::DOMAIN ); ?>
|
205 |
<?php endif; ?>
|
206 |
|
@@ -209,7 +213,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
209 |
</li>
|
210 |
|
211 |
<li>
|
212 |
-
<a href="<?php echo admin_url( 'admin.php?page=forminator-quiz-view&form_id=' . $module['id'] ); //
|
213 |
<i class="sui-icon-community-people" aria-hidden="true"></i> <?php esc_html_e( 'View Submissions', Forminator::DOMAIN ); ?>
|
214 |
</a>
|
215 |
</li>
|
@@ -218,14 +222,14 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
218 |
<input type="hidden" name="forminator_action" value="clone">
|
219 |
<input type="hidden" name="id" value="<?php echo esc_attr( $module['id'] ); ?>"/>
|
220 |
<?php wp_nonce_field( 'forminatorQuizFormRequest', 'forminatorNonce' ); ?>
|
221 |
-
<button type="submit"><i class="sui-icon-page-multiple" aria-hidden="true"></i> <?php esc_html_e(
|
222 |
</form></li>
|
223 |
|
224 |
<li><form method="post">
|
225 |
<input type="hidden" name="forminator_action" value="reset-views">
|
226 |
<input type="hidden" name="id" value="<?php echo esc_attr( $module['id'] ); ?>"/>
|
227 |
<?php wp_nonce_field( 'forminatorQuizFormRequest', 'forminatorNonce' ); ?>
|
228 |
-
<button type="submit"><i class="sui-icon-update" aria-hidden="true"></i> <?php esc_html_e(
|
229 |
</form></li>
|
230 |
|
231 |
<?php if ( Forminator::is_import_export_feature_enabled() ) : ?>
|
@@ -248,7 +252,7 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
248 |
data-modal-title="<?php esc_attr_e( 'Delete Quiz', Forminator::DOMAIN ); ?>"
|
249 |
data-modal-content="<?php esc_attr_e( 'Are you sure you wish to permanently delete this quiz?', Forminator::DOMAIN ); ?>"
|
250 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
251 |
-
data-nonce="<?php echo wp_create_nonce( 'forminatorQuizFormRequest' );
|
252 |
>
|
253 |
<i class="sui-icon-trash" aria-hidden="true"></i> <?php esc_html_e( 'Delete', Forminator::DOMAIN ); ?>
|
254 |
</button>
|
@@ -270,33 +274,33 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
270 |
|
271 |
<li data-col="large">
|
272 |
<strong><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></strong>
|
273 |
-
<span><?php echo esc_html( $module[
|
274 |
</li>
|
275 |
|
276 |
<li data-col="small">
|
277 |
<strong><?php esc_html_e( 'Views', Forminator::DOMAIN ); ?></strong>
|
278 |
-
<span><?php echo esc_html( $module[
|
279 |
</li>
|
280 |
|
281 |
<li>
|
282 |
<strong><?php esc_html_e( 'Submissions', Forminator::DOMAIN ); ?></strong>
|
283 |
-
<a href="<?php echo admin_url( 'admin.php?page=forminator-quiz-view&form_id=' . $module['id'] ); //
|
284 |
</li>
|
285 |
|
286 |
<li>
|
287 |
<strong><?php esc_html_e( 'Conversion Rate', Forminator::DOMAIN ); ?></strong>
|
288 |
-
<span><?php echo $this->getRate( $module ); //
|
289 |
</li>
|
290 |
|
291 |
</ul>
|
292 |
|
293 |
-
<div class="sui-chartjs sui-chartjs-animated<?php echo esc_attr( $opened_chart ); ?>" data-chart-id="<?php echo $module['id'];
|
294 |
|
295 |
<div class="sui-chartjs-message sui-chartjs-message--loading">
|
296 |
<p><i class="sui-icon-loader sui-loading" aria-hidden="true"></i> <?php esc_html_e( 'Loading data...', Forminator::DOMAIN ); ?></p>
|
297 |
</div>
|
298 |
|
299 |
-
<?php if ( 0 === $module[
|
300 |
|
301 |
<div class="sui-chartjs-message sui-chartjs-message--empty">
|
302 |
<p><i class="sui-icon-info" aria-hidden="true"></i> <?php esc_html_e( "Your quiz doesn't have any submission yet. Try again in a moment.", Forminator::DOMAIN ); ?></p>
|
@@ -316,8 +320,8 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
316 |
|
317 |
<div class="sui-chartjs-canvas">
|
318 |
|
319 |
-
<?php if ( ( 0 !== $module[
|
320 |
-
<canvas id="forminator-quiz-<?php echo $module['id'];
|
321 |
<?php } ?>
|
322 |
|
323 |
</div>
|
@@ -336,12 +340,12 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
336 |
|
337 |
<div class="sui-box sui-message">
|
338 |
|
339 |
-
<?php if ( forminator_is_show_branding() ): ?>
|
340 |
-
<img src="<?php echo $image_empty;
|
341 |
-
|
342 |
-
|
343 |
-
|
344 |
-
|
345 |
<?php endif; ?>
|
346 |
|
347 |
<div class="sui-message-content">
|
@@ -375,24 +379,24 @@ $total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_e
|
|
375 |
<?php } ?>
|
376 |
|
377 |
<?php
|
378 |
-
$days_array
|
379 |
$default_array = array();
|
380 |
|
381 |
for ( $h = 30; $h >= 0; $h-- ) {
|
382 |
-
$time
|
383 |
-
$date
|
384 |
$default_array[ $date ] = 0;
|
385 |
-
$days_array[]
|
386 |
}
|
387 |
|
388 |
foreach ( $this->getModules() as $module ) {
|
389 |
|
390 |
-
if ( 0 === $module[
|
391 |
$submissions_data = $default_array;
|
392 |
} else {
|
393 |
-
$submissions
|
394 |
$submissions_array = wp_list_pluck( $submissions, 'entries_amount', 'date_created' );
|
395 |
-
$submissions_data
|
396 |
}
|
397 |
|
398 |
// Get highest value
|
@@ -404,10 +408,10 @@ foreach ( $this->getModules() as $module ) {
|
|
404 |
|
405 |
<script>
|
406 |
|
407 |
-
var ctx = document.getElementById( 'forminator-quiz-<?php echo $module['id']; //
|
408 |
|
409 |
-
var monthDays = [ '<?php echo implode( "', '", $days_array ); //
|
410 |
-
submissions = [ <?php echo implode( ', ', $submissions_data ); //
|
411 |
|
412 |
var chartData = {
|
413 |
labels: monthDays,
|
@@ -476,10 +480,10 @@ foreach ( $this->getModules() as $module ) {
|
|
476 |
return tooltipItem.xLabel;
|
477 |
},
|
478 |
// Set label text color
|
479 |
-
|
480 |
-
|
481 |
-
|
482 |
-
|
483 |
},
|
484 |
plugins: {
|
485 |
datalabels: {
|
6 |
$image_empty2x = forminator_plugin_url() . 'assets/images/forminator-empty-message@2x.png';
|
7 |
|
8 |
// Count total forms
|
9 |
+
$count = $this->countModules();
|
10 |
$count_active = $this->countModules( 'publish' );
|
11 |
|
12 |
// available bulk actions
|
13 |
$bulk_actions = $this->bulk_actions();
|
14 |
|
15 |
// Start date for retrieving the information of the last 30 days in sql format
|
16 |
+
$sql_month_start_date = date( 'Y-m-d H:i:s', strtotime( '-30 days midnight' ) );// phpcs:ignore
|
17 |
|
18 |
// Count total entries from last 30 days
|
19 |
$total_entries_from_last_month = count( Forminator_Form_Entry_Model::get_newer_entry_ids( 'quizzes', $sql_month_start_date ) );
|
31 |
|
32 |
<span class="sui-summary-large"><?php echo esc_html( $count_active ); ?></span>
|
33 |
<?php if ( $count_active > 1 ) { ?>
|
34 |
+
<span class="sui-summary-sub"><?php esc_html_e( 'Active Quizzes', Forminator::DOMAIN ); ?></span>
|
35 |
<?php } else { ?>
|
36 |
+
<span class="sui-summary-sub"><?php esc_html_e( 'Active Quiz', Forminator::DOMAIN ); ?></span>
|
37 |
<?php } ?>
|
38 |
|
39 |
</div>
|
46 |
|
47 |
<li>
|
48 |
<span class="sui-list-label"><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></span>
|
49 |
+
<span class="sui-list-detail"><?php echo forminator_get_latest_entry_time( 'quizzes' ); // phpcs:ignore ?></span>
|
50 |
</li>
|
51 |
|
52 |
<li>
|
65 |
|
66 |
<div class="fui-pagination-mobile sui-pagination-wrap">
|
67 |
|
68 |
+
<span class="sui-pagination-results"><?php /* translators: ... */ echo esc_html( sprintf( _n( '%s result', '%s results', $count, Forminator::DOMAIN ), $count ) ); ?></span>
|
69 |
|
70 |
<?php $this->pagination(); ?>
|
71 |
|
102 |
<div class="sui-search-right">
|
103 |
|
104 |
<div class="sui-pagination-wrap">
|
105 |
+
<span class="sui-pagination-results"><?php /* translators: ... */ echo esc_html( sprintf( _n( '%s result', '%s results', $count, Forminator::DOMAIN ), $count ) ); ?></span>
|
106 |
<?php $this->pagination(); ?>
|
107 |
</div>
|
108 |
|
119 |
|
120 |
<?php
|
121 |
foreach ( $this->getModules() as $module ) {
|
122 |
+
$module_entries_from_last_month = 0 !== $module['entries'] ? count( Forminator_Form_Entry_Model::get_newer_entry_ids_of_form_id( $module['id'], $sql_month_start_date ) ) : 0;
|
123 |
+
$opened_class = '';
|
124 |
+
$opened_chart = '';
|
125 |
|
126 |
if( isset( $_GET['view-stats'] ) && intval( $_GET['view-stats'] ) === intval( $module['id'] ) ) { // phpcs:ignore
|
127 |
$opened_class = ' sui-accordion-item--open forminator-scroll-to';
|
141 |
<span class="sui-screen-reader-text"><?php esc_html_e( 'Select this quiz', Forminator::DOMAIN ); ?></span>
|
142 |
</label>
|
143 |
|
144 |
+
<span class="sui-trim-text"><?php echo forminator_get_form_name( $module['id'], 'quiz' ); // phpcs:ignore ?></span>
|
145 |
|
146 |
+
<?php
|
147 |
+
if ( 'publish' === $module['status'] ) {
|
148 |
echo '<span class="sui-tag sui-tag-blue">' . esc_html__( 'Published', Forminator::DOMAIN ) . '</span>';
|
149 |
+
}
|
150 |
+
?>
|
151 |
|
152 |
+
<?php
|
153 |
+
if ( 'draft' === $module['status'] ) {
|
154 |
echo '<span class="sui-tag">' . esc_html__( 'Draft', Forminator::DOMAIN ) . '</span>';
|
155 |
+
}
|
156 |
+
?>
|
157 |
|
158 |
</div>
|
159 |
|
160 |
+
<div class="sui-accordion-item-date"><strong><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></strong> <?php echo esc_html( $module['last_entry_time'] ); ?></div>
|
161 |
|
162 |
<div class="sui-accordion-col-auto">
|
163 |
|
164 |
+
<a href="<?php echo $this->getAdminEditUrl( $module['type'], $module['id'] ); // phpcs:ignore ?>"
|
165 |
class="sui-button sui-button-ghost sui-accordion-item-action">
|
166 |
<i class="sui-icon-pencil" aria-hidden="true"></i> <?php esc_html_e( 'Edit', Forminator::DOMAIN ); ?>
|
167 |
</a>
|
178 |
<li><a href="#"
|
179 |
class="wpmudev-open-modal"
|
180 |
data-modal="preview_quizzes"
|
181 |
+
data-modal-title="<?php /* translators: ... */ echo sprintf( '%s - %s', __( 'Preview Quiz', Forminator::DOMAIN ), forminator_get_form_name( $module['id'], 'quiz' ) ); // phpcs:ignore ?>"
|
182 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
183 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminator_popup_preview_quizzes' ) ); ?>">
|
184 |
+
<i class="sui-icon-eye" aria-hidden="true"></i> <?php esc_html_e( 'Preview', Forminator::DOMAIN ); ?>
|
185 |
</a></li>
|
186 |
|
187 |
<li>
|
188 |
+
<button class="copy-clipboard" data-shortcode='[forminator_quiz id="<?php echo esc_attr( $module['id'] ); ?>"]'><i class="sui-icon-code" aria-hidden="true"></i> <?php esc_html_e( 'Copy Shortcode', Forminator::DOMAIN ); ?></button>
|
189 |
</li>
|
190 |
|
191 |
<li>
|
195 |
|
196 |
<?php if ( Forminator_Poll_Form_Model::STATUS_PUBLISH === $module['status'] ) : ?>
|
197 |
<input type="hidden" name="status" value="draft"/>
|
198 |
+
<?php elseif ( Forminator_Poll_Form_Model::STATUS_DRAFT === $module['status'] ) : ?>
|
199 |
<input type="hidden" name="status" value="publish"/>
|
200 |
<?php endif; ?>
|
201 |
|
204 |
|
205 |
<?php if ( Forminator_Poll_Form_Model::STATUS_PUBLISH === $module['status'] ) : ?>
|
206 |
<i class="sui-icon-unpublish" aria-hidden="true"></i> <?php esc_html_e( 'Unpublish', Forminator::DOMAIN ); ?>
|
207 |
+
<?php elseif ( Forminator_Poll_Form_Model::STATUS_DRAFT === $module['status'] ) : ?>
|
208 |
<i class="sui-icon-upload-cloud" aria-hidden="true"></i> <?php esc_html_e( 'Publish', Forminator::DOMAIN ); ?>
|
209 |
<?php endif; ?>
|
210 |
|
213 |
</li>
|
214 |
|
215 |
<li>
|
216 |
+
<a href="<?php echo admin_url( 'admin.php?page=forminator-quiz-view&form_id=' . $module['id'] ); // phpcs:ignore ?>">
|
217 |
<i class="sui-icon-community-people" aria-hidden="true"></i> <?php esc_html_e( 'View Submissions', Forminator::DOMAIN ); ?>
|
218 |
</a>
|
219 |
</li>
|
222 |
<input type="hidden" name="forminator_action" value="clone">
|
223 |
<input type="hidden" name="id" value="<?php echo esc_attr( $module['id'] ); ?>"/>
|
224 |
<?php wp_nonce_field( 'forminatorQuizFormRequest', 'forminatorNonce' ); ?>
|
225 |
+
<button type="submit"><i class="sui-icon-page-multiple" aria-hidden="true"></i> <?php esc_html_e( 'Duplicate', Forminator::DOMAIN ); ?></button>
|
226 |
</form></li>
|
227 |
|
228 |
<li><form method="post">
|
229 |
<input type="hidden" name="forminator_action" value="reset-views">
|
230 |
<input type="hidden" name="id" value="<?php echo esc_attr( $module['id'] ); ?>"/>
|
231 |
<?php wp_nonce_field( 'forminatorQuizFormRequest', 'forminatorNonce' ); ?>
|
232 |
+
<button type="submit"><i class="sui-icon-update" aria-hidden="true"></i> <?php esc_html_e( 'Reset Tracking data', Forminator::DOMAIN ); ?></button>
|
233 |
</form></li>
|
234 |
|
235 |
<?php if ( Forminator::is_import_export_feature_enabled() ) : ?>
|
252 |
data-modal-title="<?php esc_attr_e( 'Delete Quiz', Forminator::DOMAIN ); ?>"
|
253 |
data-modal-content="<?php esc_attr_e( 'Are you sure you wish to permanently delete this quiz?', Forminator::DOMAIN ); ?>"
|
254 |
data-form-id="<?php echo esc_attr( $module['id'] ); ?>"
|
255 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminatorQuizFormRequest' ) ); ?>"
|
256 |
>
|
257 |
<i class="sui-icon-trash" aria-hidden="true"></i> <?php esc_html_e( 'Delete', Forminator::DOMAIN ); ?>
|
258 |
</button>
|
274 |
|
275 |
<li data-col="large">
|
276 |
<strong><?php esc_html_e( 'Last Submission', Forminator::DOMAIN ); ?></strong>
|
277 |
+
<span><?php echo esc_html( $module['last_entry_time'] ); ?></span>
|
278 |
</li>
|
279 |
|
280 |
<li data-col="small">
|
281 |
<strong><?php esc_html_e( 'Views', Forminator::DOMAIN ); ?></strong>
|
282 |
+
<span><?php echo esc_html( $module['views'] ); ?></span>
|
283 |
</li>
|
284 |
|
285 |
<li>
|
286 |
<strong><?php esc_html_e( 'Submissions', Forminator::DOMAIN ); ?></strong>
|
287 |
+
<a href="<?php echo admin_url( 'admin.php?page=forminator-quiz-view&form_id=' . $module['id'] ); // phpcs:ignore ?>"><?php echo esc_html( $module['entries'] ); ?></a>
|
288 |
</li>
|
289 |
|
290 |
<li>
|
291 |
<strong><?php esc_html_e( 'Conversion Rate', Forminator::DOMAIN ); ?></strong>
|
292 |
+
<span><?php echo $this->getRate( $module ); // phpcs:ignore ?>%</span>
|
293 |
</li>
|
294 |
|
295 |
</ul>
|
296 |
|
297 |
+
<div class="sui-chartjs sui-chartjs-animated<?php echo esc_attr( $opened_chart ); ?>" data-chart-id="<?php echo esc_attr( $module['id'] ); ?>">
|
298 |
|
299 |
<div class="sui-chartjs-message sui-chartjs-message--loading">
|
300 |
<p><i class="sui-icon-loader sui-loading" aria-hidden="true"></i> <?php esc_html_e( 'Loading data...', Forminator::DOMAIN ); ?></p>
|
301 |
</div>
|
302 |
|
303 |
+
<?php if ( 0 === $module['entries'] ) { ?>
|
304 |
|
305 |
<div class="sui-chartjs-message sui-chartjs-message--empty">
|
306 |
<p><i class="sui-icon-info" aria-hidden="true"></i> <?php esc_html_e( "Your quiz doesn't have any submission yet. Try again in a moment.", Forminator::DOMAIN ); ?></p>
|
320 |
|
321 |
<div class="sui-chartjs-canvas">
|
322 |
|
323 |
+
<?php if ( ( 0 !== $module['entries'] ) || ( 0 !== $module_entries_from_last_month ) ) { ?>
|
324 |
+
<canvas id="forminator-quiz-<?php echo esc_attr( $module['id'] ); ?>-stats"></canvas>
|
325 |
<?php } ?>
|
326 |
|
327 |
</div>
|
340 |
|
341 |
<div class="sui-box sui-message">
|
342 |
|
343 |
+
<?php if ( forminator_is_show_branding() ) : ?>
|
344 |
+
<img src="<?php echo esc_url( $image_empty ); ?>"
|
345 |
+
srcset="<?php echo esc_url( $image_empty2x ); ?> 1x, <?php echo esc_url( $image_empty2x ); ?> 2x"
|
346 |
+
alt="<?php esc_html_e( 'Empty quizzes', Forminator::DOMAIN ); ?>"
|
347 |
+
class="sui-image"
|
348 |
+
aria-hidden="true"/>
|
349 |
<?php endif; ?>
|
350 |
|
351 |
<div class="sui-message-content">
|
379 |
<?php } ?>
|
380 |
|
381 |
<?php
|
382 |
+
$days_array = array();
|
383 |
$default_array = array();
|
384 |
|
385 |
for ( $h = 30; $h >= 0; $h-- ) {
|
386 |
+
$time = strtotime( '-' . $h . ' days' );
|
387 |
+
$date = date( 'Y-m-d', $time );// phpcs:ignore
|
388 |
$default_array[ $date ] = 0;
|
389 |
+
$days_array[] = date( 'M j, Y', $time );// phpcs:ignore
|
390 |
}
|
391 |
|
392 |
foreach ( $this->getModules() as $module ) {
|
393 |
|
394 |
+
if ( 0 === $module['entries'] ) {
|
395 |
$submissions_data = $default_array;
|
396 |
} else {
|
397 |
+
$submissions = Forminator_Form_Entry_Model::get_form_latest_entries_count_grouped_by_day( $module['id'], $sql_month_start_date );
|
398 |
$submissions_array = wp_list_pluck( $submissions, 'entries_amount', 'date_created' );
|
399 |
+
$submissions_data = array_merge( $default_array, array_intersect_key( $submissions_array, $default_array ) );
|
400 |
}
|
401 |
|
402 |
// Get highest value
|
408 |
|
409 |
<script>
|
410 |
|
411 |
+
var ctx = document.getElementById( 'forminator-quiz-<?php echo $module['id']; // phpcs:ignore ?>-stats' );
|
412 |
|
413 |
+
var monthDays = [ '<?php echo implode( "', '", $days_array ); // phpcs:ignore ?>' ],
|
414 |
+
submissions = [ <?php echo implode( ', ', $submissions_data ); // phpcs:ignore ?> ];
|
415 |
|
416 |
var chartData = {
|
417 |
labels: monthDays,
|
480 |
return tooltipItem.xLabel;
|
481 |
},
|
482 |
// Set label text color
|
483 |
+
labelTextColor:function( tooltipItem, chart ){
|
484 |
+
return '#AAAAAA';
|
485 |
+
}
|
486 |
+
}
|
487 |
},
|
488 |
plugins: {
|
489 |
datalabels: {
|
admin/views/quiz/list/header.php
CHANGED
@@ -1,10 +1,10 @@
|
|
1 |
<?php $count = $this->countModules(); ?>
|
2 |
|
3 |
-
<h1 class="sui-header-title"><?php esc_html_e(
|
4 |
|
5 |
<div class="sui-actions-left">
|
6 |
|
7 |
-
<button class="sui-button sui-button-blue wpmudev-button-open-modal" data-modal="quizzes"><i class="sui-icon-plus" aria-hidden="true"></i> <?php esc_html_e(
|
8 |
|
9 |
<?php if ( Forminator::is_import_export_feature_enabled() ) : ?>
|
10 |
|
@@ -23,7 +23,7 @@
|
|
23 |
<div class="sui-actions-right">
|
24 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
25 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#quizzes" target="_blank" class="sui-button sui-button-ghost">
|
26 |
-
<i class="sui-icon-academy"></i> <?php esc_html_e(
|
27 |
</a>
|
28 |
<?php endif; ?>
|
29 |
</div>
|
1 |
<?php $count = $this->countModules(); ?>
|
2 |
|
3 |
+
<h1 class="sui-header-title"><?php esc_html_e( 'Quizzes', Forminator::DOMAIN ); ?></h1>
|
4 |
|
5 |
<div class="sui-actions-left">
|
6 |
|
7 |
+
<button class="sui-button sui-button-blue wpmudev-button-open-modal" data-modal="quizzes"><i class="sui-icon-plus" aria-hidden="true"></i> <?php esc_html_e( 'Create', Forminator::DOMAIN ); ?></button>
|
8 |
|
9 |
<?php if ( Forminator::is_import_export_feature_enabled() ) : ?>
|
10 |
|
23 |
<div class="sui-actions-right">
|
24 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
25 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#quizzes" target="_blank" class="sui-button sui-button-ghost">
|
26 |
+
<i class="sui-icon-academy"></i> <?php esc_html_e( 'View Documentation', Forminator::DOMAIN ); ?>
|
27 |
</a>
|
28 |
<?php endif; ?>
|
29 |
</div>
|
admin/views/quiz/nowrong/header.php
CHANGED
@@ -0,0 +1 @@
|
|
|
1 |
+
<?php // phpcs:ignore
|
admin/views/quiz/popup/export.php
CHANGED
@@ -1,5 +1,5 @@
|
|
1 |
<?php
|
2 |
-
$form_id = $_POST['id'];//
|
3 |
$nonce = wp_create_nonce( 'forminatorQuizFormRequest' );
|
4 |
|
5 |
$exportable = array();
|
@@ -7,7 +7,7 @@ $model = Forminator_Quiz_Form_Model::model()->load( $form_id );
|
|
7 |
if ( $model instanceof Forminator_Quiz_Form_Model ) {
|
8 |
$exportable = $model->to_exportable_data();
|
9 |
}
|
10 |
-
$text_area_id = uniqid('export-text-');
|
11 |
?>
|
12 |
|
13 |
<div class="sui-box-body wpmudev-popup-form">
|
@@ -19,7 +19,8 @@ $text_area_id = uniqid('export-text-');
|
|
19 |
|
20 |
<div class="sui-notice sui-notice-info">
|
21 |
<p>
|
22 |
-
<?php
|
|
|
23 |
sprintf(
|
24 |
__( 'You can import this %1$s in Forminator %2$s%3$s%4$s or above. The %5$s may break on a version lower than your install.', Forminator::DOMAIN ), //phpcs:ignore
|
25 |
__( 'Quiz', Forminator::DOMAIN ),//phpcs:ignore
|
@@ -28,7 +29,8 @@ $text_area_id = uniqid('export-text-');
|
|
28 |
'</strong>',
|
29 |
__( 'Quiz', Forminator::DOMAIN )
|
30 |
)
|
31 |
-
);
|
|
|
32 |
</p>
|
33 |
</div>
|
34 |
|
1 |
<?php
|
2 |
+
$form_id = $_POST['id'];// phpcs:ignore -- varified on admin ajax
|
3 |
$nonce = wp_create_nonce( 'forminatorQuizFormRequest' );
|
4 |
|
5 |
$exportable = array();
|
7 |
if ( $model instanceof Forminator_Quiz_Form_Model ) {
|
8 |
$exportable = $model->to_exportable_data();
|
9 |
}
|
10 |
+
$text_area_id = uniqid( 'export-text-' );
|
11 |
?>
|
12 |
|
13 |
<div class="sui-box-body wpmudev-popup-form">
|
19 |
|
20 |
<div class="sui-notice sui-notice-info">
|
21 |
<p>
|
22 |
+
<?php
|
23 |
+
echo(
|
24 |
sprintf(
|
25 |
__( 'You can import this %1$s in Forminator %2$s%3$s%4$s or above. The %5$s may break on a version lower than your install.', Forminator::DOMAIN ), //phpcs:ignore
|
26 |
__( 'Quiz', Forminator::DOMAIN ),//phpcs:ignore
|
29 |
'</strong>',
|
30 |
__( 'Quiz', Forminator::DOMAIN )
|
31 |
)
|
32 |
+
);
|
33 |
+
?>
|
34 |
</p>
|
35 |
</div>
|
36 |
|
admin/views/settings/content.php
CHANGED
@@ -11,13 +11,13 @@ $section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) :
|
|
11 |
<a href="#" data-nav="dashboard"><?php esc_html_e( 'General', Forminator::DOMAIN ); ?></a>
|
12 |
</li>
|
13 |
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
|
22 |
<li class="sui-vertical-tab <?php echo esc_attr( 'recaptcha' === $section ? 'current' : '' ); ?>">
|
23 |
<a href="#" data-nav="recaptcha"><?php esc_html_e( 'Google reCAPTCHA', Forminator::DOMAIN ); ?></a>
|
@@ -39,8 +39,8 @@ $section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) :
|
|
39 |
|
40 |
<select class="sui-mobile-nav sui-sidenav-hide-lg">
|
41 |
<option value="dashboard"><?php esc_html_e( 'General', Forminator::DOMAIN ); ?></option>
|
42 |
-
|
43 |
-
|
44 |
<option value="recaptcha"><?php esc_html_e( 'Google reCAPTCHA', Forminator::DOMAIN ); ?></option>
|
45 |
<option value="import"><?php esc_html_e( 'Import', Forminator::DOMAIN ); ?></option>
|
46 |
<option value="submissions"><?php esc_html_e( 'Submissions', Forminator::DOMAIN ); ?></option>
|
11 |
<a href="#" data-nav="dashboard"><?php esc_html_e( 'General', Forminator::DOMAIN ); ?></a>
|
12 |
</li>
|
13 |
|
14 |
+
<li class="sui-vertical-tab <?php echo esc_attr( 'accessibility' === $section ? 'current' : '' ); ?>">
|
15 |
+
<a href="#" data-nav="accessibility"><?php esc_html_e( 'Accessibility', Forminator::DOMAIN ); ?></a>
|
16 |
+
</li>
|
17 |
|
18 |
+
<li class="sui-vertical-tab <?php echo esc_attr( 'data' === $section ? 'current' : '' ); ?>">
|
19 |
+
<a href="#" data-nav="data"><?php esc_html_e( 'Data', Forminator::DOMAIN ); ?></a>
|
20 |
+
</li>
|
21 |
|
22 |
<li class="sui-vertical-tab <?php echo esc_attr( 'recaptcha' === $section ? 'current' : '' ); ?>">
|
23 |
<a href="#" data-nav="recaptcha"><?php esc_html_e( 'Google reCAPTCHA', Forminator::DOMAIN ); ?></a>
|
39 |
|
40 |
<select class="sui-mobile-nav sui-sidenav-hide-lg">
|
41 |
<option value="dashboard"><?php esc_html_e( 'General', Forminator::DOMAIN ); ?></option>
|
42 |
+
<option value="accessibility"><?php esc_html_e( 'Accessibility', Forminator::DOMAIN ); ?></option>
|
43 |
+
<option value="data"><?php esc_html_e( 'Data', Forminator::DOMAIN ); ?></option>
|
44 |
<option value="recaptcha"><?php esc_html_e( 'Google reCAPTCHA', Forminator::DOMAIN ); ?></option>
|
45 |
<option value="import"><?php esc_html_e( 'Import', Forminator::DOMAIN ); ?></option>
|
46 |
<option value="submissions"><?php esc_html_e( 'Submissions', Forminator::DOMAIN ); ?></option>
|
admin/views/settings/dashboard/polls.php
CHANGED
@@ -1,8 +1,8 @@
|
|
1 |
<?php
|
2 |
$dashboard_settings = forminator_get_dashboard_settings( 'polls', array() );
|
3 |
$num_recent = isset( $dashboard_settings['num_recent'] ) ? $dashboard_settings['num_recent'] : 5;
|
4 |
-
$published
|
5 |
-
$draft
|
6 |
?>
|
7 |
|
8 |
<div class="sui-form-field">
|
1 |
<?php
|
2 |
$dashboard_settings = forminator_get_dashboard_settings( 'polls', array() );
|
3 |
$num_recent = isset( $dashboard_settings['num_recent'] ) ? $dashboard_settings['num_recent'] : 5;
|
4 |
+
$published = isset( $dashboard_settings['published'] ) ? filter_var( $dashboard_settings['published'], FILTER_VALIDATE_BOOLEAN ) : true;
|
5 |
+
$draft = isset( $dashboard_settings['draft'] ) ? filter_var( $dashboard_settings['draft'], FILTER_VALIDATE_BOOLEAN ) : true;
|
6 |
?>
|
7 |
|
8 |
<div class="sui-form-field">
|
admin/views/settings/data/forms-privacy.php
CHANGED
@@ -1,19 +1,13 @@
|
|
1 |
<?php
|
2 |
$form_submission_erasure_enabled = get_option( 'forminator_enable_erasure_request_erase_form_submissions', false );
|
3 |
|
4 |
-
$
|
5 |
-
$
|
6 |
-
$
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
$cform_retain_ip_number = get_option( 'forminator_retain_ip_interval_number', 0 );
|
12 |
-
$cfrom_retain_ip_unit = get_option( 'forminator_retain_ip_interval_unit', 'days' );
|
13 |
-
$cform_retain_ip_forever = false;
|
14 |
-
if ( empty( $cform_retain_ip_number ) ) {
|
15 |
-
$cform_retain_ip_forever = true;
|
16 |
-
}
|
17 |
|
18 |
?>
|
19 |
|
@@ -35,19 +29,19 @@ if ( empty( $cform_retain_ip_number ) ) {
|
|
35 |
|
36 |
<label for="retain_submission-true" class="sui-tab-item<?php echo( $cform_retain_forever ? ' active' : '' ); ?>">
|
37 |
<input type="radio"
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
<?php checked( $cform_retain_forever, true ); ?> />
|
42 |
<?php esc_html_e( 'Forever', Forminator::DOMAIN ); ?>
|
43 |
</label>
|
44 |
|
45 |
<label for="retain_submission-false" class="sui-tab-item<?php echo( ! $cform_retain_forever ? ' active' : '' ); ?>">
|
46 |
<input type="radio"
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
<?php checked( $cform_retain_forever, false ); ?> />
|
52 |
<?php esc_html_e( 'Custom', Forminator::DOMAIN ); ?>
|
53 |
</label>
|
@@ -62,11 +56,11 @@ if ( empty( $cform_retain_ip_number ) ) {
|
|
62 |
<div class="sui-form-field">
|
63 |
|
64 |
<input type="number"
|
65 |
-
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
</div>
|
71 |
</div>
|
72 |
<div class="sui-col-md-6">
|
@@ -74,13 +68,13 @@ if ( empty( $cform_retain_ip_number ) ) {
|
|
74 |
|
75 |
<select name="submissions_retention_unit">
|
76 |
<option value="days" <?php selected( $cfrom_retain_unit, 'days' ); ?>>
|
77 |
-
<?php esc_html_e(
|
78 |
<option value="weeks" <?php selected( $cfrom_retain_unit, 'weeks' ); ?>>
|
79 |
-
<?php esc_html_e(
|
80 |
<option value="months" <?php selected( $cfrom_retain_unit, 'months' ); ?>>
|
81 |
-
<?php esc_html_e(
|
82 |
<option value="years" <?php selected( $cfrom_retain_unit, 'years' ); ?>>
|
83 |
-
<?php esc_html_e(
|
84 |
</select>
|
85 |
|
86 |
</div>
|
@@ -102,19 +96,19 @@ if ( empty( $cform_retain_ip_number ) ) {
|
|
102 |
|
103 |
<label for="retain_ip-true" class="sui-tab-item<?php echo( $cform_retain_ip_forever ? ' active' : '' ); ?>">
|
104 |
<input type="radio"
|
105 |
-
|
106 |
-
|
107 |
-
|
108 |
<?php checked( $cform_retain_ip_forever, true ); ?> />
|
109 |
<?php esc_html_e( 'Forever', Forminator::DOMAIN ); ?>
|
110 |
</label>
|
111 |
|
112 |
<label for="retain_ip-false" class="sui-tab-item<?php echo( ! $cform_retain_ip_forever ? ' active' : '' ); ?>">
|
113 |
<input type="radio"
|
114 |
-
|
115 |
-
|
116 |
-
|
117 |
-
|
118 |
<?php checked( $cform_retain_ip_forever, false ); ?> />
|
119 |
<?php esc_html_e( 'Custom', Forminator::DOMAIN ); ?>
|
120 |
</label>
|
@@ -129,11 +123,11 @@ if ( empty( $cform_retain_ip_number ) ) {
|
|
129 |
<div class="sui-form-field">
|
130 |
|
131 |
<input type="number"
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
|
138 |
</div>
|
139 |
</div>
|
@@ -142,13 +136,13 @@ if ( empty( $cform_retain_ip_number ) ) {
|
|
142 |
|
143 |
<select name="cform_retention_ip_unit">
|
144 |
<option value="days" <?php selected( $cfrom_retain_ip_unit, 'days' ); ?>>
|
145 |
-
<?php esc_html_e(
|
146 |
<option value="weeks" <?php selected( $cfrom_retain_ip_unit, 'weeks' ); ?>>
|
147 |
-
<?php esc_html_e(
|
148 |
<option value="months" <?php selected( $cfrom_retain_ip_unit, 'months' ); ?>>
|
149 |
-
<?php esc_html_e(
|
150 |
<option value="years" <?php selected( $cfrom_retain_ip_unit, 'years' ); ?>>
|
151 |
-
<?php esc_html_e(
|
152 |
</select>
|
153 |
|
154 |
</div>
|
@@ -164,9 +158,12 @@ if ( empty( $cform_retain_ip_number ) ) {
|
|
164 |
|
165 |
<span class="sui-settings-label"><?php esc_html_e( 'Account Erasure Requests', Forminator::DOMAIN ); ?></span>
|
166 |
<span class="sui-description">
|
167 |
-
<?php
|
168 |
-
|
169 |
-
|
|
|
|
|
|
|
170 |
</span>
|
171 |
|
172 |
<div class="sui-side-tabs" style="margin-top: 10px;">
|
@@ -175,18 +172,18 @@ if ( empty( $cform_retain_ip_number ) ) {
|
|
175 |
|
176 |
<label for="erase_form_submissions-true" class="sui-tab-item<?php echo $form_submission_erasure_enabled ? ' active' : ''; ?>">
|
177 |
<input type="radio"
|
178 |
-
|
179 |
-
|
180 |
-
|
181 |
<?php checked( $form_submission_erasure_enabled, true ); ?> />
|
182 |
<?php esc_html_e( 'Retain Submission', Forminator::DOMAIN ); ?>
|
183 |
</label>
|
184 |
|
185 |
<label for="erase_form_submissions-false" class="sui-tab-item<?php echo $form_submission_erasure_enabled ? '' : ' active'; ?>">
|
186 |
<input type="radio"
|
187 |
-
|
188 |
-
|
189 |
-
|
190 |
<?php checked( $form_submission_erasure_enabled, false ); ?> />
|
191 |
<?php esc_html_e( 'Remove Submission', Forminator::DOMAIN ); ?>
|
192 |
</label>
|
1 |
<?php
|
2 |
$form_submission_erasure_enabled = get_option( 'forminator_enable_erasure_request_erase_form_submissions', false );
|
3 |
|
4 |
+
$cform_retain_forever = get_option( 'retain_submission_forever' );
|
5 |
+
$cform_retain_number = get_option( 'forminator_retain_submissions_interval_number', 0 );
|
6 |
+
$cfrom_retain_unit = get_option( 'forminator_retain_submissions_interval_unit', 'days' );
|
7 |
+
|
8 |
+
$cform_retain_ip_forever = get_option( 'retain_ip_forever' );
|
9 |
+
$cform_retain_ip_number = get_option( 'forminator_retain_ip_interval_number', 0 );
|
10 |
+
$cfrom_retain_ip_unit = get_option( 'forminator_retain_ip_interval_unit', 'days' );
|
|
|
|
|
|
|
|
|
|
|
|
|
11 |
|
12 |
?>
|
13 |
|
29 |
|
30 |
<label for="retain_submission-true" class="sui-tab-item<?php echo( $cform_retain_forever ? ' active' : '' ); ?>">
|
31 |
<input type="radio"
|
32 |
+
name="retain_submission_forever"
|
33 |
+
value="true"
|
34 |
+
id="retain_submission-true"
|
35 |
<?php checked( $cform_retain_forever, true ); ?> />
|
36 |
<?php esc_html_e( 'Forever', Forminator::DOMAIN ); ?>
|
37 |
</label>
|
38 |
|
39 |
<label for="retain_submission-false" class="sui-tab-item<?php echo( ! $cform_retain_forever ? ' active' : '' ); ?>">
|
40 |
<input type="radio"
|
41 |
+
name="retain_submission_forever"
|
42 |
+
value="false"
|
43 |
+
id="retain_submission-false"
|
44 |
+
data-tab-menu="retain_submission"
|
45 |
<?php checked( $cform_retain_forever, false ); ?> />
|
46 |
<?php esc_html_e( 'Custom', Forminator::DOMAIN ); ?>
|
47 |
</label>
|
56 |
<div class="sui-form-field">
|
57 |
|
58 |
<input type="number"
|
59 |
+
name="submissions_retention_number"
|
60 |
+
placeholder="<?php esc_html_e( 'E.g. 10', Forminator::DOMAIN ); ?>"
|
61 |
+
value="<?php echo esc_attr( $cform_retain_number ); ?>"
|
62 |
+
min="0"
|
63 |
+
class="sui-form-control sui-form-control-inline"/>
|
64 |
</div>
|
65 |
</div>
|
66 |
<div class="sui-col-md-6">
|
68 |
|
69 |
<select name="submissions_retention_unit">
|
70 |
<option value="days" <?php selected( $cfrom_retain_unit, 'days' ); ?>>
|
71 |
+
<?php esc_html_e( 'day(s)', Forminator::DOMAIN ); ?></option>
|
72 |
<option value="weeks" <?php selected( $cfrom_retain_unit, 'weeks' ); ?>>
|
73 |
+
<?php esc_html_e( 'week(s)', Forminator::DOMAIN ); ?></option>
|
74 |
<option value="months" <?php selected( $cfrom_retain_unit, 'months' ); ?>>
|
75 |
+
<?php esc_html_e( 'month(s)', Forminator::DOMAIN ); ?></option>
|
76 |
<option value="years" <?php selected( $cfrom_retain_unit, 'years' ); ?>>
|
77 |
+
<?php esc_html_e( 'years(s)', Forminator::DOMAIN ); ?></option>
|
78 |
</select>
|
79 |
|
80 |
</div>
|
96 |
|
97 |
<label for="retain_ip-true" class="sui-tab-item<?php echo( $cform_retain_ip_forever ? ' active' : '' ); ?>">
|
98 |
<input type="radio"
|
99 |
+
name="retain_ip_forever"
|
100 |
+
value="true"
|
101 |
+
id="retain_ip-true"
|
102 |
<?php checked( $cform_retain_ip_forever, true ); ?> />
|
103 |
<?php esc_html_e( 'Forever', Forminator::DOMAIN ); ?>
|
104 |
</label>
|
105 |
|
106 |
<label for="retain_ip-false" class="sui-tab-item<?php echo( ! $cform_retain_ip_forever ? ' active' : '' ); ?>">
|
107 |
<input type="radio"
|
108 |
+
name="retain_ip_forever"
|
109 |
+
value="false"
|
110 |
+
id="retain_ip-false"
|
111 |
+
data-tab-menu="retain_ip"
|
112 |
<?php checked( $cform_retain_ip_forever, false ); ?> />
|
113 |
<?php esc_html_e( 'Custom', Forminator::DOMAIN ); ?>
|
114 |
</label>
|
123 |
<div class="sui-form-field">
|
124 |
|
125 |
<input type="number"
|
126 |
+
name="cform_retention_ip_number"
|
127 |
+
placeholder="<?php esc_html_e( 'E.g. 10', Forminator::DOMAIN ); ?>"
|
128 |
+
value="<?php echo esc_attr( $cform_retain_ip_number ); ?>"
|
129 |
+
min="0"
|
130 |
+
class="sui-form-control sui-form-control-inline"/>
|
131 |
|
132 |
</div>
|
133 |
</div>
|
136 |
|
137 |
<select name="cform_retention_ip_unit">
|
138 |
<option value="days" <?php selected( $cfrom_retain_ip_unit, 'days' ); ?>>
|
139 |
+
<?php esc_html_e( 'day(s)', Forminator::DOMAIN ); ?></option>
|
140 |
<option value="weeks" <?php selected( $cfrom_retain_ip_unit, 'weeks' ); ?>>
|
141 |
+
<?php esc_html_e( 'week(s)', Forminator::DOMAIN ); ?></option>
|
142 |
<option value="months" <?php selected( $cfrom_retain_ip_unit, 'months' ); ?>>
|
143 |
+
<?php esc_html_e( 'month(s)', Forminator::DOMAIN ); ?></option>
|
144 |
<option value="years" <?php selected( $cfrom_retain_ip_unit, 'years' ); ?>>
|
145 |
+
<?php esc_html_e( 'years(s)', Forminator::DOMAIN ); ?></option>
|
146 |
</select>
|
147 |
|
148 |
</div>
|
158 |
|
159 |
<span class="sui-settings-label"><?php esc_html_e( 'Account Erasure Requests', Forminator::DOMAIN ); ?></span>
|
160 |
<span class="sui-description">
|
161 |
+
<?php
|
162 |
+
/* translators: ... */
|
163 |
+
echo sprintf( __( 'When handling an <a href="%s" target="_blank">account erasure request</a> that contains an email associated with a submission, what do you want to do?', Forminator::DOMAIN ),
|
164 |
+
esc_url( admin_url( 'erase-personal-data.php' ) )
|
165 |
+
);
|
166 |
+
?>
|
167 |
</span>
|
168 |
|
169 |
<div class="sui-side-tabs" style="margin-top: 10px;">
|
172 |
|
173 |
<label for="erase_form_submissions-true" class="sui-tab-item<?php echo $form_submission_erasure_enabled ? ' active' : ''; ?>">
|
174 |
<input type="radio"
|
175 |
+
name="erase_form_submissions"
|
176 |
+
value="true"
|
177 |
+
id="erase_form_submissions-true"
|
178 |
<?php checked( $form_submission_erasure_enabled, true ); ?> />
|
179 |
<?php esc_html_e( 'Retain Submission', Forminator::DOMAIN ); ?>
|
180 |
</label>
|
181 |
|
182 |
<label for="erase_form_submissions-false" class="sui-tab-item<?php echo $form_submission_erasure_enabled ? '' : ' active'; ?>">
|
183 |
<input type="radio"
|
184 |
+
name="erase_form_submissions"
|
185 |
+
value="false"
|
186 |
+
id="erase_form_submissions-false"
|
187 |
<?php checked( $form_submission_erasure_enabled, false ); ?> />
|
188 |
<?php esc_html_e( 'Remove Submission', Forminator::DOMAIN ); ?>
|
189 |
</label>
|
admin/views/settings/data/polls-privacy.php
CHANGED
@@ -1,20 +1,13 @@
|
|
1 |
<?php
|
2 |
-
//
|
|
|
3 |
$polls_retain_number = get_option( 'forminator_retain_votes_interval_number', 0 );
|
4 |
$polls_retain_unit = get_option( 'forminator_retain_votes_interval_unit', 'days' );
|
5 |
-
$poll_retain_forever = false;
|
6 |
-
if ( empty( $polls_retain_number ) ) {
|
7 |
-
$poll_retain_forever = true;
|
8 |
-
}
|
9 |
|
10 |
-
//
|
|
|
11 |
$poll_submissions_retain_number = get_option( 'forminator_retain_poll_submissions_interval_number', 0 );
|
12 |
$poll_submissions_retain_unit = get_option( 'forminator_retain_poll_submissions_interval_unit', 'days' );
|
13 |
-
$poll_submissions_retain_forever = false;
|
14 |
-
if ( empty( $poll_submissions_retain_number ) ) {
|
15 |
-
$poll_submissions_retain_forever = true;
|
16 |
-
}
|
17 |
-
|
18 |
?>
|
19 |
|
20 |
<div class="sui-box-settings-row">
|
@@ -27,28 +20,28 @@ if ( empty( $poll_submissions_retain_number ) ) {
|
|
27 |
<div class="sui-box-settings-col-2">
|
28 |
|
29 |
<span class="sui-settings-label"><?php esc_html_e( 'Submissions Retention', Forminator::DOMAIN ); ?></span>
|
30 |
-
<span class="sui-description"><?php esc_html_e( 'How long do you want to retain the poll
|
31 |
|
32 |
<div class="sui-side-tabs" style="margin-top: 10px;">
|
33 |
|
34 |
<div class="sui-tabs-menu">
|
35 |
|
36 |
-
<label for="poll_retain_submission-true" class="sui-tab-item<?php echo( $
|
37 |
<input type="radio"
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
<?php checked( $
|
42 |
<?php esc_html_e( 'Forever', Forminator::DOMAIN ); ?>
|
43 |
</label>
|
44 |
|
45 |
-
<label for="poll_retain_submission-false" class="sui-tab-item<?php echo( ! $
|
46 |
<input type="radio"
|
47 |
-
|
48 |
-
|
49 |
-
|
50 |
-
|
51 |
-
<?php checked( $
|
52 |
<?php esc_html_e( 'Custom', Forminator::DOMAIN ); ?>
|
53 |
</label>
|
54 |
|
@@ -56,18 +49,18 @@ if ( empty( $poll_submissions_retain_number ) ) {
|
|
56 |
|
57 |
<div class="sui-tabs-content">
|
58 |
|
59 |
-
<div data-tab-content="poll_retain_submission" class="sui-tab-content sui-tab-boxed<?php echo( ! $
|
60 |
|
61 |
<div class="sui-row">
|
62 |
<div class="sui-col-md-6">
|
63 |
<div class="sui-form-field">
|
64 |
|
65 |
<input type="number"
|
66 |
-
|
67 |
-
|
68 |
-
|
69 |
-
|
70 |
-
|
71 |
|
72 |
</div>
|
73 |
</div>
|
@@ -75,13 +68,13 @@ if ( empty( $poll_submissions_retain_number ) ) {
|
|
75 |
<div class="sui-form-field">
|
76 |
<select name="poll_submissions_retention_unit">
|
77 |
<option value="days" <?php selected( $poll_submissions_retain_unit, 'days' ); ?>>
|
78 |
-
<?php esc_html_e(
|
79 |
<option value="weeks" <?php selected( $poll_submissions_retain_unit, 'weeks' ); ?>>
|
80 |
-
<?php esc_html_e(
|
81 |
<option value="months" <?php selected( $poll_submissions_retain_unit, 'months' ); ?>>
|
82 |
-
<?php esc_html_e(
|
83 |
<option value="years" <?php selected( $poll_submissions_retain_unit, 'years' ); ?>>
|
84 |
-
<?php esc_html_e(
|
85 |
</select>
|
86 |
|
87 |
</div>
|
@@ -97,30 +90,34 @@ if ( empty( $poll_submissions_retain_number ) ) {
|
|
97 |
|
98 |
<span class="sui-settings-label"><?php esc_html_e( 'IP Retention', Forminator::DOMAIN ); ?></span>
|
99 |
<span class="sui-description">
|
100 |
-
<?php
|
101 |
-
|
|
|
|
|
|
|
|
|
102 |
</span>
|
103 |
|
104 |
<div class="sui-side-tabs" style="margin-top: 10px;">
|
105 |
|
106 |
<div class="sui-tabs-menu">
|
107 |
|
108 |
-
<label for="retain_poll_submission-true" class="sui-tab-item<?php echo( $
|
109 |
<input type="radio"
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
<?php checked( $
|
114 |
<?php esc_html_e( 'Forever', Forminator::DOMAIN ); ?>
|
115 |
</label>
|
116 |
|
117 |
-
<label for="retain_poll_submission-false" class="sui-tab-item<?php echo( ! $
|
118 |
<input type="radio"
|
119 |
-
|
120 |
-
|
121 |
-
|
122 |
-
|
123 |
-
<?php checked( $
|
124 |
<?php esc_html_e( 'Custom', Forminator::DOMAIN ); ?>
|
125 |
</label>
|
126 |
|
@@ -128,18 +125,18 @@ if ( empty( $poll_submissions_retain_number ) ) {
|
|
128 |
|
129 |
<div class="sui-tabs-content">
|
130 |
|
131 |
-
<div data-tab-content="retain_poll_submission" class="sui-tab-content sui-tab-boxed<?php echo( ! $
|
132 |
|
133 |
<div class="sui-row">
|
134 |
<div class="sui-col-md-6">
|
135 |
<div class="sui-form-field">
|
136 |
|
137 |
<input type="number"
|
138 |
-
|
139 |
-
|
140 |
-
|
141 |
-
|
142 |
-
|
143 |
</div>
|
144 |
</div>
|
145 |
<div class="sui-col-md-6">
|
@@ -147,13 +144,13 @@ if ( empty( $poll_submissions_retain_number ) ) {
|
|
147 |
|
148 |
<select name="votes_retention_unit">
|
149 |
<option value="days" <?php selected( $polls_retain_unit, 'days' ); ?>>
|
150 |
-
<?php esc_html_e(
|
151 |
<option value="weeks" <?php selected( $polls_retain_unit, 'weeks' ); ?>>
|
152 |
-
<?php esc_html_e(
|
153 |
<option value="months" <?php selected( $polls_retain_unit, 'months' ); ?>>
|
154 |
-
<?php esc_html_e(
|
155 |
<option value="years" <?php selected( $polls_retain_unit, 'years' ); ?>>
|
156 |
-
<?php esc_html_e(
|
157 |
</select>
|
158 |
|
159 |
</div>
|
1 |
<?php
|
2 |
+
// Submissions
|
3 |
+
$poll_retain_forever = get_option( 'poll_retain_submission_forever' );
|
4 |
$polls_retain_number = get_option( 'forminator_retain_votes_interval_number', 0 );
|
5 |
$polls_retain_unit = get_option( 'forminator_retain_votes_interval_unit', 'days' );
|
|
|
|
|
|
|
|
|
6 |
|
7 |
+
// IP
|
8 |
+
$poll_submissions_retain_forever = get_option( 'retain_poll_forever' );
|
9 |
$poll_submissions_retain_number = get_option( 'forminator_retain_poll_submissions_interval_number', 0 );
|
10 |
$poll_submissions_retain_unit = get_option( 'forminator_retain_poll_submissions_interval_unit', 'days' );
|
|
|
|
|
|
|
|
|
|
|
11 |
?>
|
12 |
|
13 |
<div class="sui-box-settings-row">
|
20 |
<div class="sui-box-settings-col-2">
|
21 |
|
22 |
<span class="sui-settings-label"><?php esc_html_e( 'Submissions Retention', Forminator::DOMAIN ); ?></span>
|
23 |
+
<span class="sui-description"><?php esc_html_e( 'How long do you want to retain the poll\'s submissions for?', Forminator::DOMAIN ); ?></span>
|
24 |
|
25 |
<div class="sui-side-tabs" style="margin-top: 10px;">
|
26 |
|
27 |
<div class="sui-tabs-menu">
|
28 |
|
29 |
+
<label for="poll_retain_submission-true" class="sui-tab-item<?php echo( $poll_retain_forever ? ' active' : '' ); ?>">
|
30 |
<input type="radio"
|
31 |
+
name="poll_retain_submission_forever"
|
32 |
+
value="true"
|
33 |
+
id="poll_retain_submission-true"
|
34 |
+
<?php checked( $poll_retain_forever, true ); ?> />
|
35 |
<?php esc_html_e( 'Forever', Forminator::DOMAIN ); ?>
|
36 |
</label>
|
37 |
|
38 |
+
<label for="poll_retain_submission-false" class="sui-tab-item<?php echo( ! $poll_retain_forever ? ' active' : '' ); ?>">
|
39 |
<input type="radio"
|
40 |
+
name="poll_retain_submission_forever"
|
41 |
+
value="false"
|
42 |
+
id="poll_retain_submission-false"
|
43 |
+
data-tab-menu="poll_retain_submission"
|
44 |
+
<?php checked( $poll_retain_forever, false ); ?> />
|
45 |
<?php esc_html_e( 'Custom', Forminator::DOMAIN ); ?>
|
46 |
</label>
|
47 |
|
49 |
|
50 |
<div class="sui-tabs-content">
|
51 |
|
52 |
+
<div data-tab-content="poll_retain_submission" class="sui-tab-content sui-tab-boxed<?php echo( ! $poll_retain_forever ? ' active' : '' ); ?>">
|
53 |
|
54 |
<div class="sui-row">
|
55 |
<div class="sui-col-md-6">
|
56 |
<div class="sui-form-field">
|
57 |
|
58 |
<input type="number"
|
59 |
+
name="poll_submissions_retention_number"
|
60 |
+
placeholder="<?php esc_html_e( 'E.g. 10', Forminator::DOMAIN ); ?>"
|
61 |
+
value="<?php echo esc_attr( $poll_submissions_retain_number ); ?>"
|
62 |
+
min="0"
|
63 |
+
class="sui-form-control sui-form-control-inline"/>
|
64 |
|
65 |
</div>
|
66 |
</div>
|
68 |
<div class="sui-form-field">
|
69 |
<select name="poll_submissions_retention_unit">
|
70 |
<option value="days" <?php selected( $poll_submissions_retain_unit, 'days' ); ?>>
|
71 |
+
<?php esc_html_e( 'day(s)', Forminator::DOMAIN ); ?></option>
|
72 |
<option value="weeks" <?php selected( $poll_submissions_retain_unit, 'weeks' ); ?>>
|
73 |
+
<?php esc_html_e( 'week(s)', Forminator::DOMAIN ); ?></option>
|
74 |
<option value="months" <?php selected( $poll_submissions_retain_unit, 'months' ); ?>>
|
75 |
+
<?php esc_html_e( 'month(s)', Forminator::DOMAIN ); ?></option>
|
76 |
<option value="years" <?php selected( $poll_submissions_retain_unit, 'years' ); ?>>
|
77 |
+
<?php esc_html_e( 'years(s)', Forminator::DOMAIN ); ?></option>
|
78 |
</select>
|
79 |
|
80 |
</div>
|
90 |
|
91 |
<span class="sui-settings-label"><?php esc_html_e( 'IP Retention', Forminator::DOMAIN ); ?></span>
|
92 |
<span class="sui-description">
|
93 |
+
<?php
|
94 |
+
esc_html_e(
|
95 |
+
'Choose how long to retain IP address before a submission is anonymized. Keep in mind that the IP address is being used in checking multiple votes from same user.',
|
96 |
+
Forminator::DOMAIN
|
97 |
+
);
|
98 |
+
?>
|
99 |
</span>
|
100 |
|
101 |
<div class="sui-side-tabs" style="margin-top: 10px;">
|
102 |
|
103 |
<div class="sui-tabs-menu">
|
104 |
|
105 |
+
<label for="retain_poll_submission-true" class="sui-tab-item<?php echo( $poll_submissions_retain_forever ? ' active' : '' ); ?>">
|
106 |
<input type="radio"
|
107 |
+
name="retain_poll_forever"
|
108 |
+
value="true"
|
109 |
+
id="retain_poll_submission-true"
|
110 |
+
<?php checked( $poll_submissions_retain_forever, true ); ?> />
|
111 |
<?php esc_html_e( 'Forever', Forminator::DOMAIN ); ?>
|
112 |
</label>
|
113 |
|
114 |
+
<label for="retain_poll_submission-false" class="sui-tab-item<?php echo( ! $poll_submissions_retain_forever ? ' active' : '' ); ?>">
|
115 |
<input type="radio"
|
116 |
+
name="retain_poll_forever"
|
117 |
+
value="false"
|
118 |
+
data-tab-menu="retain_poll_submission"
|
119 |
+
id="retain_poll_submission-false"
|
120 |
+
<?php checked( $poll_submissions_retain_forever, false ); ?> />
|
121 |
<?php esc_html_e( 'Custom', Forminator::DOMAIN ); ?>
|
122 |
</label>
|
123 |
|
125 |
|
126 |
<div class="sui-tabs-content">
|
127 |
|
128 |
+
<div data-tab-content="retain_poll_submission" class="sui-tab-content sui-tab-boxed<?php echo( ! $poll_submissions_retain_forever ? ' active' : '' ); ?>">
|
129 |
|
130 |
<div class="sui-row">
|
131 |
<div class="sui-col-md-6">
|
132 |
<div class="sui-form-field">
|
133 |
|
134 |
<input type="number"
|
135 |
+
name="votes_retention_number"
|
136 |
+
placeholder="<?php esc_html_e( 'E.g. 10', Forminator::DOMAIN ); ?>"
|
137 |
+
value="<?php echo esc_attr( $polls_retain_number ); ?>"
|
138 |
+
min="0"
|
139 |
+
class="sui-form-control sui-form-control-inline"/>
|
140 |
</div>
|
141 |
</div>
|
142 |
<div class="sui-col-md-6">
|
144 |
|
145 |
<select name="votes_retention_unit">
|
146 |
<option value="days" <?php selected( $polls_retain_unit, 'days' ); ?>>
|
147 |
+
<?php esc_html_e( 'day(s)', Forminator::DOMAIN ); ?></option>
|
148 |
<option value="weeks" <?php selected( $polls_retain_unit, 'weeks' ); ?>>
|
149 |
+
<?php esc_html_e( 'week(s)', Forminator::DOMAIN ); ?></option>
|
150 |
<option value="months" <?php selected( $polls_retain_unit, 'months' ); ?>>
|
151 |
+
<?php esc_html_e( 'month(s)', Forminator::DOMAIN ); ?></option>
|
152 |
<option value="years" <?php selected( $polls_retain_unit, 'years' ); ?>>
|
153 |
+
<?php esc_html_e( 'years(s)', Forminator::DOMAIN ); ?></option>
|
154 |
</select>
|
155 |
|
156 |
</div>
|
admin/views/settings/data/quizzes-privacy.php
CHANGED
@@ -1,12 +1,7 @@
|
|
1 |
<?php
|
2 |
-
|
3 |
-
$quiz_retain_number
|
4 |
-
$quiz_retain_unit
|
5 |
-
$quiz_retain_forever = false;
|
6 |
-
if ( empty( $quiz_retain_number ) ) {
|
7 |
-
$quiz_retain_forever = true;
|
8 |
-
}
|
9 |
-
|
10 |
?>
|
11 |
|
12 |
<div class="sui-box-settings-row">
|
@@ -27,19 +22,19 @@ if ( empty( $quiz_retain_number ) ) {
|
|
27 |
|
28 |
<label for="quiz_retain_submission-true" class="sui-tab-item<?php echo( $quiz_retain_forever ? ' active' : '' ); ?>">
|
29 |
<input type="radio"
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
<?php checked( $quiz_retain_forever, true ); ?> />
|
34 |
<?php esc_html_e( 'Forever', Forminator::DOMAIN ); ?>
|
35 |
</label>
|
36 |
|
37 |
<label for="quiz_retain_submission-false" class="sui-tab-item<?php echo( ! $quiz_retain_forever ? ' active' : '' ); ?>">
|
38 |
<input type="radio"
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
<?php checked( $quiz_retain_forever, false ); ?> />
|
44 |
<?php esc_html_e( 'Custom', Forminator::DOMAIN ); ?>
|
45 |
</label>
|
@@ -54,11 +49,11 @@ if ( empty( $quiz_retain_number ) ) {
|
|
54 |
<div class="sui-form-field">
|
55 |
|
56 |
<input type="number"
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
-
|
62 |
</div>
|
63 |
</div>
|
64 |
<div class="sui-col-md-6">
|
@@ -66,13 +61,13 @@ if ( empty( $quiz_retain_number ) ) {
|
|
66 |
|
67 |
<select name="quiz_submissions_retention_unit">
|
68 |
<option value="days" <?php selected( $quiz_retain_unit, 'days' ); ?>>
|
69 |
-
<?php esc_html_e(
|
70 |
<option value="weeks" <?php selected( $quiz_retain_unit, 'weeks' ); ?>>
|
71 |
-
<?php esc_html_e(
|
72 |
<option value="months" <?php selected( $quiz_retain_unit, 'months' ); ?>>
|
73 |
-
<?php esc_html_e(
|
74 |
<option value="years" <?php selected( $quiz_retain_unit, 'years' ); ?>>
|
75 |
-
<?php esc_html_e(
|
76 |
</select>
|
77 |
|
78 |
</div>
|
1 |
<?php
|
2 |
+
$quiz_retain_forever = get_option( 'quiz_retain_submission_forever' );
|
3 |
+
$quiz_retain_number = get_option( 'forminator_retain_quiz_submissions_interval_number', 0 );
|
4 |
+
$quiz_retain_unit = get_option( 'forminator_retain_quiz_submissions_interval_unit', 'days' );
|
|
|
|
|
|
|
|
|
|
|
5 |
?>
|
6 |
|
7 |
<div class="sui-box-settings-row">
|
22 |
|
23 |
<label for="quiz_retain_submission-true" class="sui-tab-item<?php echo( $quiz_retain_forever ? ' active' : '' ); ?>">
|
24 |
<input type="radio"
|
25 |
+
name="quiz_retain_submission_forever"
|
26 |
+
value="true"
|
27 |
+
id="quiz_retain_submission-true"
|
28 |
<?php checked( $quiz_retain_forever, true ); ?> />
|
29 |
<?php esc_html_e( 'Forever', Forminator::DOMAIN ); ?>
|
30 |
</label>
|
31 |
|
32 |
<label for="quiz_retain_submission-false" class="sui-tab-item<?php echo( ! $quiz_retain_forever ? ' active' : '' ); ?>">
|
33 |
<input type="radio"
|
34 |
+
name="quiz_retain_submission_forever"
|
35 |
+
value="false"
|
36 |
+
id="quiz_retain_submission-false"
|
37 |
+
data-tab-menu="quiz_retain_submission"
|
38 |
<?php checked( $quiz_retain_forever, false ); ?> />
|
39 |
<?php esc_html_e( 'Custom', Forminator::DOMAIN ); ?>
|
40 |
</label>
|
49 |
<div class="sui-form-field">
|
50 |
|
51 |
<input type="number"
|
52 |
+
name="quiz_submissions_retention_number"
|
53 |
+
placeholder="<?php esc_html_e( 'E.g. 10', Forminator::DOMAIN ); ?>"
|
54 |
+
value="<?php echo esc_attr( $quiz_retain_number ); ?>"
|
55 |
+
min="0"
|
56 |
+
class="sui-form-control sui-form-control-inline"/>
|
57 |
</div>
|
58 |
</div>
|
59 |
<div class="sui-col-md-6">
|
61 |
|
62 |
<select name="quiz_submissions_retention_unit">
|
63 |
<option value="days" <?php selected( $quiz_retain_unit, 'days' ); ?>>
|
64 |
+
<?php esc_html_e( 'day(s)', Forminator::DOMAIN ); ?></option>
|
65 |
<option value="weeks" <?php selected( $quiz_retain_unit, 'weeks' ); ?>>
|
66 |
+
<?php esc_html_e( 'week(s)', Forminator::DOMAIN ); ?></option>
|
67 |
<option value="months" <?php selected( $quiz_retain_unit, 'months' ); ?>>
|
68 |
+
<?php esc_html_e( 'month(s)', Forminator::DOMAIN ); ?></option>
|
69 |
<option value="years" <?php selected( $quiz_retain_unit, 'years' ); ?>>
|
70 |
+
<?php esc_html_e( 'years(s)', Forminator::DOMAIN ); ?></option>
|
71 |
</select>
|
72 |
|
73 |
</div>
|
admin/views/settings/header.php
CHANGED
@@ -1,9 +1,9 @@
|
|
1 |
-
<h1 class="sui-header-title"><?php esc_html_e(
|
2 |
|
3 |
<div class="sui-actions-right">
|
4 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
5 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#settings" target="_blank" class="sui-button sui-button-ghost">
|
6 |
-
<i class="sui-icon-academy"></i> <?php esc_html_e(
|
7 |
</a>
|
8 |
<?php endif; ?>
|
9 |
</div>
|
1 |
+
<h1 class="sui-header-title"><?php esc_html_e( 'Settings', Forminator::DOMAIN ); ?></h1>
|
2 |
|
3 |
<div class="sui-actions-right">
|
4 |
<?php if ( forminator_is_show_documentation_link() ) : ?>
|
5 |
<a href="https://premium.wpmudev.org/docs/wpmu-dev-plugins/forminator/#settings" target="_blank" class="sui-button sui-button-ghost">
|
6 |
+
<i class="sui-icon-academy"></i> <?php esc_html_e( 'View Documentation', Forminator::DOMAIN ); ?>
|
7 |
</a>
|
8 |
<?php endif; ?>
|
9 |
</div>
|
admin/views/settings/payments/paypal.php
CHANGED
@@ -1,15 +1,15 @@
|
|
1 |
<?php
|
2 |
// defaults
|
3 |
$vars = array(
|
4 |
-
'error_message'
|
5 |
-
'sandbox_id'
|
6 |
-
'sandbox_id_error'
|
7 |
'sandbox_secret' => '',
|
8 |
'sandbox_secret_error' => '',
|
9 |
-
'live_id'
|
10 |
-
'live_id_error'
|
11 |
-
'live_secret'
|
12 |
-
'live_secret_error'
|
13 |
|
14 |
);
|
15 |
/** @var array $template_vars */
|
@@ -18,7 +18,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
18 |
}
|
19 |
?>
|
20 |
|
21 |
-
<span class="sui-description"><?php printf( esc_html__( 'Enter your PayPal REST API keys to connect your account. You can create a REST API app %1$shere%2$s to grab the credentials.' ), '<a href="https://developer.paypal.com/developer/applications/" target="_blank">', '</a>' ); ?></span>
|
22 |
|
23 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
24 |
|
1 |
<?php
|
2 |
// defaults
|
3 |
$vars = array(
|
4 |
+
'error_message' => '',
|
5 |
+
'sandbox_id' => '',
|
6 |
+
'sandbox_id_error' => '',
|
7 |
'sandbox_secret' => '',
|
8 |
'sandbox_secret_error' => '',
|
9 |
+
'live_id' => '',
|
10 |
+
'live_id_error' => '',
|
11 |
+
'live_secret' => '',
|
12 |
+
'live_secret_error' => '',
|
13 |
|
14 |
);
|
15 |
/** @var array $template_vars */
|
18 |
}
|
19 |
?>
|
20 |
|
21 |
+
<span class="sui-description"><?php /* translators: ... */ printf( esc_html__( 'Enter your PayPal REST API keys to connect your account. You can create a REST API app %1$shere%2$s to grab the credentials.' ), '<a href="https://developer.paypal.com/developer/applications/" target="_blank">', '</a>' ); ?></span>
|
22 |
|
23 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
24 |
|
admin/views/settings/payments/section-paypal.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
$plugin_url = forminator_plugin_url();
|
3 |
$paypal_min_php_version = apply_filters( 'forminator_payments_paypal_min_php_version', '5.3' );
|
4 |
-
$paypal_loaded = forminator_payment_lib_paypal_version_loaded('1.14.0');
|
5 |
$paypal_is_configured = false;
|
6 |
$forminator_currencies = forminator_pp_currency_list();
|
7 |
$paypal_default_currency = 'USD';
|
@@ -34,7 +34,7 @@ if ( $paypal_loaded ) {
|
|
34 |
|
35 |
<div class="sui-notice sui-notice-warning">
|
36 |
|
37 |
-
<p><?php printf( esc_html__( 'To be able to use PayPal Payments feature please upgrade your PHP to %1$sversion %2$s%3$s or above.', Forminator::DOMAIN ), '<strong>', esc_html( $paypal_min_php_version ), '</strong>' ); ?></p>
|
38 |
|
39 |
</div>
|
40 |
|
@@ -59,8 +59,8 @@ if ( $paypal_loaded ) {
|
|
59 |
<button
|
60 |
class="sui-button paypal-connect-modal"
|
61 |
type="button"
|
62 |
-
data-modal-image="<?php echo $plugin_url . 'assets/images/paypal-logo.png';
|
63 |
-
data-modal-image-x2="<?php echo $plugin_url . 'assets/images/paypal-logo@2x.png';
|
64 |
data-modal-title="<?php esc_html_e( 'Connect PayPal Account', Forminator::DOMAIN ); ?>"
|
65 |
data-modal-nonce="<?php echo esc_html( wp_create_nonce( 'forminator_paypal_settings_modal' ) ); ?>"
|
66 |
>
|
@@ -70,97 +70,97 @@ if ( $paypal_loaded ) {
|
|
70 |
</div>
|
71 |
|
72 |
<?php } else { ?>
|
73 |
-
|
74 |
|
75 |
-
|
76 |
|
77 |
-
|
78 |
-
|
79 |
-
|
80 |
-
|
81 |
|
82 |
-
|
83 |
|
84 |
-
|
85 |
|
86 |
-
|
87 |
-
|
88 |
-
|
89 |
-
|
90 |
|
91 |
-
|
92 |
-
|
93 |
-
|
94 |
-
|
95 |
|
96 |
-
|
97 |
|
98 |
-
|
99 |
|
100 |
-
|
101 |
|
102 |
-
|
103 |
|
104 |
-
|
105 |
|
106 |
-
|
107 |
|
108 |
-
|
109 |
-
|
110 |
-
|
111 |
-
|
112 |
-
|
113 |
-
|
114 |
-
|
115 |
|
116 |
<span class="sui-loading-text">
|
117 |
<?php esc_html_e( 'Disconnect', Forminator::DOMAIN ); ?>
|
118 |
</span>
|
119 |
|
120 |
-
|
121 |
|
122 |
-
|
123 |
|
124 |
-
|
125 |
|
126 |
-
|
127 |
-
|
128 |
-
|
129 |
-
|
130 |
-
|
131 |
-
|
132 |
-
|
133 |
-
|
134 |
<?php esc_html_e( 'Configure', Forminator::DOMAIN ); ?>
|
135 |
-
|
136 |
|
137 |
-
|
138 |
|
139 |
-
|
140 |
|
141 |
-
|
142 |
|
143 |
-
|
144 |
|
145 |
</table>
|
146 |
|
147 |
-
|
148 |
|
149 |
-
|
150 |
|
151 |
-
|
152 |
|
153 |
-
|
154 |
|
155 |
-
|
156 |
<?php foreach ( $forminator_currencies as $currency => $currency_nice ) : ?>
|
157 |
-
|
158 |
<?php endforeach; ?>
|
159 |
-
|
160 |
|
161 |
-
|
162 |
|
163 |
-
|
164 |
<?php } ?>
|
165 |
<?php endif; ?>
|
166 |
|
1 |
<?php
|
2 |
$plugin_url = forminator_plugin_url();
|
3 |
$paypal_min_php_version = apply_filters( 'forminator_payments_paypal_min_php_version', '5.3' );
|
4 |
+
$paypal_loaded = forminator_payment_lib_paypal_version_loaded( '1.14.0' );
|
5 |
$paypal_is_configured = false;
|
6 |
$forminator_currencies = forminator_pp_currency_list();
|
7 |
$paypal_default_currency = 'USD';
|
34 |
|
35 |
<div class="sui-notice sui-notice-warning">
|
36 |
|
37 |
+
<p><?php /* translators: ... */ printf( esc_html__( 'To be able to use PayPal Payments feature please upgrade your PHP to %1$sversion %2$s%3$s or above.', Forminator::DOMAIN ), '<strong>', esc_html( $paypal_min_php_version ), '</strong>' ); ?></p>
|
38 |
|
39 |
</div>
|
40 |
|
59 |
<button
|
60 |
class="sui-button paypal-connect-modal"
|
61 |
type="button"
|
62 |
+
data-modal-image="<?php echo esc_url( $plugin_url . 'assets/images/paypal-logo.png' ); ?>"
|
63 |
+
data-modal-image-x2="<?php echo esc_url( $plugin_url . 'assets/images/paypal-logo@2x.png' ); ?>"
|
64 |
data-modal-title="<?php esc_html_e( 'Connect PayPal Account', Forminator::DOMAIN ); ?>"
|
65 |
data-modal-nonce="<?php echo esc_html( wp_create_nonce( 'forminator_paypal_settings_modal' ) ); ?>"
|
66 |
>
|
70 |
</div>
|
71 |
|
72 |
<?php } else { ?>
|
73 |
+
<table class="sui-table" style="margin-top: 10px;">
|
74 |
|
75 |
+
<thead>
|
76 |
|
77 |
+
<tr>
|
78 |
+
<th><?php esc_html_e( 'Account Type', Forminator::DOMAIN ); ?></th>
|
79 |
+
<th colspan="2"><?php esc_html_e( 'Client Id', Forminator::DOMAIN ); ?></th>
|
80 |
+
</tr>
|
81 |
|
82 |
+
</thead>
|
83 |
|
84 |
+
<tbody>
|
85 |
|
86 |
+
<tr>
|
87 |
+
<td class="sui-table-title"><?php esc_html_e( 'Sandbox', Forminator::DOMAIN ); ?></td>
|
88 |
+
<td colspan="2"><span style="display: block; word-break: break-all;"><?php echo esc_html( $paypal->get_sandbox_id() ); ?></span></td>
|
89 |
+
</tr>
|
90 |
|
91 |
+
<tr>
|
92 |
+
<td class="sui-table-title"><?php esc_html_e( 'Live', Forminator::DOMAIN ); ?></td>
|
93 |
+
<td colspan="2"><span style="display: block; word-break: break-all;"><?php echo esc_html( $paypal->get_live_id() ); ?></span></td>
|
94 |
+
</tr>
|
95 |
|
96 |
+
</tbody>
|
97 |
|
98 |
+
<tfoot>
|
99 |
|
100 |
+
<tr>
|
101 |
|
102 |
+
<td colspan="3">
|
103 |
|
104 |
+
<div class="fui-buttons-alignment">
|
105 |
|
106 |
+
<form class="forminator-settings-save">
|
107 |
|
108 |
+
<button
|
109 |
+
class="sui-button sui-button-ghost wpmudev-open-modal"
|
110 |
+
data-modal="disconnect-paypal"
|
111 |
+
data-modal-title="<?php esc_attr_e( 'Disconnect PayPal Account', Forminator::DOMAIN ); ?>"
|
112 |
+
data-modal-content="<?php esc_attr_e( 'Are you sure you want to disconnect your PayPal Account? This will affect the forms using the PayPal field.', Forminator::DOMAIN ); ?>"
|
113 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminatorSettingsRequest' ) ); ?>"
|
114 |
+
>
|
115 |
|
116 |
<span class="sui-loading-text">
|
117 |
<?php esc_html_e( 'Disconnect', Forminator::DOMAIN ); ?>
|
118 |
</span>
|
119 |
|
120 |
+
<i class="sui-icon-loader sui-loading" aria-hidden="true"></i>
|
121 |
|
122 |
+
</button>
|
123 |
|
124 |
+
</form>
|
125 |
|
126 |
+
<button
|
127 |
+
class="sui-button paypal-connect-modal"
|
128 |
+
type="button"
|
129 |
+
data-modal-image="<?php echo esc_url( $plugin_url . 'assets/images/paypal-logo.png' ); ?>"
|
130 |
+
data-modal-image-x2="<?php echo esc_url( $plugin_url . 'assets/images/paypal-logo@2x.png' ); ?>"
|
131 |
+
data-modal-title="<?php esc_html_e( 'Connect PayPal Account', Forminator::DOMAIN ); ?>"
|
132 |
+
data-modal-nonce="<?php echo esc_html( wp_create_nonce( 'forminator_paypal_settings_modal' ) ); ?>"
|
133 |
+
>
|
134 |
<?php esc_html_e( 'Configure', Forminator::DOMAIN ); ?>
|
135 |
+
</button>
|
136 |
|
137 |
+
</div>
|
138 |
|
139 |
+
</td>
|
140 |
|
141 |
+
</tr>
|
142 |
|
143 |
+
</tfoot>
|
144 |
|
145 |
</table>
|
146 |
|
147 |
+
<div class="sui-form-field">
|
148 |
|
149 |
+
<label for="forminator-stripe-currency" class="sui-settings-label"><?php esc_html_e( 'Default charge currency', Forminator::DOMAIN ); ?></label>
|
150 |
|
151 |
+
<span class="sui-description" aria-describedby="forminator-stripe-currency"><?php esc_html_e( 'Choose the default charge currency for your PayPal payments. You can override this while setting up the PayPal field in your forms.', Forminator::DOMAIN ); ?></span>
|
152 |
|
153 |
+
<div style="max-width: 240px; display: block; margin-top: 10px;">
|
154 |
|
155 |
+
<select class="sui-select" id="forminator-paypal-currency" name="paypal-default-currency">
|
156 |
<?php foreach ( $forminator_currencies as $currency => $currency_nice ) : ?>
|
157 |
+
<option value="<?php echo esc_attr( $currency ); ?>" <?php echo selected( $currency, $paypal_default_currency ); ?>><?php echo esc_html( $currency ); ?></option>
|
158 |
<?php endforeach; ?>
|
159 |
+
</select>
|
160 |
|
161 |
+
</div>
|
162 |
|
163 |
+
</div>
|
164 |
<?php } ?>
|
165 |
<?php endif; ?>
|
166 |
|
admin/views/settings/payments/section-stripe.php
CHANGED
@@ -1,6 +1,6 @@
|
|
1 |
<?php
|
2 |
$plugin_url = forminator_plugin_url();
|
3 |
-
$stripe_min_php_version = apply_filters( 'forminator_payments_stripe_min_php_version', '5.
|
4 |
$stripe_loaded = forminator_payment_lib_stripe_version_loaded();
|
5 |
$stripe_is_configured = false;
|
6 |
$forminator_currencies = forminator_currency_list();
|
@@ -35,7 +35,7 @@ if ( $stripe_loaded ) {
|
|
35 |
|
36 |
<div class="sui-notice sui-notice-warning">
|
37 |
|
38 |
-
<p><?php printf( esc_html__( 'To be able to use Stripe Payments feature please upgrade your PHP to %1$sversion %2$s%3$s or above.', Forminator::DOMAIN ), '<strong>', esc_html( $stripe_min_php_version ), '</strong>' ); ?></p>
|
39 |
|
40 |
</div>
|
41 |
|
@@ -60,8 +60,8 @@ if ( $stripe_loaded ) {
|
|
60 |
<button
|
61 |
class="sui-button stripe-connect-modal"
|
62 |
type="button"
|
63 |
-
data-modal-image="<?php echo $plugin_url . 'assets/images/stripe-logo.png';
|
64 |
-
data-modal-image-x2="<?php echo $plugin_url . 'assets/images/stripe-logo@2x.png';
|
65 |
data-modal-title="<?php esc_html_e( 'Connect Stripe Account', Forminator::DOMAIN ); ?>"
|
66 |
data-modal-nonce="<?php echo esc_html( wp_create_nonce( 'forminator_stripe_settings_modal' ) ); ?>"
|
67 |
>
|
@@ -73,7 +73,8 @@ if ( $stripe_loaded ) {
|
|
73 |
<?php } else { ?>
|
74 |
|
75 |
<?php
|
76 |
-
// SETTINGS: Authorization
|
|
|
77 |
<table class="sui-table" style="margin-top: 10px;">
|
78 |
|
79 |
<thead>
|
@@ -114,7 +115,7 @@ if ( $stripe_loaded ) {
|
|
114 |
data-modal="disconnect-stripe"
|
115 |
data-modal-title="<?php esc_attr_e( 'Disconnect Stripe Account', Forminator::DOMAIN ); ?>"
|
116 |
data-modal-content="<?php esc_attr_e( 'Are you sure you want to disconnect your Stripe Account? This will affect the forms using the Stripe field.', Forminator::DOMAIN ); ?>"
|
117 |
-
data-nonce="<?php echo wp_create_nonce( 'forminatorSettingsRequest' );
|
118 |
>
|
119 |
|
120 |
<span class="sui-loading-text">
|
@@ -130,8 +131,8 @@ if ( $stripe_loaded ) {
|
|
130 |
<button
|
131 |
class="sui-button stripe-connect-modal"
|
132 |
type="button"
|
133 |
-
data-modal-image="<?php echo $plugin_url . 'assets/images/stripe-logo.png';
|
134 |
-
data-modal-image-x2="<?php echo $plugin_url . 'assets/images/stripe-logo@2x.png';
|
135 |
data-modal-title="<?php esc_html_e( 'Connect Stripe Account', Forminator::DOMAIN ); ?>"
|
136 |
data-modal-nonce="<?php echo esc_html( wp_create_nonce( 'forminator_stripe_settings_modal' ) ); ?>"
|
137 |
>
|
1 |
<?php
|
2 |
$plugin_url = forminator_plugin_url();
|
3 |
+
$stripe_min_php_version = apply_filters( 'forminator_payments_stripe_min_php_version', '5.6.0' );
|
4 |
$stripe_loaded = forminator_payment_lib_stripe_version_loaded();
|
5 |
$stripe_is_configured = false;
|
6 |
$forminator_currencies = forminator_currency_list();
|
35 |
|
36 |
<div class="sui-notice sui-notice-warning">
|
37 |
|
38 |
+
<p><?php /* translators: ... */ printf( esc_html__( 'To be able to use Stripe Payments feature please upgrade your PHP to %1$sversion %2$s%3$s or above.', Forminator::DOMAIN ), '<strong>', esc_html( $stripe_min_php_version ), '</strong>' ); ?></p>
|
39 |
|
40 |
</div>
|
41 |
|
60 |
<button
|
61 |
class="sui-button stripe-connect-modal"
|
62 |
type="button"
|
63 |
+
data-modal-image="<?php echo esc_url( $plugin_url . 'assets/images/stripe-logo.png' ); ?>"
|
64 |
+
data-modal-image-x2="<?php echo esc_url( $plugin_url . 'assets/images/stripe-logo@2x.png' ); ?>"
|
65 |
data-modal-title="<?php esc_html_e( 'Connect Stripe Account', Forminator::DOMAIN ); ?>"
|
66 |
data-modal-nonce="<?php echo esc_html( wp_create_nonce( 'forminator_stripe_settings_modal' ) ); ?>"
|
67 |
>
|
73 |
<?php } else { ?>
|
74 |
|
75 |
<?php
|
76 |
+
// SETTINGS: Authorization
|
77 |
+
?>
|
78 |
<table class="sui-table" style="margin-top: 10px;">
|
79 |
|
80 |
<thead>
|
115 |
data-modal="disconnect-stripe"
|
116 |
data-modal-title="<?php esc_attr_e( 'Disconnect Stripe Account', Forminator::DOMAIN ); ?>"
|
117 |
data-modal-content="<?php esc_attr_e( 'Are you sure you want to disconnect your Stripe Account? This will affect the forms using the Stripe field.', Forminator::DOMAIN ); ?>"
|
118 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminatorSettingsRequest' ) ); ?>"
|
119 |
>
|
120 |
|
121 |
<span class="sui-loading-text">
|
131 |
<button
|
132 |
class="sui-button stripe-connect-modal"
|
133 |
type="button"
|
134 |
+
data-modal-image="<?php echo esc_url( $plugin_url . 'assets/images/stripe-logo.png' ); ?>"
|
135 |
+
data-modal-image-x2="<?php echo esc_url( $plugin_url . 'assets/images/stripe-logo@2x.png' ); ?>"
|
136 |
data-modal-title="<?php esc_html_e( 'Connect Stripe Account', Forminator::DOMAIN ); ?>"
|
137 |
data-modal-nonce="<?php echo esc_html( wp_create_nonce( 'forminator_stripe_settings_modal' ) ); ?>"
|
138 |
>
|
admin/views/settings/payments/stripe.php
CHANGED
@@ -18,7 +18,7 @@ foreach ( $template_vars as $key => $val ) {
|
|
18 |
}
|
19 |
?>
|
20 |
|
21 |
-
<span class="sui-description"><?php printf( esc_html__( 'Enter your Stripe API keys below to connect your account. You can grab your API keys from %1$shere%2$s.' ), '<a href="https://dashboard.stripe.com/account/apikeys" target="_blank">', '</a>' ); ?></span>
|
22 |
|
23 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
24 |
|
18 |
}
|
19 |
?>
|
20 |
|
21 |
+
<span class="sui-description"><?php /* translators: ... */ printf( esc_html__( 'Enter your Stripe API keys below to connect your account. You can grab your API keys from %1$shere%2$s.' ), '<a href="https://dashboard.stripe.com/account/apikeys" target="_blank">', '</a>' ); ?></span>
|
22 |
|
23 |
<?php if ( ! empty( $vars['error_message'] ) ) : ?>
|
24 |
|
admin/views/settings/tab-accessibility.php
CHANGED
@@ -1,6 +1,5 @@
|
|
1 |
<?php
|
2 |
$section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : 'dashboard';
|
3 |
-
|
4 |
$nonce = wp_create_nonce( 'forminator_save_accessibility_settings' );
|
5 |
$accessibility_enabled = get_option( 'forminator_enable_accessibility', false );
|
6 |
$accessibility_enabled = filter_var( $accessibility_enabled, FILTER_VALIDATE_BOOLEAN );
|
@@ -17,9 +16,9 @@ $accessibility_enabled = filter_var( $accessibility_enabled, FILTER_VALIDATE_BOO
|
|
17 |
|
18 |
<div class="sui-box-body">
|
19 |
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
<div class="sui-box-settings-row">
|
24 |
|
25 |
<div class="sui-box-settings-col-1">
|
@@ -33,9 +32,9 @@ $accessibility_enabled = filter_var( $accessibility_enabled, FILTER_VALIDATE_BOO
|
|
33 |
|
34 |
<label for="forminator-color-accessibility" class="sui-toggle">
|
35 |
<input type="checkbox"
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
<span class="sui-toggle-slider" aria-hidden="true"></span>
|
40 |
</label>
|
41 |
|
@@ -54,10 +53,10 @@ $accessibility_enabled = filter_var( $accessibility_enabled, FILTER_VALIDATE_BOO
|
|
54 |
<div class="sui-actions-right">
|
55 |
|
56 |
<button class="sui-button sui-button-blue wpmudev-action-done"
|
57 |
-
|
58 |
-
|
59 |
-
|
60 |
-
|
61 |
<span class="sui-loading-text"><?php esc_html_e( 'Save Settings', Forminator::DOMAIN ); ?></span>
|
62 |
<i class="sui-icon-loader sui-loading" aria-hidden="true"></i>
|
63 |
</button>
|
1 |
<?php
|
2 |
$section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : 'dashboard';
|
|
|
3 |
$nonce = wp_create_nonce( 'forminator_save_accessibility_settings' );
|
4 |
$accessibility_enabled = get_option( 'forminator_enable_accessibility', false );
|
5 |
$accessibility_enabled = filter_var( $accessibility_enabled, FILTER_VALIDATE_BOOLEAN );
|
16 |
|
17 |
<div class="sui-box-body">
|
18 |
|
19 |
+
<div class="sui-box-settings-row">
|
20 |
+
<p><?php esc_html_e( 'Enable support for any accessibility enhancements available in the plugin interface.', Forminator::DOMAIN ); ?></p>
|
21 |
+
</div>
|
22 |
<div class="sui-box-settings-row">
|
23 |
|
24 |
<div class="sui-box-settings-col-1">
|
32 |
|
33 |
<label for="forminator-color-accessibility" class="sui-toggle">
|
34 |
<input type="checkbox"
|
35 |
+
name="enable_accessibility"
|
36 |
+
value="true"
|
37 |
+
id="forminator-color-accessibility" <?php checked( $accessibility_enabled ); ?>/>
|
38 |
<span class="sui-toggle-slider" aria-hidden="true"></span>
|
39 |
</label>
|
40 |
|
53 |
<div class="sui-actions-right">
|
54 |
|
55 |
<button class="sui-button sui-button-blue wpmudev-action-done"
|
56 |
+
data-title="<?php esc_attr_e( 'Accessibility settings', Forminator::DOMAIN ); ?>"
|
57 |
+
data-action="accessibility_settings"
|
58 |
+
data-nonce="<?php echo esc_attr( $nonce ); ?>"
|
59 |
+
data-is-reload="true">
|
60 |
<span class="sui-loading-text"><?php esc_html_e( 'Save Settings', Forminator::DOMAIN ); ?></span>
|
61 |
<i class="sui-icon-loader sui-loading" aria-hidden="true"></i>
|
62 |
</button>
|
admin/views/settings/tab-dashboard.php
CHANGED
@@ -1,6 +1,5 @@
|
|
1 |
<?php
|
2 |
$section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : 'dashboard';
|
3 |
-
|
4 |
$nonce = wp_create_nonce( 'forminator_save_dashboard_settings' );
|
5 |
?>
|
6 |
|
@@ -71,7 +70,7 @@ $nonce = wp_create_nonce( 'forminator_save_dashboard_settings' );
|
|
71 |
|
72 |
<div class="sui-actions-right">
|
73 |
|
74 |
-
<button class="sui-button sui-button-blue wpmudev-action-done" data-title="<?php esc_attr_e(
|
75 |
<span class="sui-loading-text"><?php esc_html_e( 'Save Settings', Forminator::DOMAIN ); ?></span>
|
76 |
<i class="sui-icon-loader sui-loading" aria-hidden="true"></i>
|
77 |
</button>
|
1 |
<?php
|
2 |
$section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : 'dashboard';
|
|
|
3 |
$nonce = wp_create_nonce( 'forminator_save_dashboard_settings' );
|
4 |
?>
|
5 |
|
70 |
|
71 |
<div class="sui-actions-right">
|
72 |
|
73 |
+
<button class="sui-button sui-button-blue wpmudev-action-done" data-title="<?php esc_attr_e( 'General settings', Forminator::DOMAIN ); ?>" data-action="dashboard_settings" data-nonce="<?php echo esc_attr( $nonce ); ?>">
|
74 |
<span class="sui-loading-text"><?php esc_html_e( 'Save Settings', Forminator::DOMAIN ); ?></span>
|
75 |
<i class="sui-icon-loader sui-loading" aria-hidden="true"></i>
|
76 |
</button>
|
admin/views/settings/tab-data.php
CHANGED
@@ -1,7 +1,7 @@
|
|
1 |
<?php
|
2 |
$section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : 'dashboard';
|
3 |
$nonce = wp_create_nonce( 'forminator_save_popup_uninstall_settings' );
|
4 |
-
$forminator_uninstall = get_option(
|
5 |
|
6 |
?>
|
7 |
|
@@ -28,18 +28,18 @@ $forminator_uninstall = get_option( "forminator_uninstall_clear_data", false );
|
|
28 |
|
29 |
<label for="delete_uninstall-false" class="sui-tab-item<?php echo $forminator_uninstall ? '' : ' active'; ?>">
|
30 |
<input type="radio"
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
<?php echo esc_attr( checked( $forminator_uninstall, false ) ); ?> />
|
35 |
<?php esc_html_e( 'Preserve', Forminator::DOMAIN ); ?>
|
36 |
</label>
|
37 |
|
38 |
<label for="delete_uninstall-true" class="sui-tab-item<?php echo $forminator_uninstall ? ' active' : ''; ?>">
|
39 |
<input type="radio"
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
<?php echo esc_attr( checked( $forminator_uninstall, true ) ); ?> />
|
44 |
<?php esc_html_e( 'Reset', Forminator::DOMAIN ); ?>
|
45 |
</label>
|
@@ -64,7 +64,7 @@ $forminator_uninstall = get_option( "forminator_uninstall_clear_data", false );
|
|
64 |
data-modal="reset-plugin-settings"
|
65 |
data-modal-title="<?php esc_attr_e( 'Reset Plugin', Forminator::DOMAIN ); ?>"
|
66 |
data-modal-content="<?php esc_attr_e( 'Are you sure you want to reset the plugin to its default state?', Forminator::DOMAIN ); ?>"
|
67 |
-
data-nonce="<?php echo wp_create_nonce( 'forminatorSettingsRequest' );
|
68 |
>
|
69 |
|
70 |
<span class="sui-loading-text">
|
@@ -74,10 +74,12 @@ $forminator_uninstall = get_option( "forminator_uninstall_clear_data", false );
|
|
74 |
|
75 |
</button>
|
76 |
<span class="sui-description">
|
77 |
-
<?php
|
|
|
78 |
'Note: This will delete all the form/polls/quizzes you currently have and revert all settings to their default state.',
|
79 |
Forminator::DOMAIN
|
80 |
-
);
|
|
|
81 |
</span>
|
82 |
</div>
|
83 |
|
@@ -89,8 +91,8 @@ $forminator_uninstall = get_option( "forminator_uninstall_clear_data", false );
|
|
89 |
|
90 |
<div class="sui-actions-right">
|
91 |
|
92 |
-
<button class="sui-button sui-button-blue wpmudev-action-done" data-title="<?php esc_attr_e(
|
93 |
-
|
94 |
<span class="sui-loading-text"><?php esc_html_e( 'Save Settings', Forminator::DOMAIN ); ?></span>
|
95 |
<i class="sui-icon-loader sui-loading" aria-hidden="true"></i>
|
96 |
</button>
|
1 |
<?php
|
2 |
$section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : 'dashboard';
|
3 |
$nonce = wp_create_nonce( 'forminator_save_popup_uninstall_settings' );
|
4 |
+
$forminator_uninstall = get_option( 'forminator_uninstall_clear_data', false );
|
5 |
|
6 |
?>
|
7 |
|
28 |
|
29 |
<label for="delete_uninstall-false" class="sui-tab-item<?php echo $forminator_uninstall ? '' : ' active'; ?>">
|
30 |
<input type="radio"
|
31 |
+
name="delete_uninstall"
|
32 |
+
value="false"
|
33 |
+
id="delete_uninstall-false"
|
34 |
<?php echo esc_attr( checked( $forminator_uninstall, false ) ); ?> />
|
35 |
<?php esc_html_e( 'Preserve', Forminator::DOMAIN ); ?>
|
36 |
</label>
|
37 |
|
38 |
<label for="delete_uninstall-true" class="sui-tab-item<?php echo $forminator_uninstall ? ' active' : ''; ?>">
|
39 |
<input type="radio"
|
40 |
+
name="delete_uninstall"
|
41 |
+
value="true"
|
42 |
+
id="delete_uninstall-true"
|
43 |
<?php echo esc_attr( checked( $forminator_uninstall, true ) ); ?> />
|
44 |
<?php esc_html_e( 'Reset', Forminator::DOMAIN ); ?>
|
45 |
</label>
|
64 |
data-modal="reset-plugin-settings"
|
65 |
data-modal-title="<?php esc_attr_e( 'Reset Plugin', Forminator::DOMAIN ); ?>"
|
66 |
data-modal-content="<?php esc_attr_e( 'Are you sure you want to reset the plugin to its default state?', Forminator::DOMAIN ); ?>"
|
67 |
+
data-nonce="<?php echo esc_attr( wp_create_nonce( 'forminatorSettingsRequest' ) ); ?>"
|
68 |
>
|
69 |
|
70 |
<span class="sui-loading-text">
|
74 |
|
75 |
</button>
|
76 |
<span class="sui-description">
|
77 |
+
<?php
|
78 |
+
esc_html_e(
|
79 |
'Note: This will delete all the form/polls/quizzes you currently have and revert all settings to their default state.',
|
80 |
Forminator::DOMAIN
|
81 |
+
);
|
82 |
+
?>
|
83 |
</span>
|
84 |
</div>
|
85 |
|
91 |
|
92 |
<div class="sui-actions-right">
|
93 |
|
94 |
+
<button class="sui-button sui-button-blue wpmudev-action-done" data-title="<?php esc_attr_e( 'Data settings', Forminator::DOMAIN ); ?>" data-action="uninstall_settings"
|
95 |
+
data-nonce="<?php echo esc_attr( $nonce ); ?>">
|
96 |
<span class="sui-loading-text"><?php esc_html_e( 'Save Settings', Forminator::DOMAIN ); ?></span>
|
97 |
<i class="sui-icon-loader sui-loading" aria-hidden="true"></i>
|
98 |
</button>
|
admin/views/settings/tab-emails.php
CHANGED
@@ -5,43 +5,43 @@ $sender_name = get_global_sender_name();
|
|
5 |
|
6 |
<div class="sui-box-settings-row">
|
7 |
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
-
|
12 |
-
|
13 |
-
|
14 |
-
|
15 |
-
|
16 |
-
|
17 |
-
|
18 |
-
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
-
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
-
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
</div>
|
5 |
|
6 |
<div class="sui-box-settings-row">
|
7 |
|
8 |
+
<div class="sui-box-settings-col-1">
|
9 |
+
<span class="sui-settings-label"><?php esc_html_e( 'From Headers', Forminator::DOMAIN ); ?></span>
|
10 |
+
<span class="sui-description"><?php esc_html_e( 'Choose the default sender name and sender email address for all of your outgoing emails from Forminator.', Forminator::DOMAIN ); ?></span>
|
11 |
+
</div>
|
12 |
+
|
13 |
+
<div class="sui-box-settings-col-2">
|
14 |
+
|
15 |
+
<div class="sui-form-field">
|
16 |
+
|
17 |
+
<label for="forminator-settings--sender-email"
|
18 |
+
class="sui-label"><?php esc_html_e( 'Sender email address', Forminator::DOMAIN ); ?></label>
|
19 |
+
<input type="email"
|
20 |
+
name="sender_email"
|
21 |
+
placeholder="<?php esc_html_e( 'Enter email', Forminator::DOMAIN ); ?>"
|
22 |
+
value="<?php echo esc_html( $sender_email_address ); ?>"
|
23 |
+
id="forminator-settings--sender-email"
|
24 |
+
class="sui-form-control forminator-required"/>
|
25 |
+
<span class="sui-error-message"
|
26 |
+
style="display: none;"><?php esc_html_e( 'Please, enter a valid email address.', Forminator::DOMAIN ); ?></span>
|
27 |
+
|
28 |
+
</div>
|
29 |
+
|
30 |
+
<div class="sui-form-field">
|
31 |
+
|
32 |
+
<label for="forminator-settings--sender-name"
|
33 |
+
class="sui-label"><?php esc_html_e( 'Sender name', Forminator::DOMAIN ); ?></label>
|
34 |
+
<input type="text"
|
35 |
+
name="sender_name"
|
36 |
+
placeholder="<?php esc_html_e( 'Enter name', Forminator::DOMAIN ); ?>"
|
37 |
+
value="<?php echo esc_html( $sender_name ); ?>"
|
38 |
+
id="forminator-settings--sender-name"
|
39 |
+
class="sui-form-control forminator-required"/>
|
40 |
+
<span class="sui-error-message"
|
41 |
+
style="display: none;"><?php esc_html_e( 'The sender email cannot be empty.', Forminator::DOMAIN ); ?></span>
|
42 |
+
|
43 |
+
</div>
|
44 |
+
|
45 |
+
</div>
|
46 |
+
|
47 |
+
</div>
|
admin/views/settings/tab-pagination.php
CHANGED
@@ -1,54 +1,54 @@
|
|
1 |
<?php
|
2 |
-
$entries_per_page = get_option(
|
3 |
-
$module_per_page = get_option(
|
4 |
?>
|
5 |
<div class="sui-box-settings-row">
|
6 |
|
7 |
-
|
8 |
-
|
9 |
-
|
10 |
-
|
11 |
|
12 |
-
|
13 |
|
14 |
-
|
15 |
|
16 |
-
|
17 |
-
|
18 |
|
19 |
-
|
20 |
-
|
21 |
-
|
22 |
-
|
23 |
-
|
24 |
-
|
25 |
-
|
26 |
-
|
27 |
|
28 |
-
|
29 |
-
|
30 |
-
|
31 |
|
32 |
-
|
33 |
-
|
34 |
|
35 |
-
|
36 |
-
|
37 |
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
|
47 |
-
|
48 |
-
|
49 |
|
50 |
-
|
51 |
|
52 |
-
|
53 |
|
54 |
-
</div>
|
1 |
<?php
|
2 |
+
$entries_per_page = get_option( 'forminator_pagination_entries', 10 );
|
3 |
+
$module_per_page = get_option( 'forminator_pagination_listings', 10 );
|
4 |
?>
|
5 |
<div class="sui-box-settings-row">
|
6 |
|
7 |
+
<div class="sui-box-settings-col-1">
|
8 |
+
<span class="sui-settings-label"><?php esc_html_e( 'Pagination', Forminator::DOMAIN ); ?></span>
|
9 |
+
<span class="sui-description"><?php esc_html_e( 'Choose the number of items to show per page on your submissions or modules listing pages.', Forminator::DOMAIN ); ?></span>
|
10 |
+
</div>
|
11 |
|
12 |
+
<div class="sui-box-settings-col-2">
|
13 |
|
14 |
+
<label class="sui-settings-label"><?php esc_html_e( 'Modules', Forminator::DOMAIN ); ?></label>
|
15 |
|
16 |
+
<span class="sui-description"
|
17 |
+
style="margin-bottom: 10px;"><?php esc_html_e( 'Choose the number of forms, polls, and quizzes to show on each listing page.', Forminator::DOMAIN ); ?></span>
|
18 |
|
19 |
+
<div class="sui-form-field">
|
20 |
+
<input type="number"
|
21 |
+
name="pagination_listings"
|
22 |
+
placeholder="<?php esc_html_e( '10', Forminator::DOMAIN ); ?>"
|
23 |
+
value="<?php echo esc_attr( $module_per_page ); ?>"
|
24 |
+
min="1"
|
25 |
+
id="forminator-limit-listing"
|
26 |
+
class="sui-form-control forminator-required sui-input-sm sui-field-has-suffix"/>
|
27 |
|
28 |
+
<span class="sui-field-suffix"><?php esc_html_e( 'modules per page', Forminator::DOMAIN ); ?></span>
|
29 |
+
<span class="sui-error-message"
|
30 |
+
style="display: none;"><?php esc_html_e( 'This field cannot be empty.', Forminator::DOMAIN ); ?></span>
|
31 |
|
32 |
+
</div>
|
33 |
+
<label class="sui-settings-label"><?php esc_html_e( 'Submissions', Forminator::DOMAIN ); ?></label>
|
34 |
|
35 |
+
<span class="sui-description"
|
36 |
+
style="margin-bottom: 10px;"><?php esc_html_e( 'Choose the number of submissions to show per page.', Forminator::DOMAIN ); ?></span>
|
37 |
|
38 |
+
<div class="sui-form-field">
|
39 |
+
<input type="number"
|
40 |
+
name="pagination_entries"
|
41 |
+
placeholder="<?php esc_html_e( '10', Forminator::DOMAIN ); ?>"
|
42 |
+
value="<?php echo esc_attr( $entries_per_page ); ?>"
|
43 |
+
min="1"
|
44 |
+
id="forminator-limit-entries"
|
45 |
+
class="sui-form-control forminator-required sui-input-sm sui-field-has-suffix"/>
|
46 |
+
<span class="sui-field-suffix"><?php esc_html_e( 'submissions per page', Forminator::DOMAIN ); ?></span>
|
47 |
+
<span class="sui-error-message"
|
48 |
+
style="display: none;"><?php esc_html_e( 'This field cannot be empty.', Forminator::DOMAIN ); ?></span>
|
49 |
|
50 |
+
</div>
|
51 |
|
52 |
+
</div>
|
53 |
|
54 |
+
</div>
|
admin/views/settings/tab-payments.php
CHANGED
@@ -32,7 +32,7 @@ $nonce = wp_create_nonce( 'forminator_save_payments_settings' );
|
|
32 |
|
33 |
<button
|
34 |
class="sui-button sui-button-blue wpmudev-action-done"
|
35 |
-
data-title="<?php esc_attr_e(
|
36 |
data-action="payments_settings"
|
37 |
data-nonce="<?php echo esc_attr( $nonce ); ?>"
|
38 |
>
|
32 |
|
33 |
<button
|
34 |
class="sui-button sui-button-blue wpmudev-action-done"
|
35 |
+
data-title="<?php esc_attr_e( 'Payments settings', Forminator::DOMAIN ); ?>"
|
36 |
data-action="payments_settings"
|
37 |
data-nonce="<?php echo esc_attr( $nonce ); ?>"
|
38 |
>
|
admin/views/settings/tab-recaptcha.php
CHANGED
@@ -1,6 +1,5 @@
|
|
1 |
<?php
|
2 |
$section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : 'dashboard';
|
3 |
-
|
4 |
$v2_captcha_key = get_option( 'forminator_captcha_key', '' );
|
5 |
$v2_captcha_secret = get_option( 'forminator_captcha_secret', '' );
|
6 |
$v2_invisible_captcha_key = get_option( 'forminator_v2_invisible_captcha_key', '' );
|
@@ -35,7 +34,7 @@ $new = true;
|
|
35 |
<div class="sui-form-field">
|
36 |
|
37 |
<span class="sui-settings-label"><?php esc_html_e( 'API Keys', Forminator::DOMAIN ); ?></span>
|
38 |
-
<span class="sui-description" style="margin-bottom: 10px;"><?php printf( esc_html( __(
|
39 |
|
40 |
<div class="sui-tabs sui-tabs-overflow">
|
41 |
|
@@ -198,8 +197,8 @@ $new = true;
|
|
198 |
<select name="captcha_language" id="captcha_language" class="sui-select">
|
199 |
<?php $languages = forminator_get_captcha_languages(); ?>
|
200 |
<option value=""><?php esc_html_e( 'Automatic', Forminator::DOMAIN ); ?></option>
|
201 |
-
<?php foreach ( $languages as $key => $lang ): ?>
|
202 |
-
<option value="<?php echo $key; ?>" <?php selected( $captcha_language, $key ); ?>><?php echo esc_html( $lang ); ?></option>
|
203 |
<?php endforeach; ?>
|
204 |
</select>
|
205 |
|
@@ -218,7 +217,7 @@ $new = true;
|
|
218 |
|
219 |
<button
|
220 |
class="sui-button sui-button-blue wpmudev-action-done"
|
221 |
-
data-title="<?php esc_attr_e(
|
222 |
data-action="captcha"
|
223 |
data-nonce="<?php echo esc_attr( $nonce ); ?>"
|
224 |
>
|
1 |
<?php
|
2 |
$section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : 'dashboard';
|
|
|
3 |
$v2_captcha_key = get_option( 'forminator_captcha_key', '' );
|
4 |
$v2_captcha_secret = get_option( 'forminator_captcha_secret', '' );
|
5 |
$v2_invisible_captcha_key = get_option( 'forminator_v2_invisible_captcha_key', '' );
|
34 |
<div class="sui-form-field">
|
35 |
|
36 |
<span class="sui-settings-label"><?php esc_html_e( 'API Keys', Forminator::DOMAIN ); ?></span>
|
37 |
+
<span class="sui-description" style="margin-bottom: 10px;"><?php /* translators: ... */ printf( esc_html( __( 'Enter the API keys for each reCAPTCHA type you want to use in your forms. Note that each reCAPTCHA type requires a different set of API keys. %1$sGenerate API keys%2$s', Forminator::DOMAIN ) ), '<a href="https://www.google.com/recaptcha/admin#list" target="_blank">', '</a>' ); ?></span>
|
38 |
|
39 |
<div class="sui-tabs sui-tabs-overflow">
|
40 |
|
197 |
<select name="captcha_language" id="captcha_language" class="sui-select">
|
198 |
<?php $languages = forminator_get_captcha_languages(); ?>
|
199 |
<option value=""><?php esc_html_e( 'Automatic', Forminator::DOMAIN ); ?></option>
|
200 |
+
<?php foreach ( $languages as $key => $lang ) : ?>
|
201 |
+
<option value="<?php echo esc_attr( $key ); ?>" <?php selected( $captcha_language, $key ); ?>><?php echo esc_html( $lang ); ?></option>
|
202 |
<?php endforeach; ?>
|
203 |
</select>
|
204 |
|
217 |
|
218 |
<button
|
219 |
class="sui-button sui-button-blue wpmudev-action-done"
|
220 |
+
data-title="<?php esc_attr_e( 'reCaptcha settings', Forminator::DOMAIN ); ?>"
|
221 |
data-action="captcha"
|
222 |
data-nonce="<?php echo esc_attr( $nonce ); ?>"
|
223 |
>
|
admin/views/settings/tab-submissions.php
CHANGED
@@ -1,6 +1,5 @@
|
|
1 |
<?php
|
2 |
$section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : 'dashboard';
|
3 |
-
|
4 |
$nonce = wp_create_nonce( 'forminator_save_privacy_settings' );
|
5 |
?>
|
6 |
|
@@ -26,8 +25,8 @@ $nonce = wp_create_nonce( 'forminator_save_privacy_settings' );
|
|
26 |
|
27 |
<div class="sui-actions-right">
|
28 |
|
29 |
-
<button class="sui-button sui-button-blue wpmudev-action-done" data-title="<?php esc_attr_e(
|
30 |
-
|
31 |
<span class="sui-loading-text"><?php esc_html_e( 'Save Settings', Forminator::DOMAIN ); ?></span>
|
32 |
<i class="sui-icon-loader sui-loading" aria-hidden="true"></i>
|
33 |
</button>
|
1 |
<?php
|
2 |
$section = isset( $_GET['section'] ) ? sanitize_text_field( $_GET['section'] ) : 'dashboard';
|
|
|
3 |
$nonce = wp_create_nonce( 'forminator_save_privacy_settings' );
|
4 |
?>
|
5 |
|
25 |
|
26 |
<div class="sui-actions-right">
|
27 |
|
28 |
+
<button class="sui-button sui-button-blue wpmudev-action-done" data-title="<?php esc_attr_e( 'Submissions settings', Forminator::DOMAIN ); ?>" data-action="privacy_settings"
|
29 |
+
data-nonce="<?php echo esc_attr( $nonce ); ?>">
|
30 |
<span class="sui-loading-text"><?php esc_html_e( 'Save Settings', Forminator::DOMAIN ); ?></span>
|
31 |
<i class="sui-icon-loader sui-loading" aria-hidden="true"></i>
|
32 |
</button>
|
assets/css/forminator-scgen.min.css
CHANGED
@@ -1,2 +1,2 @@
|
|
1 |
-
@import url(https://fonts.googleapis.com/css?family=Roboto:400,500,700);@import url(https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.6-rc.0/css/select2.min.css);.sui-forminator-scgen .sui-wrap .sui-insert-variables .sui-variables+.select2 .select2-selection--single .select2-selection__rendered,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox label input,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu .sui-tab-item input,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu>* input,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs] .sui-tab-item input,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs]>* input,.sui-forminator-scgen[class*=sui-2-] #forminator-generate-shortcode span,.sui-screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);-webkit-clip-path:inset(50%);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute!important;width:1px;word-wrap:normal!important}.sui-forminator-scgen .sui-wrap .sui-fade-in{animation:fadeIn .3s ease-in forwards}.sui-forminator-scgen .sui-wrap .sui-fade-out{animation:fadeOut .3s ease-in forwards}.sui-forminator-scgen .sui-wrap .sui-bounce-in{animation:bounceInJiggle .8s ease-in forwards}.sui-forminator-scgen .sui-wrap .sui-bounce-out{animation:bounceOutJiggle .6s ease-out forwards}.sui-forminator-scgen .sui-wrap .sui-content-fade-in{animation:fadeScaleIn .8s ease-in forwards}.sui-forminator-scgen .sui-wrap .sui-content-fade-out{animation:fadeScaleOut .9s ease-in forwards}@keyframes bounceInDown{0%,60%,75%,90%,to{animation-timing-function:cubic-bezier(.215,.61,.355,1)}0%{opacity:0;transform:translate3d(0,-3000px,0)}60%{opacity:1;transform:translate3d(0,25px,0)}75%{transform:translate3d(0,-10px,0)}90%{transform:translate3d(0,5px,0)}to{transform:none}}@keyframes bounceInJiggle{0%{transform:translateY(-200%) scale(1.5);opacity:0}30%{opacity:1}58%{transform:translateY(0) rotate(1deg) scale(1);opacity:1}72%{transform:translateY(-30px) rotate(-1deg)}80%{transform:translateY(0) rotate(.5deg)}to{transform:translateY(0) rotate(0deg)}}@keyframes bounceOutJiggle{0%{transform:translateY(0)}10%{transform:translateY(-10px) rotate(-.5deg)}30%{transform:translateY(20px) rotate(8deg)}70%{opacity:1}90%{transform:translateY(300%) translateX(40px) rotate(35deg);opacity:0}to{display:none}}@keyframes bounceOut{20%{transform:scale3d(.9,.9,.9)}50%,55%{opacity:1;transform:scale3d(1.1,1.1,1.1)}to{opacity:0;transform:scale3d(.3,.3,.3)}}@keyframes fadeIn{0%{opacity:0}25%{opacity:1}}@keyframes fadeScaleIn{0%{opacity:0}25%{opacity:0;transform:translate3d(0,10px,0) scale(.9)}to{transform:translateZ(0) scale(1)}}@keyframes fadeOut{0%{opacity:1}75%{opacity:1}to{opacity:0}}@keyframes fadeScaleOut{0%{opacity:1;transform:translateZ(0) scale(1)}25%{opacity:0;transform:translate3d(0,10px,0) scale(.9)}to{opacity:0}}@keyframes fadeInLeft{0%{opacity:0;transform:translate3d(-50px,0,0)}to{opacity:1;transform:none}}@keyframes fadeInRight{0%{opacity:0;transform:translate3d(50px,0,0)}to{opacity:1;transform:none}}@keyframes spin{0%{transform:rotate(0deg)}to{transform:rotate(1turn)}}.sui-forminator-scgen .sui-wrap{font-family:Roboto,Arial,sans-serif;font-weight:400;font-size:15px;line-height:30px;color:#666;letter-spacing:-.25px;margin:30px 30px 0 10px}.sui-forminator-scgen .sui-wrap *{font-variant-ligatures:none;-webkit-font-variant-ligatures:none;text-rendering:optimizeLegibility;-moz-osx-font-smoothing:grayscale;font-smoothing:antialiased;-webkit-font-smoothing:antialiased;text-shadow:rgba(0,0,0,.01) 0 0 1px}@media (max-width:782px){.sui-forminator-scgen .sui-wrap{margin:20px 10px 0 0}}.sui-forminator-scgen .sui-wrap h1,.sui-forminator-scgen .sui-wrap h2,.sui-forminator-scgen .sui-wrap h3,.sui-forminator-scgen .sui-wrap h4,.sui-forminator-scgen .sui-wrap h5,.sui-forminator-scgen .sui-wrap h6{display:block;margin:.5em auto;padding:0;line-height:30px;color:#333;font-weight:700;font-family:Roboto,Arial,sans-serif}.sui-forminator-scgen .sui-wrap h1{font-size:32px;line-height:40px;color:#333;margin:0}.sui-forminator-scgen .sui-wrap h2{font-size:22px;line-height:35px}.sui-forminator-scgen .sui-wrap h3{font-size:18px;line-height:40px}.sui-forminator-scgen .sui-wrap h4,.sui-forminator-scgen .sui-wrap h5,.sui-forminator-scgen .sui-wrap h6{font-size:15px}.sui-forminator-scgen .sui-wrap p{font-family:Roboto,Arial,sans-serif;font-weight:400;font-size:15px;line-height:30px;color:#666;letter-spacing:-.25px;text-rendering:optimizeLegibility}.sui-forminator-scgen .sui-wrap p.sui-p-small{font-size:13px;line-height:22px;color:#888;margin:5px 0}.sui-forminator-scgen .sui-wrap p:first-child{margin-top:0}.sui-forminator-scgen .sui-wrap p:last-of-type:not(:last-child){margin-bottom:30px}@media (max-width:782px){.sui-forminator-scgen .sui-wrap p:last-of-type:not(:last-child){margin-bottom:20px}}.sui-forminator-scgen .sui-wrap p:last-child{margin-bottom:0}.sui-forminator-scgen .sui-wrap small{display:inline-block;font-size:13px;line-height:22px;color:#888;margin-bottom:5px}.sui-forminator-scgen .sui-wrap a{text-decoration:none;color:#17a8e3;font-weight:500;outline-color:transparent;outline-style:none;box-shadow:none}.sui-forminator-scgen .sui-wrap a:active:not(.sui-button),.sui-forminator-scgen .sui-wrap a:focus:not(.sui-button),.sui-forminator-scgen .sui-wrap a:hover:not(.sui-button){color:#1286b5}.sui-forminator-scgen .sui-wrap a.disabled{pointer-events:none}.sui-forminator-scgen .sui-wrap a.disabled:active,.sui-forminator-scgen .sui-wrap a.disabled:focus,.sui-forminator-scgen .sui-wrap a.disabled:hover{color:#888;cursor:default}.sui-forminator-scgen .sui-wrap code,.sui-forminator-scgen .sui-wrap pre{font-weight:500;font-size:13px;line-height:18px;color:#333;background-color:#f8f8f8;border:1px solid #e6e6e6;border-radius:4px;margin:0;padding:10px 15px;white-space:pre;overflow:auto;max-width:100%;vertical-align:middle;-moz-tab-size:4;-o-tab-size:4;tab-size:4}.sui-forminator-scgen .sui-wrap code{display:inline-block;padding:2px 5px}.sui-forminator-scgen .sui-wrap b,.sui-forminator-scgen .sui-wrap strong{font-weight:500}.sui-forminator-scgen .sui-wrap dfn{font-style:normal;font-weight:400;border-bottom:1px dotted #888}.sui-forminator-scgen .sui-wrap hr{border:none;display:block;height:1px;background:#e6e6e6;margin:30px 0}.sui-forminator-scgen #forminator-generate-shortcode .forminator-scgen-icon:before,.sui-forminator-scgen .sui-dialog .sui-dialog-back:before,.sui-forminator-scgen .sui-dialog .sui-dialog-close:before,.sui-forminator-scgen .sui-select-dropdown .select2-search--dropdown:after,.sui-forminator-scgen .sui-variables-dropdown .select2-search--dropdown:after,.sui-forminator-scgen .sui-wrap .sui-box-body .sui-upsell-row .sui-upsell-notice p:first-of-type:before,.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container .select-list-container .list-value:before,.sui-forminator-scgen .sui-wrap .sui-insert-variables .sui-variables+.select2 .select2-selection--single .select2-selection__arrow:before,.sui-forminator-scgen .sui-wrap [class*=sui-icon-]:after,.sui-forminator-scgen .sui-wrap [class*=sui-icon-]:before,.sui-forminator-scgen:not([class*=sui-2-]) #forminator-generate-shortcode .forminator-scgen-icon:before,.sui-forminator-scgen select.sui-select+.select2-container .select2-selection--single .select2-selection__arrow:before{font-family:wpmudev-plugin-icons!important;speak:none;font-size:1em;font-style:normal;font-weight:400;font-variant:normal;text-transform:none;line-height:1;text-rendering:auto;display:inline-block;color:#888;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@font-face{font-family:wpmudev-plugin-icons;src:url(../fonts/wpmudev-plugin-icons.eot);src:url(../fonts/wpmudev-plugin-icons.eot) format("embedded-opentype"),url(../fonts/wpmudev-plugin-icons.ttf) format("truetype"),url(../fonts/wpmudev-plugin-icons.woff) format("woff"),url(../fonts/wpmudev-plugin-icons.woff2) format("woff2"),url(../fonts/wpmudev-plugin-icons.svg) format("svg");font-weight:400;font-style:normal}.sui-forminator-scgen .sui-wrap .sui-loading:before{animation:spin 1.3s linear infinite}.sui-forminator-scgen .sui-wrap [class*=sui-icon-]{display:inline-block}.sui-forminator-scgen .sui-wrap [class*=sui-icon-].sui-xl:before{font-size:30px}.sui-forminator-scgen .sui-wrap [class*=sui-icon-].sui-lg:before{font-size:20px}.sui-forminator-scgen .sui-wrap [class*=sui-icon-].sui-md:before{font-size:16px}.sui-forminator-scgen .sui-wrap [class*=sui-icon-].sui-sm:before{font-size:12px}.sui-forminator-scgen .sui-wrap [class*=sui-icon-].sui-error:before,.sui-forminator-scgen .sui-wrap [class*=sui-icon-].sui-info:before,.sui-forminator-scgen .sui-wrap [class*=sui-icon-].sui-success:before,.sui-forminator-scgen .sui-wrap [class*=sui-icon-].sui-warning:before{color:inherit}.sui-forminator-scgen .sui-wrap [class*=sui-icon-].sui-fw{width:1.8em;text-align:center;min-height:1em}.sui-forminator-scgen .sui-wrap .sui-icon-check:before{content:"("}.sui-forminator-scgen .sui-wrap .sui-icon-close:before{content:")"}.sui-forminator-scgen .sui-wrap .sui-icon-check-tick:before{content:"_"}.sui-forminator-scgen .sui-wrap .sui-icon-cross-close:before{content:"+"}.sui-forminator-scgen .sui-wrap .sui-icon-plus-circle:before{content:"@"}.sui-forminator-scgen .sui-wrap .sui-icon-warning-alert:before{content:"!"}.sui-forminator-scgen .sui-wrap .sui-icon-info:before{content:"I"}.sui-forminator-scgen .sui-wrap .sui-icon-question:before{content:"?"}.sui-forminator-scgen .sui-wrap .sui-icon-trash:before{content:"Q"}.sui-forminator-scgen .sui-wrap .sui-icon-pencil:before{content:"/"}.sui-forminator-scgen .sui-wrap .sui-icon-unlock:before{content:"0"}.sui-forminator-scgen .sui-wrap .sui-icon-lock:before{content:"9"}.sui-forminator-scgen .sui-wrap .sui-icon-key:before{content:"\25CA"}.sui-forminator-scgen .sui-wrap .sui-icon-plus:before{content:"="}.sui-forminator-scgen .sui-wrap .sui-icon-magnifying-glass-search:before{content:"\BA"}.sui-forminator-scgen .sui-wrap .sui-icon-more:before{content:"\2026"}.sui-forminator-scgen .sui-wrap .sui-icon-wrench-tool:before{content:"\2044"}.sui-forminator-scgen .sui-wrap .sui-icon-widget-settings-config:before{content:"x"}.sui-forminator-scgen .sui-wrap .sui-icon-settings-slider-control:before{content:"\153"}.sui-forminator-scgen .sui-wrap .sui-icon-loader:before{content:"N"}.sui-forminator-scgen .sui-wrap .sui-icon-calendar:before{content:"\220F"}.sui-forminator-scgen .sui-wrap .sui-icon-clock:before{content:","}.sui-forminator-scgen .sui-wrap .sui-icon-speed-optimize:before{content:"\F8"}.sui-forminator-scgen .sui-wrap .sui-icon-stopwatch:before{content:"V"}.sui-forminator-scgen .sui-wrap .sui-icon-filter:before{content:"z"}.sui-forminator-scgen .sui-wrap .sui-icon-bookmark:before{content:"\221A"}.sui-forminator-scgen .sui-wrap .sui-icon-chevron-up:before{content:"\2DD"}.sui-forminator-scgen .sui-wrap .sui-icon-chevron-right:before{content:"\2DC"}.sui-forminator-scgen .sui-wrap .sui-icon-chevron-down:before{content:"\131"}.sui-forminator-scgen .sui-wrap .sui-icon-chevron-left:before{content:"\D3"}.sui-forminator-scgen .sui-wrap .sui-icon-arrow-up:before{content:"\D4"}.sui-forminator-scgen .sui-wrap .sui-icon-arrow-right:before{content:"\AF"}.sui-forminator-scgen .sui-wrap .sui-icon-arrow-down:before{content:"\C2"}.sui-forminator-scgen .sui-wrap .sui-icon-arrow-left:before{content:"\F8FF"}.sui-forminator-scgen .sui-wrap .sui-icon-arrow-skip-back:before{content:"{"}.sui-forminator-scgen .sui-wrap .sui-icon-arrow-skip-forward:before{content:"}"}.sui-forminator-scgen .sui-wrap .sui-icon-arrow-skip-start:before{content:":"}.sui-forminator-scgen .sui-wrap .sui-icon-arrow-skip-end:before{content:'"'}.sui-forminator-scgen .sui-wrap .sui-icon-play:before{content:"\B4"}.sui-forminator-scgen .sui-wrap .sui-icon-pause:before{content:"\2020"}.sui-forminator-scgen .sui-wrap .sui-icon-arrows-out:before{content:"\2DA"}.sui-forminator-scgen .sui-wrap .sui-icon-arrows-in:before{content:"\2264"}.sui-forminator-scgen .sui-wrap .sui-icon-arrows-expand:before{content:"\AC"}.sui-forminator-scgen .sui-wrap .sui-icon-arrows-compress:before{content:"\2265"}.sui-forminator-scgen .sui-wrap .sui-icon-refresh2:before{content:"\C1"}.sui-forminator-scgen .sui-wrap .sui-icon-zip:before{content:"a"}.sui-forminator-scgen .sui-wrap .sui-icon-combine:before{content:"o"}.sui-forminator-scgen .sui-wrap .sui-icon-defer:before{content:"p"}.sui-forminator-scgen .sui-wrap .sui-icon-inlinecss:before{content:"c"}.sui-forminator-scgen .sui-wrap .sui-icon-movefooter:before{content:"u"}.sui-forminator-scgen .sui-wrap .sui-icon-popup:before{content:"1"}.sui-forminator-scgen .sui-wrap .sui-icon-slide-in:before{content:"2"}.sui-forminator-scgen .sui-wrap .sui-icon-embed:before{content:"3"}.sui-forminator-scgen .sui-wrap .sui-icon-list:before{content:"`"}.sui-forminator-scgen .sui-wrap .sui-icon-layout-grid:before{content:"\221E"}.sui-forminator-scgen .sui-wrap .sui-icon-layout:before{content:"\A9"}.sui-forminator-scgen .sui-wrap .sui-icon-thumbnails:before{content:"G"}.sui-forminator-scgen .sui-wrap .sui-icon-drag:before{content:"\201E"}.sui-forminator-scgen .sui-wrap .sui-icon-align-left:before{content:"%"}.sui-forminator-scgen .sui-wrap .sui-icon-align-center:before{content:"^"}.sui-forminator-scgen .sui-wrap .sui-icon-align-right:before{content:"&"}.sui-forminator-scgen .sui-wrap .sui-icon-align-justify:before{content:"#"}.sui-forminator-scgen .sui-wrap .sui-icon-indent-more:before{content:"\2019"}.sui-forminator-scgen .sui-wrap .sui-icon-indent-less:before{content:"\201D"}.sui-forminator-scgen .sui-wrap .sui-icon-blog:before{content:"Y"}.sui-forminator-scgen .sui-wrap .sui-icon-list-number:before{content:"7"}.sui-forminator-scgen .sui-wrap .sui-icon-list-bullet:before{content:"8"}.sui-forminator-scgen .sui-wrap .sui-icon-bold:before{content:"B"}.sui-forminator-scgen .sui-wrap .sui-icon-quote-2:before{content:"'"}.sui-forminator-scgen .sui-wrap .sui-icon-style-type:before{content:"<"}.sui-forminator-scgen .sui-wrap .sui-icon-wand-magic:before{content:"Z"}.sui-forminator-scgen .sui-wrap .sui-icon-link:before{content:"5"}.sui-forminator-scgen .sui-wrap .sui-icon-unlink:before{content:"6"}.sui-forminator-scgen .sui-wrap .sui-icon-paperclip:before{content:"A"}.sui-forminator-scgen .sui-wrap .sui-icon-code:before{content:";"}.sui-forminator-scgen .sui-wrap .sui-icon-color-pick-eyedropper:before{content:"\A5"}.sui-forminator-scgen .sui-wrap .sui-icon-crop:before{content:"C"}.sui-forminator-scgen .sui-wrap .sui-icon-paint-bucket:before{content:"\222B"}.sui-forminator-scgen .sui-wrap .sui-icon-camera:before{content:"\D8"}.sui-forminator-scgen .sui-wrap .sui-icon-photo-picture:before{content:"D"}.sui-forminator-scgen .sui-wrap .sui-icon-animation-video:before{content:"F"}.sui-forminator-scgen .sui-wrap .sui-icon-home:before{content:"J"}.sui-forminator-scgen .sui-wrap .sui-icon-mail:before{content:"m"}.sui-forminator-scgen .sui-wrap .sui-icon-send:before{content:"\201C"}.sui-forminator-scgen .sui-wrap .sui-icon-phone:before{content:">"}.sui-forminator-scgen .sui-wrap .sui-icon-pin:before{content:"\152"}.sui-forminator-scgen .sui-wrap .sui-icon-post-pin:before{content:"\2C7"}.sui-forminator-scgen .sui-wrap .sui-icon-calculator:before{content:"\A8"}.sui-forminator-scgen .sui-wrap .sui-icon-element-checkbox:before{content:"\C5"}.sui-forminator-scgen .sui-wrap .sui-icon-element-radio:before{content:"\CD"}.sui-forminator-scgen .sui-wrap .sui-icon-element-select:before{content:"\CF"}.sui-forminator-scgen .sui-wrap .sui-icon-element-number:before{content:"\DA"}.sui-forminator-scgen .sui-wrap .sui-icon-recaptcha:before{content:"\2013"}.sui-forminator-scgen .sui-wrap .sui-icon-folder:before{content:"\2D8"}.sui-forminator-scgen .sui-wrap .sui-icon-folder-open:before{content:"\BB"}.sui-forminator-scgen .sui-wrap .sui-icon-archive:before{content:"b"}.sui-forminator-scgen .sui-wrap .sui-icon-book:before{content:"\2206"}.sui-forminator-scgen .sui-wrap .sui-icon-page-multiple:before{content:"\E7"}.sui-forminator-scgen .sui-wrap .sui-icon-layers:before{content:"\E6"}.sui-forminator-scgen .sui-wrap .sui-icon-copy:before{content:"4"}.sui-forminator-scgen .sui-wrap .sui-icon-graph-bar:before{content:"\C7"}.sui-forminator-scgen .sui-wrap .sui-icon-graph-bar-2:before{content:"\2DB"}.sui-forminator-scgen .sui-wrap .sui-icon-graph-line:before{content:"\A1"}.sui-forminator-scgen .sui-wrap .sui-icon-tracking-disabled:before{content:"\20AC"}.sui-forminator-scgen .sui-wrap .sui-icon-page:before{content:"\D2"}.sui-forminator-scgen .sui-wrap .sui-icon-clipboard-notes:before{content:"\BF"}.sui-forminator-scgen .sui-wrap .sui-icon-page-pdf:before{content:"\C6"}.sui-forminator-scgen .sui-wrap .sui-icon-heart:before{content:"K"}.sui-forminator-scgen .sui-wrap .sui-icon-star:before{content:"S"}.sui-forminator-scgen .sui-wrap .sui-icon-plugin-2:before{content:"O"}.sui-forminator-scgen .sui-wrap .sui-icon-brush:before{content:"~"}.sui-forminator-scgen .sui-wrap .sui-icon-plug-connected:before{content:"R"}.sui-forminator-scgen .sui-wrap .sui-icon-plug-disconnected:before{content:"."}.sui-forminator-scgen .sui-wrap .sui-icon-power-on-off:before{content:"["}.sui-forminator-scgen .sui-wrap .sui-icon-target:before{content:"\2260"}.sui-forminator-scgen .sui-wrap .sui-icon-upload-cloud:before{content:"\A2"}.sui-forminator-scgen .sui-wrap .sui-icon-download-cloud:before{content:"\A3"}.sui-forminator-scgen .sui-wrap .sui-icon-cloud:before{content:"\2122"}.sui-forminator-scgen .sui-wrap .sui-icon-cloud-migration:before{content:"l"}.sui-forminator-scgen .sui-wrap .sui-icon-unpublish:before{content:"\2C6"}.sui-forminator-scgen .sui-wrap .sui-icon-download:before{content:"X"}.sui-forminator-scgen .sui-wrap .sui-icon-save:before{content:"\DF"}.sui-forminator-scgen .sui-wrap .sui-icon-lightbulb:before{content:"L"}.sui-forminator-scgen .sui-wrap .sui-icon-sitemap:before{content:"\B8"}.sui-forminator-scgen .sui-wrap .sui-icon-storage-server-data:before{content:"\CE"}.sui-forminator-scgen .sui-wrap .sui-icon-user-reputation-points:before{content:"E"}.sui-forminator-scgen .sui-wrap .sui-icon-tablet-portrait:before{content:"]"}.sui-forminator-scgen .sui-wrap .sui-icon-laptop:before{content:"\AB"}.sui-forminator-scgen .sui-wrap .sui-icon-monitor:before{content:"$"}.sui-forminator-scgen .sui-wrap .sui-icon-eye:before{content:"e"}.sui-forminator-scgen .sui-wrap .sui-icon-eye-hide:before{content:"q"}.sui-forminator-scgen .sui-wrap .sui-icon-update:before{content:"\AE"}.sui-forminator-scgen .sui-wrap .sui-icon-refresh:before{content:"H"}.sui-forminator-scgen .sui-wrap .sui-icon-undo:before{content:"\2030"}.sui-forminator-scgen .sui-wrap .sui-icon-web-globe-world:before{content:"W"}.sui-forminator-scgen .sui-wrap .sui-icon-flag:before{content:"|"}.sui-forminator-scgen .sui-wrap .sui-icon-academy:before{content:"\3C0"}.sui-forminator-scgen .sui-wrap .sui-icon-profile-male:before{content:"\B5"}.sui-forminator-scgen .sui-wrap .sui-icon-community-people:before{content:"\2018"}.sui-forminator-scgen .sui-wrap .sui-icon-help-support:before{content:"M"}.sui-forminator-scgen .sui-wrap .sui-icon-gdpr:before{content:"\2211"}.sui-forminator-scgen .sui-wrap .sui-icon-like:before{content:"j"}.sui-forminator-scgen .sui-wrap .sui-icon-dislike:before{content:"k"}.sui-forminator-scgen .sui-wrap .sui-icon-finger-point:before{content:"\2248"}.sui-forminator-scgen .sui-wrap .sui-icon-open-new-window:before{content:"n"}.sui-forminator-scgen .sui-wrap .sui-icon-reply:before{content:"r"}.sui-forminator-scgen .sui-wrap .sui-icon-share:before{content:"s"}.sui-forminator-scgen .sui-wrap .sui-icon-wordpress:before{content:"w"}.sui-forminator-scgen .sui-wrap .sui-icon-social-facebook:before{content:"f"}.sui-forminator-scgen .sui-wrap .sui-icon-social-twitter:before{content:"t"}.sui-forminator-scgen .sui-wrap .sui-icon-social-linkedin:before{content:"i"}.sui-forminator-scgen .sui-wrap .sui-icon-social-dropbox:before{content:"d"}.sui-forminator-scgen .sui-wrap .sui-icon-social-drive:before{content:"v"}.sui-forminator-scgen .sui-wrap .sui-icon-social-google-plus:before{content:"g"}.sui-forminator-scgen .sui-wrap .sui-icon-social-youtube:before{content:"y"}.sui-forminator-scgen .sui-wrap .sui-icon-instagram:before{content:"-"}.sui-forminator-scgen .sui-wrap .sui-icon-cloudflare:before{content:"\D0"}.sui-forminator-scgen .sui-wrap .sui-icon-social-github:before{content:"h"}.sui-forminator-scgen .sui-wrap .sui-icon-wpmudev-logo:before{content:"\2039"}.sui-forminator-scgen .sui-wrap .sui-icon-defender:before{content:"\B7"}.sui-forminator-scgen .sui-wrap .sui-icon-smush:before{content:"\2021"}.sui-forminator-scgen .sui-wrap .sui-icon-upfront:before{content:"\201A"}.sui-forminator-scgen .sui-wrap .sui-icon-hummingbird:before{content:"\B0"}.sui-forminator-scgen .sui-wrap .sui-icon-uptime:before{content:"\B1"}.sui-forminator-scgen .sui-wrap .sui-icon-smart-crawl:before{content:"\2202"}.sui-forminator-scgen .sui-wrap .sui-icon-forminator:before{content:"P"}.sui-forminator-scgen .sui-wrap .sui-icon-shipper-anchor:before{content:"T"}.sui-forminator-scgen .sui-wrap .sui-icon-snapshot:before{content:"\FB01"}.sui-forminator-scgen .sui-wrap .sui-icon-hustle:before{content:"\2014"}.sui-forminator-scgen .sui-wrap .sui-icon-performance:before{content:"U"}.sui-forminator-scgen .sui-wrap .sui-icon-hub:before{content:"\FB02"}.sui-forminator-scgen .sui-wrap .sui-icon-automate:before{content:"\2D9"}.sui-forminator-scgen .sui-wrap .sui-icon-align-y-center:before{content:"*"}.sui-forminator-scgen .sui-wrap .sui-icon-align-y-top:before{content:"\A7"}.sui-forminator-scgen .sui-wrap .sui-icon-align-y-bottom:before{content:"\B6"}.sui-forminator-scgen .sui-wrap .sui-icon-align-x-center:before{content:"\192"}.sui-forminator-scgen .sui-wrap .sui-icon-align-x-right:before{content:"\2022"}.sui-forminator-scgen .sui-wrap .sui-icon-align-x-left:before{content:"\E5"}.sui-forminator-scgen .sui-wrap .sui-icon-logout:before{content:"\203A"}.sui-forminator-scgen .sui-wrap .sui-button,.sui-forminator-scgen .sui-wrap .sui-button-icon,.sui-forminator-scgen .sui-wrap a.sui-button,.sui-forminator-scgen .sui-wrap a.sui-button-icon,.sui-forminator-scgen .sui-wrap button.sui-button,.sui-forminator-scgen .sui-wrap button.sui-button-icon{cursor:pointer;display:inline-block;position:relative;margin:0;border:2px solid transparent;border-radius:4px;text-decoration:none;text-align:center;transition:all .3s ease}.sui-forminator-scgen .sui-wrap .sui-button-icon .sui-loading,.sui-forminator-scgen .sui-wrap .sui-button .sui-loading,.sui-forminator-scgen .sui-wrap a.sui-button-icon .sui-loading,.sui-forminator-scgen .sui-wrap a.sui-button .sui-loading,.sui-forminator-scgen .sui-wrap button.sui-button-icon .sui-loading,.sui-forminator-scgen .sui-wrap button.sui-button .sui-loading{width:16px;height:16px;display:none;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:absolute;margin:0}.sui-forminator-scgen .sui-wrap .sui-button-icon .sui-loading:before,.sui-forminator-scgen .sui-wrap .sui-button .sui-loading:before,.sui-forminator-scgen .sui-wrap a.sui-button-icon .sui-loading:before,.sui-forminator-scgen .sui-wrap a.sui-button .sui-loading:before,.sui-forminator-scgen .sui-wrap button.sui-button-icon .sui-loading:before,.sui-forminator-scgen .sui-wrap button.sui-button .sui-loading:before{display:block}.sui-forminator-scgen .sui-wrap .sui-button-icon .sui-loading-text,.sui-forminator-scgen .sui-wrap .sui-button .sui-loading-text,.sui-forminator-scgen .sui-wrap a.sui-button-icon .sui-loading-text,.sui-forminator-scgen .sui-wrap a.sui-button .sui-loading-text,.sui-forminator-scgen .sui-wrap button.sui-button-icon .sui-loading-text,.sui-forminator-scgen .sui-wrap button.sui-button .sui-loading-text{display:block;pointer-events:none}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-button-icon .sui-loading-text .sui-loading-text,.sui-forminator-scgen .sui-wrap .sui-button .sui-loading-text .sui-loading-text,.sui-forminator-scgen .sui-wrap a.sui-button-icon .sui-loading-text .sui-loading-text,.sui-forminator-scgen .sui-wrap a.sui-button .sui-loading-text .sui-loading-text,.sui-forminator-scgen .sui-wrap button.sui-button-icon .sui-loading-text .sui-loading-text,.sui-forminator-scgen .sui-wrap button.sui-button .sui-loading-text .sui-loading-text{overflow:hidden;text-overflow:ellipsis}}.sui-forminator-scgen .sui-wrap .sui-button-icon [class*=sui-icon-],.sui-forminator-scgen .sui-wrap .sui-button [class*=sui-icon-],.sui-forminator-scgen .sui-wrap a.sui-button-icon [class*=sui-icon-],.sui-forminator-scgen .sui-wrap a.sui-button [class*=sui-icon-],.sui-forminator-scgen .sui-wrap button.sui-button-icon [class*=sui-icon-],.sui-forminator-scgen .sui-wrap button.sui-button [class*=sui-icon-]{font-size:12px}.sui-forminator-scgen .sui-wrap .sui-button-icon [class*=sui-icon-]:before,.sui-forminator-scgen .sui-wrap .sui-button [class*=sui-icon-]:before,.sui-forminator-scgen .sui-wrap a.sui-button-icon [class*=sui-icon-]:before,.sui-forminator-scgen .sui-wrap a.sui-button [class*=sui-icon-]:before,.sui-forminator-scgen .sui-wrap button.sui-button-icon [class*=sui-icon-]:before,.sui-forminator-scgen .sui-wrap button.sui-button [class*=sui-icon-]:before{display:block;color:inherit}.sui-forminator-scgen .sui-wrap .sui-button,.sui-forminator-scgen .sui-wrap .sui-button-icon,.sui-forminator-scgen .sui-wrap .sui-button-icon:active,.sui-forminator-scgen .sui-wrap .sui-button-icon:focus,.sui-forminator-scgen .sui-wrap .sui-button-icon:hover,.sui-forminator-scgen .sui-wrap .sui-button:active,.sui-forminator-scgen .sui-wrap .sui-button:focus,.sui-forminator-scgen .sui-wrap .sui-button:hover,.sui-forminator-scgen .sui-wrap a.sui-button,.sui-forminator-scgen .sui-wrap a.sui-button-icon,.sui-forminator-scgen .sui-wrap a.sui-button-icon:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon:focus,.sui-forminator-scgen .sui-wrap a.sui-button-icon:hover,.sui-forminator-scgen .sui-wrap a.sui-button:active,.sui-forminator-scgen .sui-wrap a.sui-button:focus,.sui-forminator-scgen .sui-wrap a.sui-button:hover,.sui-forminator-scgen .sui-wrap button.sui-button,.sui-forminator-scgen .sui-wrap button.sui-button-icon,.sui-forminator-scgen .sui-wrap button.sui-button-icon:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon:focus,.sui-forminator-scgen .sui-wrap button.sui-button-icon:hover,.sui-forminator-scgen .sui-wrap button.sui-button:active,.sui-forminator-scgen .sui-wrap button.sui-button:focus,.sui-forminator-scgen .sui-wrap button.sui-button:hover{outline:none;box-shadow:none}.sui-forminator-scgen .sui-wrap .sui-button-icon.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon[disabled],.sui-forminator-scgen .sui-wrap .sui-button.disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button:disabled,.sui-forminator-scgen .sui-wrap .sui-button[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon[disabled],.sui-forminator-scgen .sui-wrap a.sui-button.disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button:disabled,.sui-forminator-scgen .sui-wrap a.sui-button[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon[disabled],.sui-forminator-scgen .sui-wrap button.sui-button.disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button:disabled,.sui-forminator-scgen .sui-wrap button.sui-button[disabled]{cursor:default;pointer-events:none}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-onload{pointer-events:none;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-onload .sui-loading,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-onload .sui-loading,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-onload .sui-loading,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-onload .sui-loading,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-onload .sui-loading,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-onload .sui-loading{display:-ms-flexbox;display:flex}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-onload .sui-loading-text,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-onload .sui-loading-text,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-onload .sui-loading-text,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-onload .sui-loading-text,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-onload .sui-loading-text,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-onload .sui-loading-text{opacity:0}.sui-forminator-scgen .sui-wrap .sui-button-icon:not(:last-child),.sui-forminator-scgen .sui-wrap .sui-button:not(:last-child),.sui-forminator-scgen .sui-wrap a.sui-button-icon:not(:last-child),.sui-forminator-scgen .sui-wrap a.sui-button:not(:last-child),.sui-forminator-scgen .sui-wrap button.sui-button-icon:not(:last-child),.sui-forminator-scgen .sui-wrap button.sui-button:not(:last-child){margin-right:10px}.sui-forminator-scgen .sui-wrap .sui-button,.sui-forminator-scgen .sui-wrap a.sui-button,.sui-forminator-scgen .sui-wrap button.sui-button{width:auto;min-width:80px;padding:5px 14px;background-color:#888;color:#fff;font:500 12px/16px Roboto,Arial,sans-serif;letter-spacing:-.25px;text-transform:uppercase}.sui-forminator-scgen .sui-wrap .sui-button [class*=sui-icon-],.sui-forminator-scgen .sui-wrap a.sui-button [class*=sui-icon-],.sui-forminator-scgen .sui-wrap button.sui-button [class*=sui-icon-]{vertical-align:middle}.sui-forminator-scgen .sui-wrap .sui-button [class*=sui-icon-]:not(.sui-loading),.sui-forminator-scgen .sui-wrap a.sui-button [class*=sui-icon-]:not(.sui-loading),.sui-forminator-scgen .sui-wrap button.sui-button [class*=sui-icon-]:not(.sui-loading){width:22px;position:relative;top:-1px;margin-left:-7px}.sui-forminator-scgen .sui-wrap .sui-button:active,.sui-forminator-scgen .sui-wrap .sui-button:hover,.sui-forminator-scgen .sui-wrap a.sui-button:active,.sui-forminator-scgen .sui-wrap a.sui-button:hover,.sui-forminator-scgen .sui-wrap button.sui-button:active,.sui-forminator-scgen .sui-wrap button.sui-button:hover{background-color:#6f6f6f}.sui-forminator-scgen .sui-wrap .sui-button.disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button:disabled,.sui-forminator-scgen .sui-wrap .sui-button[disabled],.sui-forminator-scgen .sui-wrap a.sui-button.disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button:disabled,.sui-forminator-scgen .sui-wrap a.sui-button[disabled],.sui-forminator-scgen .sui-wrap button.sui-button.disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button:disabled,.sui-forminator-scgen .sui-wrap button.sui-button[disabled]{background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-icon-right [class*=sui-icon-]:not(.sui-loading),.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-icon-right [class*=sui-icon-]:not(.sui-loading),.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-icon-right [class*=sui-icon-]:not(.sui-loading){margin-right:-7px;margin-left:0}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-blue,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-blue,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-blue{background-color:#17a8e3;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-blue:active,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-blue:hover,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-blue:active,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-blue:hover,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-blue:active,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-blue:hover{background-color:#1286b5}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-blue.disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-blue.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-blue:disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-blue[disabled],.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-blue.disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-blue.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-blue:disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-blue[disabled],.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-blue.disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-blue.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-blue:disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-blue[disabled]{background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-green,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-green,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-green{background-color:#1abc9c;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-green:active,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-green:hover,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-green:active,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-green:hover,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-green:active,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-green:hover{background-color:#148f77}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-green.disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-green.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-green:disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-green[disabled],.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-green.disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-green.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-green:disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-green[disabled],.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-green.disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-green.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-green:disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-green[disabled]{background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-red,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-red,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-red{background-color:#ff6d6d;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-red:active,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-red:hover,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-red:active,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-red:hover,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-red:active,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-red:hover{background-color:#ff3a3a}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-red.disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-red.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-red:disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-red[disabled],.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-red.disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-red.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-red:disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-red[disabled],.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-red.disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-red.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-red:disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-red[disabled]{background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-orange,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-orange,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-orange{background-color:#ff7e41;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-orange:active,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-orange:hover,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-orange:active,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-orange:hover,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-orange:active,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-orange:hover{background-color:#ff5b0e}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-orange.disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-orange.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-orange:disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-orange[disabled],.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-orange.disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-orange.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-orange:disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-orange[disabled],.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-orange.disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-orange.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-orange:disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-orange[disabled]{background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-yellow,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-yellow,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-yellow{background-color:#fecf2f;color:#333}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-yellow:active,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-yellow:hover,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-yellow:active,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-yellow:hover,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-yellow:active,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-yellow:hover{background-color:#f9c101}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-yellow.disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-yellow.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-yellow:disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-yellow[disabled],.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-yellow.disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-yellow.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-yellow:disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-yellow[disabled],.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-yellow.disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-yellow.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-yellow:disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-yellow[disabled]{background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-purple,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-purple,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-purple{background-color:#8d00b1;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-purple:active,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-purple:hover,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-purple:active,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-purple:hover,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-purple:active,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-purple:hover{background-color:#64007e}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-purple.disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-purple.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-purple:disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-purple[disabled],.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-purple.disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-purple.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-purple:disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-purple[disabled],.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-purple.disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-purple.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-purple:disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-purple[disabled]{background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-upsell,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-upsell,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-upsell{width:auto;height:26px;padding:4px 14px;border-color:#d1f1ea;border-radius:14px;background-color:transparent;color:#1abc9c;line-height:14px;text-transform:none}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-upsell:active,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-upsell:hover,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-upsell:active,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-upsell:hover,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-upsell:active,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-upsell:hover{opacity:1;border-color:#1abc9c;background-color:#1abc9c;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-dashed,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-dashed,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-dashed{width:100%;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;border:1px dashed #aaa;background-color:transparent;color:#888;line-height:18px}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-dashed.sui-lg,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-dashed.sui-lg,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-dashed.sui-lg{height:70px}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-button.sui-button-dashed,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-dashed.sui-lg,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-dashed,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-dashed.sui-lg,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-dashed,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-dashed.sui-lg{height:50px}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-button.sui-button-dashed,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-dashed,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-dashed{height:60px}}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost{border-color:#ddd;background-color:transparent;color:#888}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost:active,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost:hover,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost:active,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost:hover,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost:active,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost:hover{border-color:#888;background-color:#888;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost:disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost[disabled],.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost:disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost[disabled],.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost:disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost[disabled]{border-color:#e6e6e6;background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-blue,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-blue,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-blue{border-color:#e1f6ff;color:#17a8e3}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-blue:active,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-blue:hover,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-blue:active,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-blue:hover,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-blue:active,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-blue:hover{border-color:#17a8e3;background-color:#17a8e3;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-blue.disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-blue.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-blue:disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-blue[disabled],.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-blue.disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-blue.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-blue:disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-blue[disabled],.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-blue.disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-blue.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-blue:disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-blue[disabled]{border-color:#e6e6e6;background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-green,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-green,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-green{border-color:#d1f1ea;color:#1abc9c}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-green:active,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-green:hover,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-green:active,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-green:hover,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-green:active,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-green:hover{border-color:#1abc9c;background-color:#1abc9c;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-green.disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-green.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-green:disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-green[disabled],.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-green.disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-green.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-green:disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-green[disabled],.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-green.disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-green.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-green:disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-green[disabled]{border-color:#e6e6e6;background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-red,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-red,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-red{border-color:#ffe5e9;color:#ff6d6d}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-red:active,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-red:hover,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-red:active,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-red:hover,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-red:active,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-red:hover{border-color:#ff6d6d;background-color:#ff6d6d;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-red.disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-red.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-red:disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-red[disabled],.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-red.disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-red.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-red:disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-red[disabled],.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-red.disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-red.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-red:disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-red[disabled]{border-color:#e6e6e6;background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-orange,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-orange,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-orange{border-color:#ffe5d9;color:#ff7e41}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-orange:active,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-orange:hover,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-orange:active,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-orange:hover,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-orange:active,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-orange:hover{border-color:#ff7e41;background-color:#ff7e41;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-orange.disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-orange.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-orange:disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-orange[disabled],.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-orange.disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-orange.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-orange:disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-orange[disabled],.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-orange.disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-orange.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-orange:disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-orange[disabled]{border-color:#e6e6e6;background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-yellow,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-yellow,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-yellow{border-color:#fff5d5;color:#fecf2f}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-yellow:active,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-yellow:hover,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-yellow:active,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-yellow:hover,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-yellow:active,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-yellow:hover{border-color:#fecf2f;background-color:#fecf2f;color:#333}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-yellow.disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-yellow.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-yellow:disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-yellow[disabled],.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-yellow.disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-yellow.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-yellow:disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-yellow[disabled],.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-yellow.disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-yellow.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-yellow:disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-yellow[disabled]{border-color:#e6e6e6;background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-purple,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-purple,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-purple{border-color:#f9e1ff;color:#8d00b1}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-purple:active,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-purple:hover,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-purple:active,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-purple:hover,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-purple:active,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-purple:hover{border-color:#8d00b1;background-color:#8d00b1;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-purple.disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-purple.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-purple:disabled,.sui-forminator-scgen .sui-wrap .sui-button.sui-button-ghost.sui-button-purple[disabled],.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-purple.disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-purple.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-purple:disabled,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-ghost.sui-button-purple[disabled],.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-purple.disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-purple.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-purple:disabled,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-ghost.sui-button-purple[disabled]{border-color:#e6e6e6;background-color:#e6e6e6;color:#aaa}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-button.sui-button-compound .sui-compound-desktop,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-compound .sui-compound-desktop,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-compound .sui-compound-desktop{display:none}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-button.sui-button-compound .sui-compound-desktop,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-compound .sui-compound-desktop,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-compound .sui-compound-desktop{display:block}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-button.sui-button-compound .sui-compound-mobile [class*=sui-icon-],.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-compound .sui-compound-mobile [class*=sui-icon-],.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-compound .sui-compound-mobile [class*=sui-icon-]{margin-right:0;margin-left:0}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-button.sui-button-compound .sui-compound-mobile,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-compound .sui-compound-mobile,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-compound .sui-compound-mobile{display:block}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-button.sui-button-compound .sui-compound-mobile,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-compound .sui-compound-mobile,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-compound .sui-compound-mobile{display:none}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-button.sui-button-compound,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-compound,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-compound{min-width:44px;padding-right:5px;padding-left:5px}}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-lg,.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-lg,.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-lg{padding:8px 20px;font-size:15px;line-height:20px}.sui-forminator-scgen .sui-wrap .sui-button.sui-button-lg [class*=sui-icon-],.sui-forminator-scgen .sui-wrap a.sui-button.sui-button-lg [class*=sui-icon-],.sui-forminator-scgen .sui-wrap button.sui-button.sui-button-lg [class*=sui-icon-]{font-size:16px}.sui-forminator-scgen .sui-wrap .sui-button-icon,.sui-forminator-scgen .sui-wrap a.sui-button-icon,.sui-forminator-scgen .sui-wrap button.sui-button-icon{width:30px;height:30px;display:-ms-inline-flexbox;display:inline-flex;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;padding:0 4px;border-width:1px;background-color:transparent;color:#888;text-align:center;white-space:nowrap}.sui-forminator-scgen .sui-wrap .sui-button-icon [class*=sui-icon-]:not(.sui-loading),.sui-forminator-scgen .sui-wrap a.sui-button-icon [class*=sui-icon-]:not(.sui-loading),.sui-forminator-scgen .sui-wrap button.sui-button-icon [class*=sui-icon-]:not(.sui-loading){display:block}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon:active,.sui-forminator-scgen .sui-wrap .sui-button-icon:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon:hover{background-color:#f2f2f2;color:#333}.sui-forminator-scgen .sui-wrap .sui-button-icon.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon[disabled]{color:#aaa;background-color:#e6e6e6}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-blue,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-blue,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-blue{color:#17a8e3}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-blue.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-blue:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-blue:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-blue.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-blue:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-blue:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-blue.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-blue:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-blue:hover{background-color:#e1f6ff;color:#17a8e3}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-blue.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-blue.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-blue:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-blue[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-blue.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-blue.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-blue:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-blue[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-blue.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-blue.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-blue:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-blue[disabled]{color:#aaa;background-color:#e6e6e6}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-green,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-green,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-green{color:#1abc9c}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-green.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-green:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-green:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-green.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-green:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-green:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-green.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-green:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-green:hover{background-color:#d1f1ea;color:#1abc9c}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-green.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-green.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-green:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-green[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-green.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-green.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-green:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-green[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-green.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-green.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-green:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-green[disabled]{color:#aaa;background-color:#e6e6e6}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-red,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-red,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-red{color:#ff6d6d}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-red.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-red:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-red:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-red.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-red:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-red:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-red.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-red:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-red:hover{background-color:#ffe5e9;color:#ff6d6d}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-red.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-red.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-red:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-red[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-red.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-red.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-red:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-red[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-red.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-red.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-red:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-red[disabled]{color:#aaa;background-color:#e6e6e6}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-orange,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-orange,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-orange{color:#ff7e41}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-orange.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-orange:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-orange:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-orange.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-orange:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-orange:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-orange.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-orange:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-orange:hover{background-color:#ffe5d9;color:#ff7e41}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-orange.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-orange.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-orange:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-orange[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-orange.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-orange.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-orange:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-orange[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-orange.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-orange.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-orange:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-orange[disabled]{color:#aaa;background-color:#e6e6e6}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-yellow,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-yellow,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-yellow{color:#fecf2f}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-yellow.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-yellow:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-yellow:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-yellow.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-yellow:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-yellow:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-yellow.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-yellow:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-yellow:hover{background-color:#fff5d5;color:#fecf2f}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-yellow.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-yellow.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-yellow:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-yellow[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-yellow.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-yellow.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-yellow:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-yellow[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-yellow.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-yellow.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-yellow:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-yellow[disabled]{color:#aaa;background-color:#e6e6e6}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-purple,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-purple,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-purple{color:#8d00b1}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-purple.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-purple:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-purple:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-purple.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-purple:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-purple:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-purple.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-purple:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-purple:hover{background-color:#f9e1ff;color:#8d00b1}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-purple.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-purple.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-purple:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-purple[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-purple.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-purple.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-purple:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-purple[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-purple.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-purple.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-purple:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-purple[disabled]{color:#aaa;background-color:#e6e6e6}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined{width:44px;border-color:#ddd}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined:hover{border-color:#888;background-color:#888;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined[disabled]{border-color:#e6e6e6}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-blue,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-blue,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-blue{border-color:#e1f6ff}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-blue.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-blue:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-blue:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-blue.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-blue:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-blue:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-blue.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-blue:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-blue:hover{border-color:#17a8e3;background-color:#17a8e3;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-blue.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-blue.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-blue:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-blue[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-blue.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-blue.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-blue:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-blue[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-blue.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-blue.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-blue:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-blue[disabled]{border-color:#e6e6e6}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-green,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-green,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-green{border-color:#d1f1ea}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-green.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-green:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-green:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-green.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-green:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-green:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-green.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-green:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-green:hover{border-color:#1abc9c;background-color:#1abc9c;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-green.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-green.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-green:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-green[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-green.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-green.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-green:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-green[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-green.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-green.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-green:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-green[disabled]{border-color:#e6e6e6}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-red,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-red,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-red{border-color:#ffe5e9}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-red.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-red:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-red:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-red.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-red:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-red:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-red.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-red:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-red:hover{border-color:#ff6d6d;background-color:#ff6d6d;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-red.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-red.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-red:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-red[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-red.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-red.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-red:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-red[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-red.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-red.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-red:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-red[disabled]{border-color:#e6e6e6}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-orange,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-orange,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-orange{border-color:#ffe5d9}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-orange.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-orange:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-orange:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-orange.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-orange:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-orange:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-orange.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-orange:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-orange:hover{border-color:#ff7e41;background-color:#ff7e41;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-orange.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-orange.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-orange:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-orange[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-orange.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-orange.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-orange:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-orange[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-orange.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-orange.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-orange:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-orange[disabled]{border-color:#e6e6e6}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-yellow,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-yellow,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-yellow{border-color:#fff5d5}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-yellow.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-yellow:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-yellow:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-yellow.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-yellow:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-yellow:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-yellow.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-yellow:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-yellow:hover{border-color:#fecf2f;background-color:#fecf2f;color:#333}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-yellow.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-yellow.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-yellow:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-yellow[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-yellow.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-yellow.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-yellow:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-yellow[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-yellow.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-yellow.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-yellow:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-yellow[disabled]{border-color:#e6e6e6}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-purple,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-purple,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-purple{border-color:#f9e1ff}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-purple.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-purple:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-purple:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-purple.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-purple:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-purple:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-purple.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-purple:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-purple:hover{border-color:#8d00b1;background-color:#8d00b1;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-purple.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-purple.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-purple:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-outlined.sui-button-purple[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-purple.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-purple.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-purple:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-outlined.sui-button-purple[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-purple.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-purple.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-purple:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-outlined.sui-button-purple[disabled]{border-color:#e6e6e6}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled{background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled:hover{background-color:#d2d2d2}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled[disabled]{background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-blue,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-blue,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-blue{background-color:#17a8e3;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-blue.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-blue:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-blue:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-blue.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-blue:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-blue:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-blue.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-blue:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-blue:hover{background-color:#1286b5}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-blue.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-blue.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-blue:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-blue[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-blue.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-blue.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-blue:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-blue[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-blue.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-blue.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-blue:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-blue[disabled]{background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-green,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-green,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-green{background-color:#1abc9c;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-green.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-green:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-green:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-green.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-green:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-green:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-green.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-green:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-green:hover{background-color:#148f77}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-green.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-green.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-green:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-green[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-green.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-green.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-green:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-green[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-green.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-green.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-green:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-green[disabled]{background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-red,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-red,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-red{background-color:#ff6d6d;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-red.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-red:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-red:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-red.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-red:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-red:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-red.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-red:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-red:hover{background-color:#ff3a3a}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-red.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-red.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-red:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-red[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-red.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-red.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-red:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-red[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-red.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-red.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-red:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-red[disabled]{background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-orange,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-orange,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-orange{background-color:#ff7e41;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-orange.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-orange:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-orange:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-orange.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-orange:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-orange:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-orange.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-orange:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-orange:hover{background-color:#ff5b0e}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-orange.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-orange.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-orange:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-orange[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-orange.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-orange.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-orange:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-orange[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-orange.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-orange.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-orange:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-orange[disabled]{background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-yellow,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-yellow,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-yellow{background-color:#fecf2f;color:#333}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-yellow.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-yellow:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-yellow:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-yellow.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-yellow:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-yellow:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-yellow.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-yellow:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-yellow:hover{background-color:#f9c101}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-yellow.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-yellow.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-yellow:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-yellow[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-yellow.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-yellow.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-yellow:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-yellow[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-yellow.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-yellow.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-yellow:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-yellow[disabled]{background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-purple,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-purple,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-purple{background-color:#8d00b1;color:#fff}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-purple.sui-active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-purple:active,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-purple:hover,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-purple.sui-active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-purple:active,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-purple:hover,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-purple.sui-active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-purple:active,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-purple:hover{background-color:#64007e}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-purple.disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-purple.sui-button-onload,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-purple:disabled,.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-filled.sui-button-purple[disabled],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-purple.disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-purple.sui-button-onload,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-purple:disabled,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-filled.sui-button-purple[disabled],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-purple.disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-purple.sui-button-onload,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-purple:disabled,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-filled.sui-button-purple[disabled]{background-color:#e6e6e6;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-lg,.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-lg,.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-lg{width:50px;height:40px}.sui-forminator-scgen .sui-wrap .sui-button-icon.sui-button-lg [class*=sui-icon-],.sui-forminator-scgen .sui-wrap a.sui-button-icon.sui-button-lg [class*=sui-icon-],.sui-forminator-scgen .sui-wrap button.sui-button-icon.sui-button-lg [class*=sui-icon-]{font-size:13px}.sui-forminator-scgen .sui-wrap .sui-dropdown .sui-button-icon:not(:last-child),.sui-forminator-scgen .sui-wrap .sui-dropdown .sui-button:not(:last-child),.sui-forminator-scgen .sui-wrap .sui-dropdown a.sui-button-icon:not(:last-child),.sui-forminator-scgen .sui-wrap .sui-dropdown a.sui-button:not(:last-child),.sui-forminator-scgen .sui-wrap .sui-dropdown button.sui-button-icon:not(:last-child),.sui-forminator-scgen .sui-wrap .sui-dropdown button.sui-button:not(:last-child){margin-right:0}.sui-forminator-scgen .sui-wrap *,.sui-forminator-scgen .sui-wrap :after,.sui-forminator-scgen .sui-wrap :before{box-sizing:border-box}.sui-forminator-scgen .sui-wrap .sui-box{min-height:20px;position:relative;border-radius:4px;background-color:#fff;box-shadow:0 2px 0 #e6e6e6}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-header{border-bottom:1px solid #e6e6e6;padding:15px 30px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-box .sui-box-header{padding:15px 20px}}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-header>h3>i{line-height:30px}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-box .sui-box-body{padding:20px}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box .sui-box-body{padding:30px}}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-footer{border-top:1px solid #e6e6e6;padding:30px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-footer.sui-pull-up{margin-top:-15px}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-box .sui-box-footer{padding:20px}}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status{padding:15px 20px 20px}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status .sui-status{display:-ms-flexbox;display:flex}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status .sui-status [class*=sui-status-]{font-size:12px;line-height:30px;font-family:Roboto,Arial,sans-serif;letter-spacing:-.25px}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status .sui-status [class*=sui-status-] .sui-tag{margin-left:8px}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status .sui-status [class*=sui-status-] [class*=sui-icon-]{margin-right:4px;font-size:12px}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status .sui-status [class*=sui-status-] [class*=sui-icon-]:before{display:block}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status .sui-status [class*=sui-status-]:not(:last-child){margin-right:20px}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status .sui-status [class*=sui-status-]:not(:first-child){padding-left:20px;border-left:1px solid #e6e6e6}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status .sui-status .sui-status-module{color:#888;font-weight:700}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status .sui-status .sui-status-changes{color:#aaa;font-weight:500;letter-spacing:-.25px}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status .sui-status .sui-status-changes .sui-icon-check-tick:before{color:#1abc9c}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status .sui-status .sui-status-changes .sui-icon-update:before{color:#888}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status .sui-status+.sui-actions{margin-top:15px}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status .sui-status+.sui-actions{margin-left:15px}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status .sui-status{-ms-flex:1;flex:1}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status .sui-actions{-ms-flex:0 0 auto;flex:0 0 auto}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box .sui-box-status{display:-ms-flexbox;display:flex;padding:15px 30px}}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-search>*{max-width:100%;-ms-flex:0 1 auto;flex:0 1 auto}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box .sui-box-search>.sui-search-left:not(:last-child){margin-right:15px}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box .sui-box-search>.sui-search-left{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box .sui-box-search>.sui-search-right:only-child{-ms-flex:1;flex:1}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box .sui-box-search>.sui-search-right:not(:only-child):not(:last-child){margin-right:15px}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box .sui-box-search>.sui-search-right:not(:only-child){-ms-flex:0 0 auto;flex:0 0 auto}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box .sui-box-search{display:-ms-flexbox;display:flex}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box.sui-box-sticky{position:-webkit-sticky!important;position:sticky!important;top:32px;z-index:12}}.sui-forminator-scgen .sui-wrap .sui-box.sui-box-sticky.sui-is-sticky{box-shadow:0 5px 25px rgba(0,0,0,.15)}.sui-forminator-scgen .sui-wrap .sui-box>.sui-box-search{padding-top:15px;padding-bottom:15px}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-box>.sui-box-search{padding-right:20px;padding-left:20px}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box>.sui-box-search{padding-right:30px;padding-left:30px}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-box:last-child{margin-bottom:0}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box:last-child{margin-bottom:0}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-box{margin-bottom:20px}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box{margin-bottom:30px}}.sui-forminator-scgen .sui-wrap .sui-message{display:block;text-align:center}.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content{max-width:600px;margin-right:auto;margin-left:auto}.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content h1,.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content h2,.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content h3,.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content h4,.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content h5,.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content h6{margin:0 0 20px}.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content h1:last-child,.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content h2:last-child,.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content h3:last-child,.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content h4:last-child,.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content h5:last-child,.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content h6:last-child{margin-bottom:0}.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content p{margin:0 0 30px;letter-spacing:-.25px}.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content p:last-child{margin-bottom:0}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content{margin-top:20px;margin-bottom:20px}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-message .sui-message-content{margin-top:30px;margin-bottom:30px}}.sui-forminator-scgen .sui-wrap .sui-message:not(.sui-message-lg) .sui-image{margin:10px auto}.sui-forminator-scgen .sui-wrap .sui-message:not(.sui-message-lg) .sui-message-content:first-child{margin-top:0}.sui-forminator-scgen .sui-wrap .sui-message:not(.sui-message-lg) .sui-message-content:last-child{margin-bottom:0}.sui-forminator-scgen .sui-wrap .sui-message.sui-message-lg .sui-image{margin:30px auto}.sui-forminator-scgen .sui-wrap .sui-message:first-child{margin-top:0}.sui-forminator-scgen .sui-wrap .sui-message:last-child{margin-bottom:0}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-message{padding:20px}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-message{padding:30px}}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-title{display:block;margin:0;padding:0;border:0;font:700 15px/30px Roboto,Arial,sans-serif;text-transform:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-title *{vertical-align:middle}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-title [class*=sui-icon-]{float:left;display:block;margin-right:10px}.sui-forminator-scgen .sui-wrap .sui-box .sui-box-title [class*=sui-icon-]:before{color:inherit;font-size:20px;vertical-align:text-bottom}.sui-forminator-scgen .sui-wrap .sui-box-body .sui-upsell-row{position:relative}.sui-forminator-scgen .sui-wrap .sui-box-body .sui-upsell-row .sui-upsell-image{width:100px;position:absolute;bottom:0}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-box-body .sui-upsell-row .sui-upsell-image{display:none}}.sui-forminator-scgen .sui-wrap .sui-box-body .sui-upsell-row .sui-upsell-notice p{position:relative;padding:15px 20px 15px 43px;border-radius:4px;color:#333;font-size:13px;line-height:22px;border-top:1px solid #e6e6e6;border-right:1px solid #e6e6e6;border-bottom:1px solid #e6e6e6;border-left:2px solid #8d00b1}.sui-forminator-scgen .sui-wrap .sui-box-body .sui-upsell-row .sui-upsell-notice p a{color:#333;font-weight:500}.sui-forminator-scgen .sui-wrap .sui-box-body .sui-upsell-row .sui-upsell-notice p:first-of-type:before{content:"I";color:#8d00b1;margin-left:-23px;margin-right:10px}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box-body .sui-upsell-row .sui-upsell-notice{padding-left:130px}}.sui-forminator-scgen .sui-wrap .sui-box-body.sui-upsell-items{padding:0}.sui-forminator-scgen .sui-wrap .sui-box-body .sui-settings-box{padding:20px;border:1px solid #e6e6e6;border-radius:4px}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box-body .sui-settings-box{padding:30px}}.sui-forminator-scgen .sui-wrap .sui-with-bottom-border{margin-bottom:30px;padding-bottom:30px;border-bottom:1px solid #e6e6e6}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-with-bottom-border{margin-bottom:20px;padding-bottom:20px}}.sui-forminator-scgen .sui-wrap .sui-border-frame{margin:10px 0 0;border:1px solid #e6e6e6;border-radius:4px}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-border-frame:not(:last-child){margin-bottom:20px}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-border-frame:not(:last-child){margin-bottom:30px}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-border-frame{padding:20px}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-border-frame{padding:30px}}.sui-forminator-scgen .sui-wrap .sui-header{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;position:relative;margin-bottom:30px;line-height:1}.sui-forminator-scgen .sui-wrap .sui-header h1{text-transform:uppercase}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-header h1{-ms-flex:0 0 100%;flex:0 0 100%}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-header .sui-actions-right{margin-top:10px;margin-right:auto;margin-left:0}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-header .sui-actions-left{margin-top:10px;margin-right:0;margin-left:0}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-header.sui-header-inline h1+*{margin-left:10px}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-header.sui-header-inline h1{-ms-flex:1;flex:1}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-header.sui-header-inline .sui-actions-left,.sui-forminator-scgen .sui-wrap .sui-header.sui-header-inline .sui-actions-right{-ms-flex:0 0 auto;flex:0 0 auto;margin-top:0;margin-right:0}}@media (min-width:1200px){.sui-forminator-scgen .sui-wrap .sui-header.sui-with-floating-input h1{padding-right:260px}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-header.sui-with-floating-input{margin-bottom:15px}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-header{margin-bottom:20px}}.sui-forminator-scgen .sui-wrap .sui-header-title{color:#333;margin:0;text-align:left;text-transform:uppercase;font-weight:700;max-width:none;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.sui-forminator-scgen .sui-wrap .sui-label,.sui-forminator-scgen .sui-wrap .sui-label-inline{display:-ms-inline-flexbox;display:inline-flex;padding:0;border:0;color:#888;font:500 12px/16px Roboto,Arial,sans-serif}.sui-forminator-scgen .sui-wrap .sui-form-control,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox{width:100%;height:40px;margin:0;padding:9px 14px;border:1px solid #ddd;border-radius:4px;background-color:#fafafa;background-image:none;color:#333;font:500 15px/20px Roboto,Arial,sans-serif;letter-spacing:-.25px;transition:.3s ease-in-out}.sui-forminator-scgen .sui-wrap .sui-form-control,.sui-forminator-scgen .sui-wrap .sui-form-control:active,.sui-forminator-scgen .sui-wrap .sui-form-control:focus,.sui-forminator-scgen .sui-wrap .sui-form-control:hover,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox:active,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox:focus,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox:hover{outline:none;box-shadow:none}.sui-forminator-scgen .sui-wrap .sui-form-control:focus,.sui-forminator-scgen .sui-wrap .sui-form-control:hover,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox:focus,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox:hover{border-color:#ddd;background-color:#fff}.sui-forminator-scgen .sui-wrap .sui-form-control:focus,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox:focus{background-color:#fff;color:#333}.sui-forminator-scgen .sui-wrap .sui-form-control::-ms-input-placeholder,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox::-ms-input-placeholder{color:#aaa}.sui-forminator-scgen .sui-wrap .sui-form-control::placeholder,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox::placeholder{color:#aaa}.sui-forminator-scgen .sui-wrap .sui-disabled.sui-form-control,.sui-forminator-scgen .sui-wrap .sui-disabled.sui-multi-checkbox,.sui-forminator-scgen .sui-wrap .sui-form-control[disabled],.sui-forminator-scgen .sui-wrap .sui-multi-checkbox[disabled],fieldset[disabled] .sui-forminator-scgen .sui-wrap .sui-form-control,fieldset[disabled] .sui-forminator-scgen .sui-wrap .sui-multi-checkbox{cursor:not-allowed}.sui-forminator-scgen .sui-wrap .sui-disabled.sui-form-control,.sui-forminator-scgen .sui-wrap .sui-disabled.sui-form-control:focus,.sui-forminator-scgen .sui-wrap .sui-disabled.sui-form-control:hover,.sui-forminator-scgen .sui-wrap .sui-disabled.sui-multi-checkbox,.sui-forminator-scgen .sui-wrap .sui-disabled.sui-multi-checkbox:focus,.sui-forminator-scgen .sui-wrap .sui-disabled.sui-multi-checkbox:hover,.sui-forminator-scgen .sui-wrap .sui-form-control[disabled],.sui-forminator-scgen .sui-wrap .sui-form-control[disabled]:focus,.sui-forminator-scgen .sui-wrap .sui-form-control[disabled]:hover,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox[disabled],.sui-forminator-scgen .sui-wrap .sui-multi-checkbox[disabled]:focus,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox[disabled]:hover,fieldset[disabled] .sui-forminator-scgen .sui-wrap .sui-form-control,fieldset[disabled] .sui-forminator-scgen .sui-wrap .sui-form-control:focus,fieldset[disabled] .sui-forminator-scgen .sui-wrap .sui-form-control:hover,fieldset[disabled] .sui-forminator-scgen .sui-wrap .sui-multi-checkbox,fieldset[disabled] .sui-forminator-scgen .sui-wrap .sui-multi-checkbox:focus,fieldset[disabled] .sui-forminator-scgen .sui-wrap .sui-multi-checkbox:hover{border-color:#f2f2f2;background-color:#f2f2f2;color:#aaa}.sui-forminator-scgen .sui-wrap .sui-form-control::-ms-expand,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox::-ms-expand{border:0;background-color:transparent}.sui-forminator-scgen .sui-wrap label{cursor:default}.sui-forminator-scgen .sui-wrap label[for]{cursor:pointer}.sui-forminator-scgen .sui-wrap .sui-label{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;margin:0 0 5px}.sui-forminator-scgen .sui-wrap .sui-label .sui-tag{margin-left:5px}.sui-forminator-scgen .sui-wrap .sui-label .sui-tag.sui-left{margin-right:5px;margin-left:0}.sui-forminator-scgen .sui-wrap .sui-label:last-child{margin:0}.sui-forminator-scgen .sui-wrap .sui-label-link{margin-right:0;margin-left:auto;color:#888;font-weight:400}.sui-forminator-scgen .sui-wrap .sui-label-inline{margin:0}.sui-forminator-scgen .sui-wrap .sui-label-note{margin-right:0;margin-left:auto}.sui-forminator-scgen .sui-wrap .sui-form-control,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox{display:block}.sui-forminator-scgen .sui-wrap .sui-form-control.sui-input-sm,.sui-forminator-scgen .sui-wrap .sui-input-sm.sui-multi-checkbox{max-width:80px}.sui-forminator-scgen .sui-wrap .sui-form-control.sui-input-md,.sui-forminator-scgen .sui-wrap .sui-input-md.sui-multi-checkbox{max-width:240px}.sui-forminator-scgen .sui-wrap .sui-field-has-prefix.sui-multi-checkbox,.sui-forminator-scgen .sui-wrap .sui-field-has-suffix.sui-multi-checkbox,.sui-forminator-scgen .sui-wrap .sui-form-control.sui-field-has-prefix,.sui-forminator-scgen .sui-wrap .sui-form-control.sui-field-has-suffix{width:auto;display:inline-block}.sui-forminator-scgen .sui-wrap .sui-multi-checkbox{height:auto;max-height:114px;overflow-y:auto;padding:1px}.sui-forminator-scgen .sui-wrap .sui-multi-checkbox label{margin:1px 0}.sui-forminator-scgen .sui-wrap .sui-multi-checkbox label input:checked+span{background-color:#17a8e3;color:#fff}.sui-forminator-scgen .sui-wrap .sui-multi-checkbox label span{display:block;padding:10px}.sui-forminator-scgen .sui-wrap .sui-multi-checkbox label:first-child{margin-top:0}.sui-forminator-scgen .sui-wrap .sui-multi-checkbox label:first-child span{border-radius:3px 3px 0 0}.sui-forminator-scgen .sui-wrap .sui-multi-checkbox label:last-child{margin-bottom:0}.sui-forminator-scgen .sui-wrap .sui-multi-checkbox label:last-child span{border-radius:0 0 3px 3px}.sui-forminator-scgen .sui-wrap .sui-description,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox label{display:block;margin-top:5px;color:#888;font-size:13px;line-height:16px;font-weight:400}.sui-forminator-scgen .sui-wrap .sui-description.sui-toggle-description,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox label.sui-toggle-description{margin-left:48px}.sui-forminator-scgen .sui-wrap .sui-description.sui-checkbox-description,.sui-forminator-scgen .sui-wrap .sui-description.sui-radio-description,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox label.sui-checkbox-description,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox label.sui-radio-description{margin:0 27px 5px}.sui-forminator-scgen .sui-wrap .sui-description+.sui-form-field,.sui-forminator-scgen .sui-wrap .sui-description+.sui-form-field-inline,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox label+.sui-form-field,.sui-forminator-scgen .sui-wrap .sui-multi-checkbox label+.sui-form-field-inline{margin-top:20px}.sui-forminator-scgen .sui-wrap .sui-error-message{display:block;margin-top:8px;color:#ff6d6d;font-size:12px;line-height:16px;font-weight:500}.sui-forminator-scgen .sui-wrap .sui-form-field.sui-input-sm{max-width:80px}.sui-forminator-scgen .sui-wrap .sui-form-field.sui-input-md{max-width:240px}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-form-field>.sui-row [class^=sui-col]{padding-right:5px;padding-left:5px}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-form-field>.sui-row:first-child{margin-top:0}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-form-field>.sui-row{margin:10px -5px 0}}.sui-forminator-scgen .sui-wrap .sui-form-field:last-child{margin-bottom:0}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-form-field:last-child{margin-bottom:0}}.sui-forminator-scgen .sui-wrap .sui-form-field.sui-form-field-error .sui-form-control,.sui-forminator-scgen .sui-wrap .sui-form-field.sui-form-field-error .sui-multi-checkbox,.sui-forminator-scgen .sui-wrap .sui-form-field.sui-has_error .sui-form-control,.sui-forminator-scgen .sui-wrap .sui-form-field.sui-has_error .sui-multi-checkbox{border-bottom:2px solid #ff6d6d}.sui-forminator-scgen .sui-wrap .sui-form-field.sui-form-field-error .sui-control-with-icon [class*=sui-icon-]:before,.sui-forminator-scgen .sui-wrap .sui-form-field.sui-has_error .sui-control-with-icon [class*=sui-icon-]:before{color:#ff6d6d}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-form-field{margin-bottom:20px}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-form-field{margin-bottom:30px}}.sui-forminator-scgen .sui-wrap .sui-field-prefix,.sui-forminator-scgen .sui-wrap .sui-field-suffix{display:inline-block;color:#888;font-size:13px;line-height:22px}.sui-forminator-scgen .sui-wrap .sui-field-prefix{margin-right:10px}.sui-forminator-scgen .sui-wrap .sui-field-suffix{margin-left:10px}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-form-field-inline>.select-container:first-child,.sui-forminator-scgen .sui-wrap .sui-form-field-inline>.sui-form-field:first-child{margin-left:0}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-form-field-inline>.select-container:last-child,.sui-forminator-scgen .sui-wrap .sui-form-field-inline>.sui-form-field:last-child{margin-right:0}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-form-field-inline>.select-container,.sui-forminator-scgen .sui-wrap .sui-form-field-inline>.sui-form-field{-ms-flex:0 0 auto;flex:0 0 auto;margin:0 10px}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-form-field-inline>.sui-form-field{-ms-flex:0 0 auto;flex:0 0 auto;margin-bottom:0}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-form-field-inline>.sui-label,.sui-forminator-scgen .sui-wrap .sui-form-field-inline>p,.sui-forminator-scgen .sui-wrap .sui-form-field-inline>span{-ms-flex:0 0 auto;flex:0 0 auto;margin:0}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-form-field-inline:last-child{margin-bottom:0}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-form-field-inline:last-child{margin-bottom:0}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-form-field-inline{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;margin-bottom:30px}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-form-field-inline{margin-bottom:20px}}.sui-forminator-scgen .sui-wrap .sui-control-with-icon{position:relative}.sui-forminator-scgen .sui-wrap .sui-control-with-icon .sui-form-control,.sui-forminator-scgen .sui-wrap .sui-control-with-icon .sui-multi-checkbox,.sui-forminator-scgen .sui-wrap .sui-control-with-icon select.sui-select+.select2-container .select2-selection__rendered{padding-left:40px}.sui-forminator-scgen .sui-wrap .sui-control-with-icon [class*=sui-icon-]{width:16px;height:16px;pointer-events:none;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:11px;left:14px}.sui-forminator-scgen .sui-wrap .sui-control-with-icon [class*=sui-icon-]:before{color:#aaa;display:block}.sui-forminator-scgen .sui-wrap .sui-control-with-icon.sui-right-icon .sui-form-control,.sui-forminator-scgen .sui-wrap .sui-control-with-icon.sui-right-icon .sui-multi-checkbox{padding-right:40px;padding-left:14px}.sui-forminator-scgen .sui-wrap .sui-control-with-icon.sui-right-icon [class*=sui-icon-]{right:14px;left:auto;color:#888}.sui-forminator-scgen .sui-wrap .sui-with-button{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.sui-forminator-scgen .sui-wrap .sui-with-button .sui-button{-ms-flex:0 0 auto;flex:0 0 auto}.sui-forminator-scgen .sui-wrap .sui-with-button .sui-form-control,.sui-forminator-scgen .sui-wrap .sui-with-button .sui-multi-checkbox{-ms-flex:1;flex:1;margin:0 5px}.sui-forminator-scgen .sui-wrap .sui-with-button .sui-form-control:first-child,.sui-forminator-scgen .sui-wrap .sui-with-button .sui-multi-checkbox:first-child{margin-left:0}.sui-forminator-scgen .sui-wrap .sui-with-button .sui-form-control:last-child,.sui-forminator-scgen .sui-wrap .sui-with-button .sui-multi-checkbox:last-child{margin-right:0}.sui-forminator-scgen .sui-wrap .sui-with-button.sui-inside,.sui-forminator-scgen .sui-wrap .sui-with-button.sui-with-button-inside{display:block;position:relative}.sui-forminator-scgen .sui-wrap .sui-with-button.sui-inside .sui-button,.sui-forminator-scgen .sui-wrap .sui-with-button.sui-inside .sui-button-icon,.sui-forminator-scgen .sui-wrap .sui-with-button.sui-with-button-inside .sui-button,.sui-forminator-scgen .sui-wrap .sui-with-button.sui-with-button-inside .sui-button-icon{position:absolute;top:5px;right:5px}.sui-forminator-scgen .sui-wrap .sui-with-button.sui-inside .sui-button-lg,.sui-forminator-scgen .sui-wrap .sui-with-button.sui-with-button-inside .sui-button-lg{top:0;right:0;border-top-left-radius:0;border-bottom-left-radius:0}.sui-forminator-scgen .sui-wrap .sui-with-button.sui-inside .sui-form-control,.sui-forminator-scgen .sui-wrap .sui-with-button.sui-inside .sui-multi-checkbox,.sui-forminator-scgen .sui-wrap .sui-with-button.sui-with-button-inside .sui-form-control,.sui-forminator-scgen .sui-wrap .sui-with-button.sui-with-button-inside .sui-multi-checkbox{margin:0;padding-right:90px}.sui-forminator-scgen .sui-wrap .sui-with-button.sui-with-button-icon{display:block;position:relative}.sui-forminator-scgen .sui-wrap .sui-with-button.sui-with-button-icon .sui-button,.sui-forminator-scgen .sui-wrap .sui-with-button.sui-with-button-icon .sui-button-icon{position:absolute;top:5px;right:5px}.sui-forminator-scgen .sui-wrap .sui-with-button.sui-with-button-icon .sui-button-lg{top:0;right:0}.sui-forminator-scgen .sui-wrap .sui-with-button.sui-with-button-icon .sui-form-control,.sui-forminator-scgen .sui-wrap .sui-with-button.sui-with-button-icon .sui-multi-checkbox{margin:0;padding-right:40px}.sui-forminator-scgen .sui-wrap .sui-input-group{width:100%;display:-ms-flexbox;display:flex;-ms-flex-align:stretch;align-items:stretch;position:relative}.sui-forminator-scgen .sui-wrap .sui-password-group{position:relative}.sui-forminator-scgen .sui-wrap .sui-password-group .sui-password-toggle{width:30px;height:30px;cursor:pointer;position:absolute;top:50%;right:7px;padding:0;border:0;border-radius:4px;background:transparent;color:#888;font-size:15px;line-height:1em;transform:translateY(-50%)}.sui-forminator-scgen .sui-wrap .sui-password-group .sui-password-toggle:active,.sui-forminator-scgen .sui-wrap .sui-password-group .sui-password-toggle:focus,.sui-forminator-scgen .sui-wrap .sui-password-group .sui-password-toggle:hover{outline:0}.sui-forminator-scgen .sui-wrap .sui-password-group .sui-password-toggle:hover{background-color:rgba(0,0,0,.03)}.sui-forminator-scgen .sui-wrap .sui-password-group .sui-password-toggle:hover [class*=sui-icon-]:before{color:#666}.sui-forminator-scgen .sui-wrap .sui-date{position:relative}.sui-forminator-scgen .sui-wrap .sui-date .sui-form-control:first-child,.sui-forminator-scgen .sui-wrap .sui-date .sui-multi-checkbox:first-child{padding-right:40px}.sui-forminator-scgen .sui-wrap .sui-date .sui-form-control:last-child,.sui-forminator-scgen .sui-wrap .sui-date .sui-multi-checkbox:last-child{padding-left:40px}.sui-forminator-scgen .sui-wrap .sui-date [class*=sui-icon-]{width:30px;height:30px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:absolute;top:5px}.sui-forminator-scgen .sui-wrap .sui-date [class*=sui-icon-]:before{display:block}.sui-forminator-scgen .sui-wrap .sui-date [class*=sui-icon-]:first-child{left:5px}.sui-forminator-scgen .sui-wrap .sui-date [class*=sui-icon-]:last-child{right:5px}.sui-forminator-scgen .sui-wrap .sui-multi-date{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.sui-forminator-scgen .sui-wrap .sui-multi-date .sui-form-field{-ms-flex:1;flex:1}.sui-forminator-scgen .sui-wrap .sui-multi-date .sui-form-field+button{-ms-flex:0 0 auto;flex:0 0 auto;margin-left:10px}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-multi-date .sui-form-field{margin-bottom:0}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-multi-date .sui-form-field{margin-bottom:0}}.sui-forminator-scgen .sui-wrap .sui-multi-date:not(:last-child){margin-bottom:10px}.sui-forminator-scgen .sui-wrap .sui-insert-variables{position:relative}.sui-forminator-scgen .sui-wrap .sui-insert-variables .sui-form-control,.sui-forminator-scgen .sui-wrap .sui-insert-variables .sui-multi-checkbox{padding-right:53px}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container{position:absolute;top:0;right:0;border:0;background-color:transparent;pointer-events:none}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container .dropdown-handle{display:none}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container .select-list-container{padding-right:0;pointer-events:auto}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container .select-list-container .list-value{width:40px;height:40px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;position:relative;padding:0;border:1px solid #ddd;border-left-color:transparent;border-radius:0 4px 4px 0;color:transparent;font-size:16px;transition:.2s ease}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container .select-list-container .list-value:hover{border-left-color:#ddd;background-color:#f2f2f2}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container .select-list-container .list-value:hover:before{color:#666}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container .select-list-container .list-value:before{content:"@";width:16px;height:16px;display:block;position:absolute}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container .select-list-container .list-results{width:320px;left:auto;margin-right:0;border-color:#ddd;background-color:#fff}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container .select-list-container .list-results li.sui-element-flex{display:-ms-flexbox;display:flex}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container .select-list-container .list-results li.sui-element-flex span{pointer-events:none;overflow:hidden;display:block;text-overflow:ellipsis;white-space:nowrap;-ms-flex:1;flex:1}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container .select-list-container .list-results li.sui-element-flex span+span{-ms-flex:0 0 auto;flex:0 0 auto;margin-left:5px;color:#aaa;font-size:12px}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container .select-list-container .list-results .current{background-color:transparent;color:#888}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container .select-list-container .list-results .current:hover{background-color:#f8f8f8;color:#333}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container.active .select-list-container .list-value{z-index:1011;border-bottom-color:#fff;border-left-color:#ddd;background-color:#fff;border-bottom-right-radius:0}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container.active .select-list-container .list-value:before{color:#333}.sui-forminator-scgen .sui-wrap .sui-insert-variables .select-container.active .select-list-container .list-results{top:38px;border-top-right-radius:0}.sui-forminator-scgen .sui-wrap .sui-insert-variables .sui-variables+.select2{width:auto!important;height:auto!important;display:block;position:absolute;top:0;right:0}.sui-forminator-scgen .sui-wrap .sui-insert-variables .sui-variables+.select2 *{display:block;outline:none}.sui-forminator-scgen .sui-wrap .sui-insert-variables .sui-variables+.select2 .select2-selection--single{height:auto;border:1px solid #ddd;border-left-color:transparent;border-radius:0 4px 4px 0;background-color:transparent;transition:.2s ease}.sui-forminator-scgen .sui-wrap .sui-insert-variables .sui-variables+.select2 .select2-selection--single .select2-selection__arrow{width:38px;height:38px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;position:relative;top:auto;right:auto}.sui-forminator-scgen .sui-wrap .sui-insert-variables .sui-variables+.select2 .select2-selection--single .select2-selection__arrow:before{content:"@";display:block;margin:0 auto;color:#888;font-size:16px}.sui-forminator-scgen .sui-wrap .sui-insert-variables .sui-variables+.select2 .select2-selection--single .select2-selection__arrow b{display:none}.sui-forminator-scgen .sui-wrap .sui-insert-variables .sui-variables+.select2 .select2-selection--single:hover{border-left-color:#ddd;background-color:#f2f2f2}.sui-forminator-scgen .sui-wrap .sui-insert-variables .sui-variables+.select2 .select2-selection--single:hover .select2-selection__arrow:before{color:#666}.sui-forminator-scgen .sui-wrap .sui-insert-variables .sui-variables+.select2.select2-container--open .select2-selection--single{border-left-color:#ddd;background-color:#fff;border-bottom-right-radius:0}.sui-forminator-scgen .sui-wrap .sui-insert-variables .sui-variables+.select2.select2-container--open .select2-selection--single .select2-selection__arrow:before{color:#333}.sui-forminator-scgen .sui-wrap .sui-insert-variables textarea.sui-form-control+.select-container .select-list-container .list-value,.sui-forminator-scgen .sui-wrap .sui-insert-variables textarea.sui-multi-checkbox+.select-container .select-list-container .list-value{border-color:transparent}.sui-forminator-scgen .sui-wrap .sui-insert-variables textarea.sui-form-control+.select-container.active .select-list-container .list-value,.sui-forminator-scgen .sui-wrap .sui-insert-variables textarea.sui-form-control+.select-container .select-list-container .list-value:hover,.sui-forminator-scgen .sui-wrap .sui-insert-variables textarea.sui-multi-checkbox+.select-container.active .select-list-container .list-value,.sui-forminator-scgen .sui-wrap .sui-insert-variables textarea.sui-multi-checkbox+.select-container .select-list-container .list-value:hover{border-left-color:transparent;background-color:transparent}.sui-forminator-scgen .sui-wrap textarea.sui-form-control,.sui-forminator-scgen .sui-wrap textarea.sui-multi-checkbox{max-width:100%;height:auto;resize:vertical;line-height:20px}.sui-forminator-scgen .sui-wrap select.sui-form-control,.sui-forminator-scgen .sui-wrap select.sui-multi-checkbox{cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA4AAAAOCAYAAAAfSC3RAAAAs0lEQVQ4T6WS2w0CIRBF59KA2oklaAdbgpbgB48SIBThduKWYClrA2CGgEEXNWH5moR7Zu48QJ0PnRytA6WUe67svb//clDrUkWt9UxEMYRw/AYzJIS4sd45t0ugMeZERNcY49yCCwRgS0Rna+346rGGAVz4s06aW0gQx2/DUUoNAEYAG86cxezkAWCw1k5lBoupZltThomhEMLhs/fmOgrM2VvQwmq9in8rWncAPWfXXfEJ6RpWD7sJ1JwAAAAASUVORK5CYII=);background-repeat:no-repeat;background-position:center right 10px;line-height:1}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs]{display:-ms-flexbox;display:flex;margin:0;padding:0;border-top:1px solid #e6e6e6;list-style:none}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu .sui-tab-item,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu>*,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs] .sui-tab-item,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs]>*{cursor:pointer;margin:0 10px;padding:14px 0 12px;border:0;background-color:transparent}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu .sui-tab-item,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu .sui-tab-item:active,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu .sui-tab-item:focus,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu .sui-tab-item:hover,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu .sui-tab-item:visited,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu>*,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu>:active,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu>:focus,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu>:hover,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu>:visited,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs] .sui-tab-item,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs] .sui-tab-item:active,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs] .sui-tab-item:focus,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs] .sui-tab-item:hover,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs] .sui-tab-item:visited,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs]>*,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs]>:active,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs]>:focus,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs]>:hover,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs]>:visited{outline:none;border-bottom:2px solid transparent;font-size:12px;line-height:22px;font-weight:500;text-transform:uppercase;text-decoration:none}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu .sui-tab-item,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu .sui-tab-item:visited,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu>*,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu>:visited,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs] .sui-tab-item,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs] .sui-tab-item:visited,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs]>*,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs]>:visited{color:#888}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu .sui-tab-item:active,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu .sui-tab-item:focus,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu .sui-tab-item:hover,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu>:active,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu>:focus,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu>:hover,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs] .sui-tab-item:active,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs] .sui-tab-item:focus,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs] .sui-tab-item:hover,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs]>:active,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs]>:focus,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs]>:hover{color:#333}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu .sui-tab-item:first-child,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu>:first-child,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs] .sui-tab-item:first-child,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs]>:first-child{margin-left:0}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu .sui-tab-item:last-child,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu>:last-child,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs] .sui-tab-item:last-child,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs]>:last-child{margin-right:0}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu .sui-tab-item.active,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-menu>.active,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs] .sui-tab-item.active,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-tabs]>.active{color:#333;border-bottom-color:#333}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-content>*,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-content>.sui-tab-content,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-panes]>*,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-panes]>.sui-tab-content{display:none;margin-top:-1px;padding:20px 0 0;border-top:1px solid #e6e6e6}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-content>.active,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-content>.sui-tab-content.active,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-panes]>.active,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-panes]>.sui-tab-content.active{display:block}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-content>*,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>.sui-tabs-content>.sui-tab-content,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-panes]>*,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs)>[data-panes]>.sui-tab-content{padding:30px 0 0}}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-flushed>.sui-tabs-menu,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-flushed>[data-tabs]{border-top-width:0}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow{border:1px solid #e6e6e6;border-radius:4px;position:relative}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>.sui-tabs-menu,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>[data-tabs]{overflow:auto;margin-right:20px;margin-left:20px;border-top-width:0;scrollbar-width:none;scrollbar-height:none}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>.sui-tabs-menu::-webkit-scrollbar,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>[data-tabs]::-webkit-scrollbar{width:0;height:0;background:transparent}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>.sui-tabs-menu .sui-tab-item,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>.sui-tabs-menu>*,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>[data-tabs] .sui-tab-item,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>[data-tabs]>*{-ms-flex:0 0 auto;flex:0 0 auto}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>.sui-tabs-content>*,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>.sui-tabs-content>.sui-tab-content,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>[data-panes]>*,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>[data-panes]>.sui-tab-content{padding-right:20px;padding-bottom:20px;padding-left:20px}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>.sui-tabs-content>*,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>.sui-tabs-content>.sui-tab-content,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>[data-panes]>*,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow>[data-panes]>.sui-tab-content{padding-right:30px;padding-bottom:30px;padding-left:30px}}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow .sui-tabs-navigation{position:absolute;width:100%;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;height:50px;-ms-flex-align:center;align-items:center;top:1px;pointer-events:none;opacity:1}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow .sui-tabs-navigation--left,.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow .sui-tabs-navigation--right{background:hsla(0,0%,100%,.8);pointer-events:all;transition:all .2s}.sui-forminator-scgen .sui-wrap .sui-tabs:not(.sui-side-tabs).sui-tabs-overflow .sui-tabs-navigation--hidden{visibility:hidden;opacity:0}.sui-forminator-scgen .sui-wrap .sui-side-tabs{margin:0 0 20px}.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs]{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;margin:0;padding:0;list-style:none}.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu .sui-tab-item,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu>*,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs] .sui-tab-item,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs]>*{cursor:pointer;-ms-flex:0 0 auto;flex:0 0 auto;margin:0 1px 0 0;padding:9px 20px;border:0}.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu .sui-tab-item,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu .sui-tab-item:active,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu .sui-tab-item:focus,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu .sui-tab-item:hover,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu .sui-tab-item:visited,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu>*,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu>:active,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu>:focus,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu>:hover,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu>:visited,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs] .sui-tab-item,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs] .sui-tab-item:active,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs] .sui-tab-item:focus,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs] .sui-tab-item:hover,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs] .sui-tab-item:visited,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs]>*,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs]>:active,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs]>:focus,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs]>:hover,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs]>:visited{outline:none;background-color:#f8f8f8;color:#666;font-size:13px;line-height:22px;font-weight:500;letter-spacing:-.25px}.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu .sui-tab-item:first-child,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu>:first-child,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs] .sui-tab-item:first-child,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs]>:first-child{border-radius:4px 0 0 4px}.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu .sui-tab-item:last-child,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu>:last-child,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs] .sui-tab-item:last-child,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs]>:last-child{margin:0;border-radius:0 4px 4px 0}.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu .sui-tab-item.active,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-menu>.active,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs] .sui-tab-item.active,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-tabs]>.active{background-color:#e1f6ff;color:#17a8e3}.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-content>*,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-content>.sui-tab-content,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-panes]>*,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-panes]>.sui-tab-content{display:none;margin:10px 0 0}.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-content>.sui-tab-boxed,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-content>.sui-tab-content.sui-tab-boxed,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-panes]>.sui-tab-boxed,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-panes]>.sui-tab-content.sui-tab-boxed{padding:20px;border:1px solid #e6e6e6;border-radius:4px}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-content>.sui-tab-boxed,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-content>.sui-tab-content.sui-tab-boxed,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-panes]>.sui-tab-boxed,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-panes]>.sui-tab-content.sui-tab-boxed{padding:30px}}.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-content>.active,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-content>.sui-tab-content.active,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-panes]>.active,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-panes]>.sui-tab-content.active{display:block}.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-content.sui-tabs-content-lg>*,.sui-forminator-scgen .sui-wrap .sui-side-tabs>.sui-tabs-content.sui-tabs-content-lg>.sui-tab-content,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-panes].sui-tabs-content-lg>*,.sui-forminator-scgen .sui-wrap .sui-side-tabs>[data-panes].sui-tabs-content-lg>.sui-tab-content{margin-top:30px}.sui-forminator-scgen .sui-wrap .sui-side-tabs:last-child{margin:0}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-side-tabs:last-child{margin:0}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-side-tabs{margin:0 0 30px}}.sui-forminator-scgen .sui-wrap .sui-box-body>.sui-tabs-flushed>.sui-tabs-menu,.sui-forminator-scgen .sui-wrap .sui-box-body>.sui-tabs-flushed>[data-tabs]{padding:0 20px}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box-body>.sui-tabs-flushed>.sui-tabs-menu,.sui-forminator-scgen .sui-wrap .sui-box-body>.sui-tabs-flushed>[data-tabs]{padding:0 30px}}.sui-forminator-scgen .sui-wrap .sui-box-body>.sui-tabs-flushed>.sui-tabs-content>*,.sui-forminator-scgen .sui-wrap .sui-box-body>.sui-tabs-flushed>.sui-tabs-content>.sui-tab-content,.sui-forminator-scgen .sui-wrap .sui-box-body>.sui-tabs-flushed>[data-panes]>*,.sui-forminator-scgen .sui-wrap .sui-box-body>.sui-tabs-flushed>[data-panes]>.sui-tab-content{padding:20px}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box-body>.sui-tabs-flushed>.sui-tabs-content>*,.sui-forminator-scgen .sui-wrap .sui-box-body>.sui-tabs-flushed>.sui-tabs-content>.sui-tab-content,.sui-forminator-scgen .sui-wrap .sui-box-body>.sui-tabs-flushed>[data-panes]>*,.sui-forminator-scgen .sui-wrap .sui-box-body>.sui-tabs-flushed>[data-panes]>.sui-tab-content{padding:30px}}@media (max-width:782px){.sui-forminator-scgen .sui-wrap .sui-box-body>.sui-tabs-flushed{margin:-20px!important}}@media (min-width:783px){.sui-forminator-scgen .sui-wrap .sui-box-body>.sui-tabs-flushed{margin:-30px!important}}.sui-forminator-scgen .sui-wrap .sui-dropdown{position:relative;display:inline-block;margin:0 10px}.sui-forminator-scgen .sui-wrap .sui-dropdown ul{min-width:170px;display:none;position:absolute;z-index:10;top:100%;right:-10px;left:auto;margin:15px 0 0;padding:10px 0;border:1px solid #ddd;border-radius:4px;background-color:#fff;box-shadow:0 3px 7px 0 rgba(0,0,0,.07);transition:.3s ease}.sui-forminator-scgen .sui-wrap .sui-dropdown ul:after,.sui-forminator-scgen .sui-wrap .sui-dropdown ul:before{content:" ";width:0;position:absolute;right:15px;border-width:0 8px 10px;border-style:solid;border-top-color:#ddd}.sui-forminator-scgen .sui-wrap .sui-dropdown ul:before{z-index:10;top:-10px;border-color:#ddd transparent}.sui-forminator-scgen .sui-wrap .sui-dropdown ul:after{z-index:11;top:-8px;border-color:#fff transparent}.sui-forminator-scgen .sui-wrap .sui-dropdown ul,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li{list-style:none}.sui-forminator-scgen .sui-wrap .sui-dropdown ul li{display:block;margin:0;border:0}.sui-forminator-scgen .sui-wrap .sui-dropdown ul li>span,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li>span:active,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li>span:focus,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li>span:hover,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a:active,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a:focus,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a:hover,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button:active,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button:focus,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button:hover{margin:0;padding:0 8px;border:0;outline:none;box-shadow:none}.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button{width:100%;cursor:pointer;display:block;font:500 13px/30px Roboto,Arial,sans-serif;text-align:left;transition:.3s ease}.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a:focus,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a:visited,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button:focus,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button:visited{background-color:transparent;color:#888}.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a:active,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a:hover,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button:active,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button:hover{background-color:#f2f2f2;color:#333}.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a:active [class*=sui-icon-]:before,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a:hover [class*=sui-icon-]:before,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button:active [class*=sui-icon-]:before,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button:hover [class*=sui-icon-]:before{color:#333}.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a.sui-option-red,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a.sui-option-red:focus,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a.sui-option-red:visited,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button.sui-option-red,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button.sui-option-red:focus,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button.sui-option-red:visited{background-color:transparent;color:#ff6d6d}.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a.sui-option-red:active,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a.sui-option-red:hover,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button.sui-option-red:active,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button.sui-option-red:hover{background-color:#ffe5e9}.sui-forminator-scgen .sui-wrap .sui-dropdown ul li a.sui-option-red [class*=sui-icon-]:before,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li button.sui-option-red [class*=sui-icon-]:before{color:inherit}.sui-forminator-scgen .sui-wrap .sui-dropdown ul li [class*=sui-icon-]{width:24px;margin-right:4px;font-size:12px;text-align:center}.sui-forminator-scgen .sui-wrap .sui-dropdown ul li [class*=sui-icon-]:before{display:block;color:#888;transition:.3s ease}.sui-forminator-scgen .sui-wrap .sui-dropdown ul li.active,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li.current{background-color:#f2f2f2;color:#333}.sui-forminator-scgen .sui-wrap .sui-dropdown ul li.active [class*=sui-icon-]:before,.sui-forminator-scgen .sui-wrap .sui-dropdown ul li.current [class*=sui-icon-]:before{color:#333}.sui-forminator-scgen .sui-wrap .sui-dropdown ul li.sui-dropdown-label{border-bottom:1px solid #e6e6e6;line-height:30px;cursor:default;color:#666}.sui-forminator-scgen .sui-wrap .sui-dropdown ul li form{display:block;margin:0;padding:0;border:0}.sui-forminator-scgen .sui-wrap .sui-dropdown:first-child{margin-left:0}.sui-forminator-scgen .sui-wrap .sui-dropdown:last-child{margin-right:0}.sui-forminator-scgen .sui-wrap .sui-dropdown.sui-dropdown-right ul{right:unset;left:-10px}.sui-forminator-scgen .sui-wrap .sui-dropdown.sui-dropdown-right ul:after,.sui-forminator-scgen .sui-wrap .sui-dropdown.sui-dropdown-right ul:before{right:unset;left:15px}.sui-forminator-scgen .sui-wrap .sui-dropdown.sui-dropdown-center ul,.sui-forminator-scgen .sui-wrap .sui-dropdown.sui-dropdown-center ul:after,.sui-forminator-scgen .sui-wrap .sui-dropdown.sui-dropdown-center ul:before{right:unset;left:50%;transform:translateX(-50%)}.sui-forminator-scgen .sui-wrap .sui-dropdown.wds-item-loading{font-size:18px}.sui-forminator-scgen .sui-wrap .sui-dropdown.wds-item-loading .sui-dropdown-anchor{visibility:hidden}.sui-forminator-scgen .sui-wrap .sui-dropdown.open .sui-dropdown-anchor,.sui-forminator-scgen .sui-wrap .sui-dropdown.open .sui-dropdown-anchor:active,.sui-forminator-scgen .sui-wrap .sui-dropdown.open .sui-dropdown-anchor:focus,.sui-forminator-scgen .sui-wrap .sui-dropdown.open .sui-dropdown-anchor:hover,.sui-forminator-scgen .sui-wrap .sui-dropdown.open .sui-dropdown-anchor:visited{background-color:#f2f2f2;color:#333}.sui-forminator-scgen .sui-wrap .sui-dropdown.open ul{display:block}.sui-forminator-scgen .sui-dialog{position:fixed;z-index:13;top:0;right:0;bottom:0;left:160px;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:auto;background-color:rgba(51,51,51,.95)}.sui-forminator-scgen .sui-dialog,.sui-forminator-scgen .sui-dialog *{box-sizing:border-box}.sui-forminator-scgen .sui-dialog,.sui-forminator-scgen .sui-dialog:active,.sui-forminator-scgen .sui-dialog:focus,.sui-forminator-scgen .sui-dialog:hover{outline:none;box-shadow:none}.sui-forminator-scgen .sui-dialog .sui-dialog-overlay{position:absolute;z-index:13;top:0;right:0;bottom:0;left:0}@media (max-width:960px){.sui-forminator-scgen .sui-dialog .sui-dialog-overlay{left:36px}}@media (max-width:782px){.sui-forminator-scgen .sui-dialog .sui-dialog-overlay{left:0}}.sui-forminator-scgen .sui-dialog .sui-dialog-content{width:100%;max-width:660px;max-height:85%;position:relative;z-index:13;margin:0 auto;padding:0 30px}.sui-forminator-scgen .sui-dialog .sui-dialog-content>.sui-box{margin:30px 0;box-shadow:0 10px 40px rgba(0,0,0,.2)}.sui-forminator-scgen .sui-dialog .sui-dialog-content>.sui-box .sui-box-body>*{margin-bottom:30px}@media (max-width:782px){.sui-forminator-scgen .sui-dialog .sui-dialog-content>.sui-box .sui-box-body>*{margin-bottom:20px}}.sui-forminator-scgen .sui-dialog .sui-dialog-content>.sui-box .sui-box-body>:last-child{margin-bottom:0}@media (max-width:782px){.sui-forminator-scgen .sui-dialog .sui-dialog-content>.sui-box{margin:20px 0}}@media (max-width:782px){.sui-forminator-scgen .sui-dialog .sui-dialog-content{max-width:640px;padding:0 20px}}.sui-forminator-scgen .sui-dialog .sui-dialog-close{width:30px;height:30px;cursor:pointer;margin:0;padding:0;border:0;outline-style:none;background-image:none;background-color:transparent;transition:.3s ease}.sui-forminator-scgen .sui-dialog .sui-dialog-close:active:before,.sui-forminator-scgen .sui-dialog .sui-dialog-close:hover:before{color:#888}.sui-forminator-scgen .sui-dialog .sui-dialog-close:before{content:")";color:#aaa;font-size:16px;line-height:30px}.sui-forminator-scgen .sui-dialog .sui-dialog-back{width:30px;height:30px;cursor:pointer;margin:0;padding:0;border:0;outline-style:none;background-image:none;background-color:transparent;transition:.3s ease}.sui-forminator-scgen .sui-dialog .sui-dialog-back:active:before,.sui-forminator-scgen .sui-dialog .sui-dialog-back:hover:before{color:#888}.sui-forminator-scgen .sui-dialog .sui-dialog-back:before{content:"\D3";color:#aaa;font-size:16px;line-height:30px}.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-body.sui-block-content-center .sui-form-field,.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-body.sui-block-content-center .sui-notice,.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-footer.sui-block-content-center .sui-form-field,.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-footer.sui-block-content-center .sui-notice,.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-header.sui-block-content-center .sui-form-field,.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-header.sui-block-content-center .sui-notice{text-align:initial}.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-header{display:block;position:relative;padding-top:40px;padding-bottom:10px;border-bottom:0}.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-header .sui-dialog-close{position:absolute;top:20px;right:20px}.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-header .sui-dialog-back{position:absolute;top:20px;left:20px}.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-header .sui-box-title{font-size:22px;line-height:30px;font-family:Roboto,Arial,sans-serif}.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-header .sui-box-title+.sui-description{margin-top:20px}.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-header .sui-dialog-image{width:70px;height:70px;display:block;position:absolute;top:-30px;left:50%;margin-left:-35px;border:5px solid #fff;border-radius:4px;background-color:#fff}.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-header .sui-dialog-image img{max-width:100%;max-height:100%;display:block;margin:0 auto;border-radius:3px}@media (max-width:782px){.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-header .sui-dialog-image{display:none}}.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-header:last-child{padding-bottom:20px}@media (min-width:783px){.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-header:last-child{padding-bottom:30px}}@media (min-width:783px){.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-header{padding-top:60px}}.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-body.sui-box-body-slim{padding-top:10px}.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-body+.sui-box-footer{padding-top:0}.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-footer{-ms-flex-pack:justify;justify-content:space-between;border-top:0}.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-footer.sui-box-footer-center{-ms-flex-pack:center;justify-content:center}.sui-forminator-scgen .sui-dialog.sui-dialog-alt .sui-dialog-content>.sui-box .sui-box-footer.sui-box-footer-right{-ms-flex-pack:end;justify-content:flex-end}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content{pointer-events:none}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider{display:block;position:relative}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content{pointer-events:all;padding:0}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content>li{display:block;margin:0;border:0;list-style:none}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content>li{display:none}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content>li.sui-current{opacity:0;display:block;animation-duration:.7s;animation-fill-mode:both;transform-origin:center;transform-style:preserve-3d}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content>li.sui-current.sui-loaded{opacity:1}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content>li.sui-current.fadeInLeft{opacity:1;animation-name:fadeInLeft}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content>li.sui-current.fadeInRight{opacity:1;animation-name:fadeInRight}@media (max-width:782px){.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content>li{padding:20px 0}}@media (min-width:783px){.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content>li{padding:30px 0}}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-navigation button{cursor:pointer;pointer-events:all;position:absolute;top:50%;border-radius:50%;transform:translateY(-50%);font-size:16px;transition:all .3s ease}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-navigation button,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-navigation button:active,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-navigation button:focus,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-navigation button:hover{margin:0;padding:0;border:0;outline:none;box-shadow:none}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-navigation button:active,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-navigation button:hover{background-color:#fff;color:#666}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-navigation button:disabled{opacity:.3;pointer-events:none}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-navigation button [class*=sui-icon-]{display:block}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-navigation button [class*=sui-icon-]:before{display:block;color:inherit}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-navigation button.sui-prev{left:0}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-navigation button.sui-next{right:0}@media (max-width:782px){.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-navigation button{width:30px;height:30px;background-color:#fff;color:#666}}@media (min-width:783px){.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-navigation button{width:40px;height:40px;background-color:transparent;color:#fff}}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;margin:0 -5px;padding:20px 0;border:0}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li{list-style:none}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps:after,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps:before,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li:after,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li:before{content:unset}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li{display:block;-ms-flex:0 0 auto;flex:0 0 auto;margin:0;padding:0 5px}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li>span,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li a,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li button{width:7px;height:7px;display:block;border-radius:14px}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li>span,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li>span:active,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li>span:focus,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li>span:hover,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li>span:visited,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li a,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li a:active,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li a:focus,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li a:hover,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li a:visited,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li button,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li button:active,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li button:focus,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li button:hover,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps li button:visited{margin:0;padding:0;border:0;outline:none;box-shadow:none}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps.sui-clickable li>span,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps.sui-clickable li a,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps.sui-clickable li button{background-color:#e6e6e6}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps.sui-clickable li a,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps.sui-clickable li button{cursor:pointer}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps.sui-clickable li.current>span,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps.sui-clickable li.current a,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps.sui-clickable li.current button{background-color:#666}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps.sui-clickable li.current a,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps.sui-clickable li.current button{pointer-events:none}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps:not(.sui-clickable) li>span,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps:not(.sui-clickable) li a,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps:not(.sui-clickable) li button{background-color:#666}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps:not(.sui-clickable) li a,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps:not(.sui-clickable) li button{pointer-events:none}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps:not(.sui-clickable) li.current~li>span,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps:not(.sui-clickable) li.current~li a,.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-steps:not(.sui-clickable) li.current~li button{background-color:#e6e6e6}@media (max-width:782px){.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider{padding:0 15px}}@media (min-width:783px){.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider{padding:0 55px}}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content li>.sui-box .sui-box-banner{display:block}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content li>.sui-box .sui-box-banner img{width:auto;max-width:100%;height:auto;display:block;margin:0 auto}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content li>.sui-box .sui-box-banner:first-child{overflow:hidden;border-top-left-radius:4px;border-top-right-radius:4px}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content li>.sui-box .sui-box-banner:last-child{overflow:hidden;border-bottom-right-radius:4px;border-bottom-left-radius:4px}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content li>.sui-box .sui-box-banner+[class*=sui-box-]{padding-top:40px}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content li>.sui-box>[class*=sui-box-]:not(.sui-box-selectors)+.sui-box-selectors{margin-top:20px}@media (min-width:783px){.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content li>.sui-box>[class*=sui-box-]:not(.sui-box-selectors)+.sui-box-selectors{margin-top:30px}}.sui-forminator-scgen .sui-dialog.sui-dialog-onboard .sui-dialog-content .sui-slider .sui-slider-content li>
|
|