wpforms-lite.php000066600000141326152141020630007712 0ustar00includes(); add_action( 'wpforms_form_settings_notifications', array( $this, 'form_settings_notifications' ), 8, 1 ); add_action( 'wpforms_form_settings_confirmations', array( $this, 'form_settings_confirmations' ) ); add_action( 'wpforms_builder_enqueues_before', array( $this, 'builder_enqueues' ) ); add_action( 'wpforms_admin_page', array( $this, 'entries_page' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'addon_page_enqueues' ) ); add_action( 'wpforms_admin_page', array( $this, 'addons_page' ) ); add_action( 'wpforms_admin_settings_after', array( $this, 'settings_cta' ), 10, 1 ); add_action( 'wp_ajax_wpforms_lite_settings_upgrade', array( $this, 'settings_cta_dismiss' ) ); add_action( 'admin_enqueue_scripts', array( $this, 'admin_enqueues' ) ); // Entries count logging for WPForms Lite. add_action( 'wpforms_process_entry_save', array( $this, 'update_entry_count' ), 10, 3 ); } /** * Include files. * * @since 1.0.0 */ private function includes() { } /** * Form notification settings, supports multiple notifications. * * @since 1.2.3 * * @param object $settings */ public function form_settings_notifications( $settings ) { $cc = wpforms_setting( 'email-carbon-copy', false ); $from_name_after = apply_filters( 'wpforms_builder_notifications_from_name_after', '' ); $from_email_after = apply_filters( 'wpforms_builder_notifications_from_email_after', '' ); // Handle backwards compatibility. if ( empty( $settings->form_data['settings']['notifications'] ) ) { /* translators: %s - form name. */ $settings->form_data['settings']['notifications'][1]['subject'] = ! empty( $settings->form_data['settings']['notification_subject'] ) ? $settings->form_data['settings']['notification_subject'] : sprintf( esc_html__( 'New %s Entry', 'wpforms-lite' ), $settings->form->post_title ); $settings->form_data['settings']['notifications'][1]['email'] = ! empty( $settings->form_data['settings']['notification_email'] ) ? $settings->form_data['settings']['notification_email'] : '{admin_email}'; $settings->form_data['settings']['notifications'][1]['sender_name'] = ! empty( $settings->form_data['settings']['notification_fromname'] ) ? $settings->form_data['settings']['notification_fromname'] : get_bloginfo( 'name' ); $settings->form_data['settings']['notifications'][1]['sender_address'] = ! empty( $settings->form_data['settings']['notification_fromaddress'] ) ? $settings->form_data['settings']['notification_fromaddress'] : '{admin_email}'; $settings->form_data['settings']['notifications'][1]['replyto'] = ! empty( $settings->form_data['settings']['notification_replyto'] ) ? $settings->form_data['settings']['notification_replyto'] : ''; } $id = 1; echo '
'; esc_html_e( 'Notifications', 'wpforms-lite' ); echo ''; echo '
'; ?> form_data, esc_html__( 'Notifications', 'wpforms-lite' ), array( 'default' => '1', 'options' => array( '1' => esc_html__( 'On', 'wpforms-lite' ), '0' => esc_html__( 'Off', 'wpforms-lite' ), ), ) ); ?>
form_data, esc_html__( 'Send To Email Address', 'wpforms-lite' ), array( 'default' => '{admin_email}', 'tooltip' => esc_html__( 'Enter the email address to receive form entry notifications. For multiple notifications, separate email addresses with a comma.', 'wpforms-lite' ), 'smarttags' => array( 'type' => 'fields', 'fields' => 'email', ), 'parent' => 'settings', 'subsection' => $id, 'class' => 'email-recipient', ) ); if ( $cc ) : wpforms_panel_field( 'text', 'notifications', 'carboncopy', $settings->form_data, esc_html__( 'CC', 'wpforms-lite' ), array( 'smarttags' => array( 'type' => 'fields', 'fields' => 'email', ), 'parent' => 'settings', 'subsection' => $id, ) ); endif; wpforms_panel_field( 'text', 'notifications', 'subject', $settings->form_data, esc_html__( 'Email Subject', 'wpforms-lite' ), array( /* translators: %s - form name. */ 'default' => sprintf( esc_html__( 'New Entry: %s', 'wpforms-lite' ), $settings->form->post_title ), 'smarttags' => array( 'type' => 'all', ), 'parent' => 'settings', 'subsection' => $id, ) ); wpforms_panel_field( 'text', 'notifications', 'sender_name', $settings->form_data, esc_html__( 'From Name', 'wpforms-lite' ), array( 'default' => sanitize_text_field( get_option( 'blogname' ) ), 'smarttags' => array( 'type' => 'fields', 'fields' => 'name,text', ), 'parent' => 'settings', 'subsection' => $id, 'readonly' => ! empty( $from_name_after ), 'after' => ! empty( $from_name_after ) ? '

' . $from_name_after . '

' : '', ) ); wpforms_panel_field( 'text', 'notifications', 'sender_address', $settings->form_data, esc_html__( 'From Email', 'wpforms-lite' ), array( 'default' => '{admin_email}', 'smarttags' => array( 'type' => 'fields', 'fields' => 'email', ), 'parent' => 'settings', 'subsection' => $id, 'readonly' => ! empty( $from_email_after ), 'after' => ! empty( $from_email_after ) ? '

' . $from_email_after . '

' : '', ) ); wpforms_panel_field( 'text', 'notifications', 'replyto', $settings->form_data, esc_html__( 'Reply-To', 'wpforms-lite' ), array( 'smarttags' => array( 'type' => 'fields', 'fields' => 'email', ), 'parent' => 'settings', 'subsection' => $id, ) ); wpforms_panel_field( 'textarea', 'notifications', 'message', $settings->form_data, esc_html__( 'Message', 'wpforms-lite' ), array( 'rows' => 6, 'default' => '{all_fields}', 'smarttags' => array( 'type' => 'all', ), 'parent' => 'settings', 'subsection' => $id, 'class' => 'email-msg', 'after' => '

' . sprintf( /* translators: %s - {all_fields} Smart Tag. */ esc_html__( 'To display all form fields, use the %s Smart Tag.', 'wpforms-lite' ), '{all_fields}' ) . '

', ) ); ?>
form_data['settings']['confirmations'] ) ) { $settings->form_data['settings']['confirmations'][1]['type'] = ! empty( $settings->form_data['settings']['confirmation_type'] ) ? $settings->form_data['settings']['confirmation_type'] : 'message'; $settings->form_data['settings']['confirmations'][1]['message'] = ! empty( $settings->form_data['settings']['confirmation_message'] ) ? $settings->form_data['settings']['confirmation_message'] : esc_html__( 'Thanks for contacting us! We will be in touch with you shortly.', 'wpforms-lite' ); $settings->form_data['settings']['confirmations'][1]['message_scroll'] = ! empty( $settings->form_data['settings']['confirmation_message_scroll'] ) ? $settings->form_data['settings']['confirmation_message_scroll'] : 1; $settings->form_data['settings']['confirmations'][1]['page'] = ! empty( $settings->form_data['settings']['confirmation_page'] ) ? $settings->form_data['settings']['confirmation_page'] : ''; $settings->form_data['settings']['confirmations'][1]['redirect'] = ! empty( $settings->form_data['settings']['confirmation_redirect'] ) ? $settings->form_data['settings']['confirmation_redirect'] : ''; } $id = 1; echo '
'; esc_html_e( 'Confirmations', 'wpforms-lite' ); echo ''; echo '
'; ?>
form_data, esc_html__( 'Confirmation Type', 'wpforms-lite' ), array( 'default' => 'message', 'options' => array( 'message' => esc_html__( 'Message', 'wpforms-lite' ), 'page' => esc_html__( 'Show Page', 'wpforms-lite' ), 'redirect' => esc_html__( 'Go to URL (Redirect)', 'wpforms-lite' ), ), 'class' => 'wpforms-panel-field-confirmations-type-wrap', 'input_class' => 'wpforms-panel-field-confirmations-type', 'parent' => 'settings', 'subsection' => $id, ) ); wpforms_panel_field( 'textarea', 'confirmations', 'message', $settings->form_data, esc_html__( 'Confirmation Message', 'wpforms-lite' ), array( 'default' => esc_html__( 'Thanks for contacting us! We will be in touch with you shortly.', 'wpforms-lite' ), 'tinymce' => array( 'editor_height' => '200', ), 'input_id' => 'wpforms-panel-field-confirmations-message-' . $id, 'input_class' => 'wpforms-panel-field-confirmations-message', 'parent' => 'settings', 'subsection' => $id, ) ); wpforms_panel_field( 'checkbox', 'confirmations', 'message_scroll', $settings->form_data, esc_html__( 'Automatically scroll to the confirmation message', 'wpforms-lite' ), array( 'input_class' => 'wpforms-panel-field-confirmations-message_scroll', 'parent' => 'settings', 'subsection' => $id, ) ); $p = array(); $pages = get_pages(); foreach ( $pages as $page ) { $depth = count( $page->ancestors ); $p[ $page->ID ] = str_repeat( '-', $depth ) . ' ' . $page->post_title; } wpforms_panel_field( 'select', 'confirmations', 'page', $settings->form_data, esc_html__( 'Confirmation Page', 'wpforms-lite' ), array( 'options' => $p, 'input_class' => 'wpforms-panel-field-confirmations-page', 'parent' => 'settings', 'subsection' => $id, ) ); wpforms_panel_field( 'text', 'confirmations', 'redirect', $settings->form_data, esc_html__( 'Confirmation Redirect URL', 'wpforms-lite' ), array( 'input_class' => 'wpforms-panel-field-confirmations-redirect', 'parent' => 'settings', 'subsection' => $id, ) ); ?>
sprintf( wp_kses( /* translators: %s - WPForms.com docs page URL. */ __( 'You\'ve just turned off notification emails for this form. Since entries are not stored in WPForms Lite, notification emails are recommended for collecting entry details. For setup steps, please see our notification tutorial.', 'wpforms-lite' ), array( 'a' => array( 'href' => array(), 'target' => array(), 'rel' => array(), ), ) ), 'https://wpforms.com/docs/setup-form-notification-wpforms/' ), ); $strings = apply_filters( 'wpforms_lite_builder_strings', $strings ); wp_localize_script( 'wpforms-builder-lite', 'wpforms_builder_lite', $strings ); } /** * Display upgrade notice at the bottom on the plugin settings pages. * * @since 1.4.7 * * @param string $view */ public function settings_cta( $view ) { if ( get_option( 'wpforms_lite_settings_upgrade', false ) || apply_filters( 'wpforms_lite_settings_upgrade', false ) ) { return; } ?>

array( 'class' => array(), 'aria-hidden' => array(), ), ) ), str_repeat( '', 5 ) ); ?>

Bonus: WPForms Lite users get 50% off regular price, automatically applied at checkout.', 'wpforms-lite' ), array( 'strong' => array(), 'span' => array( 'class' => array(), ), ) ); ?>

Entries



and start collecting entries!

10 items of 1

Name Email Comment or Message Date Actions
David Wells DavidMWells@example.com Vivamus sit amet dolor arcu. Praesent fermentum semper justo, nec scelerisq… July 27, 2017 View | Delete
Jennifer Selzer JenniferLSelzer@example.com Maecenas sollicitudin felis et justo elementum, et lobortis justo vulputate… July 27, 2017 View | Delete
Philip Norton PhilipTNorton@example.com Etiam cursus orci tellus, ut vehicula odio mattis sit amet. Curabitur eros … July 27, 2017 View | Delete
Kevin Gregory KevinJGregory@example.com Cras vel orci congue, tincidunt eros vitae, consectetur risus. Proin enim m… July 27, 2017 View | Delete
John Heiden JohnCHeiden@example.com Fusce consequat dui ut orci tempus cursus. Vivamus ut neque id ipsum tempor… July 27, 2017 View | Delete
Laura Shuler LauraDShuler@example.com In ac finibus erat. Curabitur sit amet ante nec tellus commodo commodo non … July 27, 2017 View | Delete
Walter Sullivan WalterPSullivan@example.com Phasellus semper magna leo, ut porta nibh pretium sed. Interdum et malesuad… July 27, 2017 View | Delete
Gary Austin GaryJAustin@example.com Lorem ipsum dolor sit amet, consectetur adipiscing elit. Donec sit amet ero… July 27, 2017 View | Delete
Mark Frahm MarkTFrahm@example.com Proin euismod tellus quis tortor bibendum, a pulvinar libero fringilla. Cur… July 27, 2017 View | Delete
Linda Reynolds LindaJReynolds@example.com Cras sodales sagittis maximus. Nunc vestibulum orci quis orci pulvinar vulp… July 27, 2017 View | Delete
Name Email Comment or Message Date Actions
'ActiveCampaign', 'desc' => 'WPForms ActiveCampaign addon lets you add contacts to your account, record events, add notes to contacts, and more.', 'icon' => 'addon-icon-activecampaign.png', ), array( 'name' => 'Aweber', 'desc' => 'WPForms AWeber addon allows you to create AWeber newsletter signup forms in WordPress, so you can grow your email list.', 'icon' => 'addon-icon-aweber.png', ), array( 'name' => 'Campaign Monitor', 'desc' => 'WPForms Campaign Monitor addon allows you to create Campaign Monitor newsletter signup forms in WordPress, so you can grow your email list.', 'icon' => 'addon-icon-campaign-monitor.png', ), array( 'name' => 'Conversational Forms', 'desc' => 'Want to improve your form completion rate? Conversational Forms addon by WPForms helps make your web forms feel more human, so you can improve your conversions. Interactive web forms made easy.', 'icon' => 'addon-icon-conversational-forms.png', ), array( 'name' => 'Custom Captcha', 'desc' => 'WPForms Custom Captcha addon allows you to define custom questions or use random math questions as captcha to combat spam form submissions.', 'icon' => 'addon-icon-captcha.png', ), array( 'name' => 'Drip', 'desc' => 'WPForms Drip addon allows you to create Drip newsletter signup forms in WordPress, so you can grow your email list.', 'icon' => 'addon-icon-drip.png', ), array( 'name' => 'Form Abandonment', 'desc' => 'Unlock more leads by capturing partial entries from your forms. Easily follow up with interested leads and turn them into loyal customers.', 'icon' => 'addon-icon-form-abandonment.png', ), array( 'name' => 'Form Locker', 'desc' => 'WPForms\' Form Locker addon allows you to lock your WordPress forms with various permissions and access control rules including passwords, members-only, specific date / time, max entry limit, and more.', 'icon' => 'addon-icons-locker.png', ), array( 'name' => 'Form Pages', 'desc' => 'Want to improve your form conversions? WPForms Form Pages addon allows you to create completely custom "distraction-free" form landing pages to boost conversions (without writing any code).', 'icon' => 'addon-icon-form-pages.png', ), array( 'name' => 'Form Templates Pack', 'desc' => 'Choose from a huge variety of pre-built templates for every niche and industry, so you can build all kinds of web forms in minutes, not hours.', 'icon' => 'addon-icon-form-templates-pack.png', ), array( 'name' => 'Geolocation', 'desc' => 'WPForms Geolocation addon allows you to collect and store your website visitors geolocation data along with their form submission.', 'icon' => 'addon-icon-geolocation.png', ), array( 'name' => 'GetResponse', 'desc' => 'WPForms GetResponse addon allows you to create GetResponse newsletter signup forms in WordPress, so you can grow your email list.', 'icon' => 'addon-icon-getresponse.png', ), array( 'name' => 'Mailchimp', 'desc' => 'WPForms Mailchimp addon allows you to create Mailchimp newsletter signup forms in WordPress, so you can grow your email list.', 'icon' => 'addon-icon-mailchimp.png', ), array( 'name' => 'Offline Forms', 'desc' => 'WPForms Offline Forms addon allows you to enable offline mode so users can save their entered data and submit when their internet connection is restored.', 'icon' => 'addon-icon-offline-forms.png', ), array( 'name' => 'PayPal Standard', 'desc' => 'WPForms PayPal addon allows you to connect your WordPress site with PayPal to easily collect payments, donations, and online orders.', 'icon' => 'addon-icon-paypal.png', ), array( 'name' => 'Post Submissions', 'desc' => 'WPForms Post Submissions addon makes it easy to have user-submitted content in WordPress. This front-end post submission form allow your users to submit blog posts without logging into the admin area.', 'icon' => 'addon-icon-post-submissions.png', ), array( 'name' => 'Signatures', 'desc' => 'WPForms Signatures addon makes it easy for users to sign your forms. This WordPress signatures plugin will allow your users to sign contracts and other agreements with their mouse or touch screen.', 'icon' => 'addon-icon-signatures.png', ), array( 'name' => 'Stripe', 'desc' => 'WPForms Stripe addon allows you to connect your WordPress site with Stripe to easily collect payments, donations, and online orders.', 'icon' => 'addon-icon-stripe.png', ), array( 'name' => 'Surveys and Polls', 'desc' => 'WPForms Surveys and Polls allows you easily create surveys forms and analyze the data with interactive reports.', 'icon' => 'addon-icons-surveys-polls.png', ), array( 'name' => 'User Registration', 'desc' => 'WPForms User Registration addon allows you to create custom WordPress user registration forms.', 'icon' => 'addon-icon-user-registration.png', ), array( 'name' => 'Zapier', 'desc' => 'WPForms Zapier addon allows you to connect your WordPress forms with over 500+ web apps. The integration possibilities here are just endless.', 'icon' => 'addon-icon-zapier.png', ), ) ?>

* { vertical-align: middle; } .cont { display: inline-block; position: relative; width: 240px; padding: 5px; background-color: #ffffff; -webkit-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.05); -moz-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.05); box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.05); border-radius: 3px; margin-right: 40px; img { max-width: 100%; display: block; } .hover { position: absolute; opacity: 0; height: 100%; width: 100%; top: 0; left: 0; border: 5px solid #ffffff; background-color: rgba(68, 68, 68, 0.15); background-image: url('../../../assets/images/zoom.svg'); background-repeat: no-repeat; background-position: center; background-size: 50px; transition: all 0.3s; &:focus { box-shadow: none; } } &:hover .hover { opacity: 1; transition: all 0.3s; } span { position: absolute; bottom: -25px; left: 50%; transform: translateX( -50% ); font-size: 14px; color: #777777; white-space: nowrap; } } } .caps { p { margin: 0; } ul { display: inline-block; width: 240px; margin: 20px 40px 0 0; vertical-align: top; li:last-child { margin-bottom: 0; } } li { line-height: 14px; margin: 0 0 22px 0; padding: 0 0 0 30px; background-image: url('../../../assets/images/check-solid.svg'); background-position: left center; background-repeat: no-repeat; background-size: 16px 12px; } } .upgrade { border-bottom: none; } } @media (max-width: 917px) { #wpforms-settings-access { .screenshots { .cont { margin-bottom: 40px; &:last-child { margin-bottom: 0; } } } .caps { ul { margin-bottom: 20px; &:last-child { margin-bottom: 0; } } } } }assets/scss/admin/_education.scss000066600000001735152141020630013124 0ustar00// Education styles. @media screen and (max-width: 1023px) { #wpforms-notice-bar { display: none !important; } } #wpforms-notice-bar { background-color: #DDDDDD; border-top: 3px solid #e27730; color: #777777; text-align: center; position: relative; padding: 7px; margin-bottom: -4px; opacity: 1; transition: all .3s ease-in-out; max-height: 100px; overflow: hidden; &.out { opacity: .5; max-height: 0; } a { color: #e27730; } a:hover { color: #b85a1b; } .dismiss { position: absolute; top: 0; right: 0; border: none; padding: 5px; margin-top: 1px; background: 0 0; color: #72777c; cursor: pointer; } .dismiss:before { background: 0 0; color: #72777c; content: "\f335"; display: block; font: normal 20px/20px dashicons; speak: none; height: 20px; text-align: center; width: 20px; -webkit-font-smoothing: antialiased; } } #screen-meta-links .screen-meta-toggle { position: absolute; right: 20px; top: auto; }assets/scss/admin.scss000066600000000300152141020630010775 0ustar00// WPForms Lite admin styles. // These styles are loaded on all WPForms related admin pages in addition to common admin.css`. @import 'admin/education'; @import 'admin/page-settings-access'; assets/css/admin.css000066600000035513152141020630010445 0ustar00@media screen and (max-width: 1023px) { #wpforms-notice-bar { display: none !important; } } #wpforms-notice-bar { background-color: #DDDDDD; border-top: 3px solid #e27730; color: #777777; text-align: center; position: relative; padding: 7px; margin-bottom: -4px; opacity: 1; transition: all .3s ease-in-out; max-height: 100px; overflow: hidden; } #wpforms-notice-bar.out { opacity: .5; max-height: 0; } #wpforms-notice-bar a { color: #e27730; } #wpforms-notice-bar a:hover { color: #b85a1b; } #wpforms-notice-bar .dismiss { position: absolute; top: 0; right: 0; border: none; padding: 5px; margin-top: 1px; background: 0 0; color: #72777c; cursor: pointer; } #wpforms-notice-bar .dismiss:before { background: 0 0; color: #72777c; content: "\f335"; display: block; font: normal 20px/20px dashicons; speak: none; height: 20px; text-align: center; width: 20px; -webkit-font-smoothing: antialiased; } #screen-meta-links .screen-meta-toggle { position: absolute; right: 20px; top: auto; } .wpforms-admin-settings-access { font-size: 14px; color: #444444; } .wpforms-admin-settings-access .wpforms-setting-row { padding: 30px 0; } .wpforms-admin-settings-access .wpforms-setting-field { margin: 0; max-width: none; } .wpforms-admin-settings-access .heading h4 { font-weight: 600; margin-bottom: 10px; color: #23282D; } .wpforms-admin-settings-access .heading h4 img { margin-left: 10px; } .wpforms-admin-settings-access .heading p { margin: 0; line-height: 20px; letter-spacing: 0; } .wpforms-admin-settings-access .screenshots { padding-bottom: 55px; } .wpforms-admin-settings-access .screenshots > * { vertical-align: middle; } .wpforms-admin-settings-access .screenshots .cont { display: inline-block; position: relative; width: 240px; padding: 5px; background-color: #ffffff; -webkit-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.05); -moz-box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.05); box-shadow: 0px 2px 5px 0px rgba(0, 0, 0, 0.05); border-radius: 3px; margin-right: 40px; } .wpforms-admin-settings-access .screenshots .cont img { max-width: 100%; display: block; } .wpforms-admin-settings-access .screenshots .cont .hover { position: absolute; opacity: 0; height: 100%; width: 100%; top: 0; left: 0; border: 5px solid #ffffff; background-color: rgba(68, 68, 68, 0.15); background-image: url("../../../assets/images/zoom.svg"); background-repeat: no-repeat; background-position: center; background-size: 50px; transition: all 0.3s; } .wpforms-admin-settings-access .screenshots .cont .hover:focus { box-shadow: none; } .wpforms-admin-settings-access .screenshots .cont:hover .hover { opacity: 1; transition: all 0.3s; } .wpforms-admin-settings-access .screenshots .cont span { position: absolute; bottom: -25px; left: 50%; transform: translateX(-50%); font-size: 14px; color: #777777; white-space: nowrap; } .wpforms-admin-settings-access .caps p { margin: 0; } .wpforms-admin-settings-access .caps ul { display: inline-block; width: 240px; margin: 20px 40px 0 0; vertical-align: top; } .wpforms-admin-settings-access .caps ul li:last-child { margin-bottom: 0; } .wpforms-admin-settings-access .caps li { line-height: 14px; margin: 0 0 22px 0; padding: 0 0 0 30px; background-image: url("../../../assets/images/check-solid.svg"); background-position: left center; background-repeat: no-repeat; background-size: 16px 12px; } .wpforms-admin-settings-access .upgrade { border-bottom: none; } @media (max-width: 917px) { #wpforms-settings-access .screenshots .cont { margin-bottom: 40px; } #wpforms-settings-access .screenshots .cont:last-child { margin-bottom: 0; } #wpforms-settings-access .caps ul { margin-bottom: 20px; } #wpforms-settings-access .caps ul:last-child { margin-bottom: 0; } } /*# sourceMappingURL=data:application/json;charset=utf8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGl0ZS9hc3NldHMvY3NzL2FkbWluLmNzcyIsInNvdXJjZXMiOlsibGl0ZS9hc3NldHMvc2Nzcy9hZG1pbi5zY3NzIiwibGl0ZS9hc3NldHMvc2Nzcy9hZG1pbi9fZWR1Y2F0aW9uLnNjc3MiLCJsaXRlL2Fzc2V0cy9zY3NzL2FkbWluL19wYWdlLXNldHRpbmdzLWFjY2Vzcy5zY3NzIl0sInNvdXJjZXNDb250ZW50IjpbIi8vIFdQRm9ybXMgTGl0ZSBhZG1pbiBzdHlsZXMuXG4vLyBUaGVzZSBzdHlsZXMgYXJlIGxvYWRlZCBvbiBhbGwgV1BGb3JtcyByZWxhdGVkIGFkbWluIHBhZ2VzIGluIGFkZGl0aW9uIHRvIGNvbW1vbiBhZG1pbi5jc3NgLlxuXG5AaW1wb3J0ICdhZG1pbi9lZHVjYXRpb24nO1xuQGltcG9ydCAnYWRtaW4vcGFnZS1zZXR0aW5ncy1hY2Nlc3MnO1xuIiwiLy8gRWR1Y2F0aW9uIHN0eWxlcy5cblxuQG1lZGlhIHNjcmVlbiBhbmQgKG1heC13aWR0aDogMTAyM3B4KSB7XG5cdCN3cGZvcm1zLW5vdGljZS1iYXIge1xuXHRcdGRpc3BsYXk6IG5vbmUgIWltcG9ydGFudDtcblx0fVxufVxuXG4jd3Bmb3Jtcy1ub3RpY2UtYmFyIHtcblxuXHRiYWNrZ3JvdW5kLWNvbG9yOiAjREREREREO1xuXHRib3JkZXItdG9wOiAzcHggc29saWQgI2UyNzczMDtcblx0Y29sb3I6ICM3Nzc3Nzc7XG5cdHRleHQtYWxpZ246IGNlbnRlcjtcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRwYWRkaW5nOiA3cHg7XG5cdG1hcmdpbi1ib3R0b206IC00cHg7XG5cdG9wYWNpdHk6IDE7XG5cdHRyYW5zaXRpb246IGFsbCAuM3MgZWFzZS1pbi1vdXQ7XG5cdG1heC1oZWlnaHQ6IDEwMHB4O1xuXHRvdmVyZmxvdzogaGlkZGVuO1xuXG5cdCYub3V0IHtcblx0XHRvcGFjaXR5OiAuNTtcblx0XHRtYXgtaGVpZ2h0OiAwO1xuXHR9XG5cblx0YSB7XG5cdFx0Y29sb3I6ICNlMjc3MzA7XG5cdH1cblxuXHRhOmhvdmVyIHtcblx0XHRjb2xvcjogI2I4NWExYjtcblx0fVxuXG5cdC5kaXNtaXNzIHtcblx0XHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdFx0dG9wOiAwO1xuXHRcdHJpZ2h0OiAwO1xuXHRcdGJvcmRlcjogbm9uZTtcblx0XHRwYWRkaW5nOiA1cHg7XG5cdFx0bWFyZ2luLXRvcDogMXB4O1xuXHRcdGJhY2tncm91bmQ6IDAgMDtcblx0XHRjb2xvcjogIzcyNzc3Yztcblx0XHRjdXJzb3I6IHBvaW50ZXI7XG5cdH1cblxuXHQuZGlzbWlzczpiZWZvcmUge1xuXHRcdGJhY2tncm91bmQ6IDAgMDtcblx0XHRjb2xvcjogIzcyNzc3Yztcblx0XHRjb250ZW50OiBcIlxcZjMzNVwiO1xuXHRcdGRpc3BsYXk6IGJsb2NrO1xuXHRcdGZvbnQ6IG5vcm1hbCAyMHB4LzIwcHggZGFzaGljb25zO1xuXHRcdHNwZWFrOiBub25lO1xuXHRcdGhlaWdodDogMjBweDtcblx0XHR0ZXh0LWFsaWduOiBjZW50ZXI7XG5cdFx0d2lkdGg6IDIwcHg7XG5cdFx0LXdlYmtpdC1mb250LXNtb290aGluZzogYW50aWFsaWFzZWQ7XG5cdH1cbn1cblxuI3NjcmVlbi1tZXRhLWxpbmtzIC5zY3JlZW4tbWV0YS10b2dnbGUge1xuXHRwb3NpdGlvbjogYWJzb2x1dGU7XG5cdHJpZ2h0OiAyMHB4O1xuXHR0b3A6IGF1dG87XG59IiwiLy8gU2V0dGluZ3MgQWNjZXNzIHRhYiBzdHlsZXMuXG5cbi53cGZvcm1zLWFkbWluLXNldHRpbmdzLWFjY2VzcyB7XG5cblx0Zm9udC1zaXplOiAxNHB4O1xuXHRjb2xvcjogIzQ0NDQ0NDtcblxuXHQud3Bmb3Jtcy1zZXR0aW5nLXJvdyB7XG5cdFx0cGFkZGluZzogMzBweCAwO1xuXHR9XG5cblx0LndwZm9ybXMtc2V0dGluZy1maWVsZCB7XG5cdFx0bWFyZ2luOiAwO1xuXHRcdG1heC13aWR0aDogbm9uZTtcblx0fVxuXG5cdC5oZWFkaW5nIHtcblx0XHRoNCB7XG5cdFx0XHRmb250LXdlaWdodDogNjAwO1xuXHRcdFx0bWFyZ2luLWJvdHRvbTogMTBweDtcblx0XHRcdGNvbG9yOiAjMjMyODJEO1xuXG5cdFx0XHRpbWcge1xuXHRcdFx0XHRtYXJnaW4tbGVmdDogMTBweDtcblx0XHRcdH1cblxuXHRcdH1cblxuXHRcdHAge1xuXHRcdFx0bWFyZ2luOiAwO1xuXHRcdFx0bGluZS1oZWlnaHQ6IDIwcHg7XG5cdFx0XHRsZXR0ZXItc3BhY2luZzogMDtcblx0XHR9XG5cdH1cblxuXHQuc2NyZWVuc2hvdHMge1xuXHRcdHBhZGRpbmctYm90dG9tOiA1NXB4O1xuXG5cdFx0JiA+ICoge1xuXHRcdFx0dmVydGljYWwtYWxpZ246IG1pZGRsZTtcblx0XHR9XG5cblx0XHQuY29udCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHRwb3NpdGlvbjogcmVsYXRpdmU7XG5cdFx0XHR3aWR0aDogMjQwcHg7XG5cdFx0XHRwYWRkaW5nOiA1cHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWNvbG9yOiAjZmZmZmZmO1xuXHRcdFx0LXdlYmtpdC1ib3gtc2hhZG93OiAwcHggMnB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcblx0XHRcdC1tb3otYm94LXNoYWRvdzogMHB4IDJweCA1cHggMHB4IHJnYmEoMCwgMCwgMCwgMC4wNSk7XG5cdFx0XHRib3gtc2hhZG93OiAwcHggMnB4IDVweCAwcHggcmdiYSgwLCAwLCAwLCAwLjA1KTtcblx0XHRcdGJvcmRlci1yYWRpdXM6IDNweDtcblx0XHRcdG1hcmdpbi1yaWdodDogNDBweDtcblxuXHRcdFx0aW1nIHtcblx0XHRcdFx0bWF4LXdpZHRoOiAxMDAlO1xuXHRcdFx0XHRkaXNwbGF5OiBibG9jaztcblx0XHRcdH1cblxuXHRcdFx0LmhvdmVyIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRvcGFjaXR5OiAwO1xuXHRcdFx0XHRoZWlnaHQ6IDEwMCU7XG5cdFx0XHRcdHdpZHRoOiAxMDAlO1xuXHRcdFx0XHR0b3A6IDA7XG5cdFx0XHRcdGxlZnQ6IDA7XG5cdFx0XHRcdGJvcmRlcjogNXB4IHNvbGlkICNmZmZmZmY7XG5cdFx0XHRcdGJhY2tncm91bmQtY29sb3I6IHJnYmEoNjgsIDY4LCA2OCwgMC4xNSk7XG5cdFx0XHRcdGJhY2tncm91bmQtaW1hZ2U6IHVybCgnLi4vLi4vLi4vYXNzZXRzL2ltYWdlcy96b29tLnN2ZycpO1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXJlcGVhdDogbm8tcmVwZWF0O1xuXHRcdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBjZW50ZXI7XG5cdFx0XHRcdGJhY2tncm91bmQtc2l6ZTogNTBweDtcblx0XHRcdFx0dHJhbnNpdGlvbjogYWxsIDAuM3M7XG5cblx0XHRcdFx0Jjpmb2N1cyB7XG5cdFx0XHRcdFx0Ym94LXNoYWRvdzogbm9uZTtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXG5cdFx0XHQmOmhvdmVyIC5ob3ZlciB7XG5cdFx0XHRcdG9wYWNpdHk6IDE7XG5cdFx0XHRcdHRyYW5zaXRpb246IGFsbCAwLjNzO1xuXHRcdFx0fVxuXG5cdFx0XHRzcGFuIHtcblx0XHRcdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdFx0XHRib3R0b206IC0yNXB4O1xuXHRcdFx0XHRsZWZ0OiA1MCU7XG5cdFx0XHRcdHRyYW5zZm9ybTogdHJhbnNsYXRlWCggLTUwJSApO1xuXHRcdFx0XHRmb250LXNpemU6IDE0cHg7XG5cdFx0XHRcdGNvbG9yOiAjNzc3Nzc3O1xuXHRcdFx0XHR3aGl0ZS1zcGFjZTogbm93cmFwO1xuXHRcdFx0fVxuXHRcdH1cblx0fVxuXG5cdC5jYXBzIHtcblx0XHRwIHtcblx0XHRcdG1hcmdpbjogMDtcblx0XHR9XG5cblx0XHR1bCB7XG5cdFx0XHRkaXNwbGF5OiBpbmxpbmUtYmxvY2s7XG5cdFx0XHR3aWR0aDogMjQwcHg7XG5cdFx0XHRtYXJnaW46IDIwcHggNDBweCAwIDA7XG5cdFx0XHR2ZXJ0aWNhbC1hbGlnbjogdG9wO1xuXG5cdFx0XHRsaTpsYXN0LWNoaWxkIHtcblx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdH1cblx0XHR9XG5cblx0XHRsaSB7XG5cdFx0XHRsaW5lLWhlaWdodDogMTRweDtcblx0XHRcdG1hcmdpbjogMCAwIDIycHggMDtcblx0XHRcdHBhZGRpbmc6IDAgMCAwIDMwcHg7XG5cdFx0XHRiYWNrZ3JvdW5kLWltYWdlOiB1cmwoJy4uLy4uLy4uL2Fzc2V0cy9pbWFnZXMvY2hlY2stc29saWQuc3ZnJyk7XG5cdFx0XHRiYWNrZ3JvdW5kLXBvc2l0aW9uOiBsZWZ0IGNlbnRlcjtcblx0XHRcdGJhY2tncm91bmQtcmVwZWF0OiBuby1yZXBlYXQ7XG5cdFx0XHRiYWNrZ3JvdW5kLXNpemU6IDE2cHggMTJweDtcblx0XHR9XG5cdH1cblxuXHQudXBncmFkZSB7XG5cdFx0Ym9yZGVyLWJvdHRvbTogbm9uZTtcblx0fVxufVxuXG5AbWVkaWEgKG1heC13aWR0aDogOTE3cHgpIHtcblx0I3dwZm9ybXMtc2V0dGluZ3MtYWNjZXNzIHtcblxuXHRcdC5zY3JlZW5zaG90cyB7XG5cdFx0XHQuY29udCB7XG5cdFx0XHRcdG1hcmdpbi1ib3R0b206IDQwcHg7XG5cblx0XHRcdFx0JjpsYXN0LWNoaWxkIHtcblx0XHRcdFx0XHRtYXJnaW4tYm90dG9tOiAwO1xuXHRcdFx0XHR9XG5cdFx0XHR9XG5cdFx0fVxuXG5cdFx0LmNhcHMge1xuXHRcdFx0dWwge1xuXHRcdFx0XHRtYXJnaW4tYm90dG9tOiAyMHB4O1xuXG5cdFx0XHRcdCY6bGFzdC1jaGlsZCB7XG5cdFx0XHRcdFx0bWFyZ2luLWJvdHRvbTogMDtcblx0XHRcdFx0fVxuXHRcdFx0fVxuXHRcdH1cblx0fVxufSJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUNFQSxNQUFNLENBQUMsTUFBTSxNQUFNLFNBQVMsRUFBRSxNQUFNO0VBQ25DLEFBQUEsbUJBQW1CLENBQUM7SUFDbkIsT0FBTyxFQUFFLGVBQWU7R0FDeEI7OztBQUdGLEFBQUEsbUJBQW1CLENBQUM7RUFFbkIsZ0JBQWdC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 */ assets/css/admin.min.css000066600000006413152141020630011224 0ustar00@media screen and (max-width: 1023px){#wpforms-notice-bar{display:none !important}}#wpforms-notice-bar{background-color:#DDDDDD;border-top:3px solid #e27730;color:#777777;text-align:center;position:relative;padding:7px;margin-bottom:-4px;opacity:1;transition:all .3s ease-in-out;max-height:100px;overflow:hidden}#wpforms-notice-bar.out{opacity:.5;max-height:0}#wpforms-notice-bar a{color:#e27730}#wpforms-notice-bar a:hover{color:#b85a1b}#wpforms-notice-bar .dismiss{position:absolute;top:0;right:0;border:none;padding:5px;margin-top:1px;background:0 0;color:#72777c;cursor:pointer}#wpforms-notice-bar .dismiss:before{background:0 0;color:#72777c;content:"\f335";display:block;font:normal 20px/20px dashicons;speak:none;height:20px;text-align:center;width:20px;-webkit-font-smoothing:antialiased}#screen-meta-links .screen-meta-toggle{position:absolute;right:20px;top:auto}.wpforms-admin-settings-access{font-size:14px;color:#444444}.wpforms-admin-settings-access .wpforms-setting-row{padding:30px 0}.wpforms-admin-settings-access .wpforms-setting-field{margin:0;max-width:none}.wpforms-admin-settings-access .heading h4{font-weight:600;margin-bottom:10px;color:#23282D}.wpforms-admin-settings-access .heading h4 img{margin-left:10px}.wpforms-admin-settings-access .heading p{margin:0;line-height:20px;letter-spacing:0}.wpforms-admin-settings-access .screenshots{padding-bottom:55px}.wpforms-admin-settings-access .screenshots>*{vertical-align:middle}.wpforms-admin-settings-access .screenshots .cont{display:inline-block;position:relative;width:240px;padding:5px;background-color:#ffffff;-webkit-box-shadow:0px 2px 5px 0px rgba(0,0,0,0.05);-moz-box-shadow:0px 2px 5px 0px rgba(0,0,0,0.05);box-shadow:0px 2px 5px 0px rgba(0,0,0,0.05);border-radius:3px;margin-right:40px}.wpforms-admin-settings-access .screenshots .cont img{max-width:100%;display:block}.wpforms-admin-settings-access .screenshots .cont .hover{position:absolute;opacity:0;height:100%;width:100%;top:0;left:0;border:5px solid #ffffff;background-color:rgba(68,68,68,0.15);background-image:url("../../../assets/images/zoom.svg");background-repeat:no-repeat;background-position:center;background-size:50px;transition:all 0.3s}.wpforms-admin-settings-access .screenshots .cont .hover:focus{box-shadow:none}.wpforms-admin-settings-access .screenshots .cont:hover .hover{opacity:1;transition:all 0.3s}.wpforms-admin-settings-access .screenshots .cont span{position:absolute;bottom:-25px;left:50%;transform:translateX(-50%);font-size:14px;color:#777777;white-space:nowrap}.wpforms-admin-settings-access .caps p{margin:0}.wpforms-admin-settings-access .caps ul{display:inline-block;width:240px;margin:20px 40px 0 0;vertical-align:top}.wpforms-admin-settings-access .caps ul li:last-child{margin-bottom:0}.wpforms-admin-settings-access .caps li{line-height:14px;margin:0 0 22px 0;padding:0 0 0 30px;background-image:url("../../../assets/images/check-solid.svg");background-position:left center;background-repeat:no-repeat;background-size:16px 12px}.wpforms-admin-settings-access .upgrade{border-bottom:none}@media (max-width: 917px){#wpforms-settings-access .screenshots .cont{margin-bottom:40px}#wpforms-settings-access .screenshots .cont:last-child{margin-bottom:0}#wpforms-settings-access .caps ul{margin-bottom:20px}#wpforms-settings-access .caps ul:last-child{margin-bottom:0}} assets/js/admin-builder-lite.js000066600000002643152141020630012472 0ustar00/* globals wpforms_builder_lite, wpforms_builder */ 'use strict'; ( function( $ ) { var WPFormsBuilderLite = { /** * Start the engine. * * @since 1.0.0 */ init: function() { // Document ready $( document ).ready( function() { WPFormsBuilderLite.ready(); } ); WPFormsBuilderLite.bindUIActions(); }, /** * Document ready. * * @since 1.0.0 */ ready: function() { }, /** * Element bindings. * * @since 1.0.0 */ bindUIActions: function() { // Warn users if they disable email notifications. $( document ).on( 'change', '#wpforms-panel-field-settings-notification_enable', function() { WPFormsBuilderLite.formBuilderNotificationAlert( $( this ).val() ); } ); }, /** * Warn users if they disable email notifications. * * @since 1.5.0 * * @param {string} value Whether notifications enabled or not. 0 is disabled, 1 is enabled. */ formBuilderNotificationAlert: function( value ) { if ( '0' !== value ) { return; } $.alert( { title: wpforms_builder.heads_up, content: wpforms_builder_lite.disable_notifications, backgroundDismiss: false, closeIcon: false, icon: 'fa fa-exclamation-circle', type: 'orange', buttons: { confirm: { text: wpforms_builder.ok, btnClass: 'btn-confirm', keys: [ 'enter' ] } } } ); } }; WPFormsBuilderLite.init(); }( jQuery ) ); assets/js/admin/connect.min.js000066600000002703152141020630012323 0ustar00"use strict";var WPFormsConnect=window.WPFormsConnect||function(n,e,t){var o={$connectBtn:t("#wpforms-settings-connect-btn"),$connectKey:t("#wpforms-settings-upgrade-license-key")},r={init:function(){t(n).ready(r.ready)},ready:function(){r.events()},events:function(){r.connectBtnClick()},connectBtnClick:function(){o.$connectBtn.on("click",function(){r.gotoUpgradeUrl()})},proAlreadyInstalled:function(n){var t={confirm:{text:wpforms_admin.plugin_activate_btn,btnClass:"btn-confirm",keys:["enter"],action:function(){e.location=e.location}}};return{title:wpforms_admin.almost_done,content:n.data.message,icon:"fa fa-check-circle",type:"green",buttons:t}},gotoUpgradeUrl:function(){var n={action:"wpforms_connect_url",key:o.$connectKey.val(),nonce:wpforms_admin.nonce};t.post(wpforms_admin.ajax_url,n).done(function(n){if(n.success)return n.data.reload?void t.alert(r.proAlreadyInstalled(n)):void(e.location.href=n.data.url);t.alert({title:wpforms_admin.oops,content:n.data.message,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}).fail(function(n){r.failAlert(n)})},failAlert:function(n){t.alert({title:wpforms_admin.oops,content:wpforms_admin.server_error+"
"+n.status+" "+n.statusText+" "+n.responseText,icon:"fa fa-exclamation-circle",type:"orange",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}};return r}(document,window,jQuery);WPFormsConnect.init();assets/js/admin/settings-education.min.js000066600000002467152141020630014512 0ustar00"use strict";var WPFormsSettingsEducation=window.WPFormsSettingsEducation||function(n,i,a){var e={init:function(){a(n).ready(e.ready)},ready:function(){e.events()},events:function(){e.clickEvents()},clickEvents:function(){a(n).on("click",".wpforms-settings-provider.education-modal",function(n){var t=a(this);n.preventDefault(),n.stopImmediatePropagation(),e.upgradeModal(t.data("name"),t.data("license"))})},upgradeModal:function(n,t){if(void 0!==t&&0!==t.length||(t="pro"),!(a.inArray(t,["pro","elite"])<0)){var e=wpforms_admin.upgrade[t].message.replace(/%name%/g,n),o=encodeURI(wpforms_admin.upgrade[t].url+"&utm_content="+n.trim());a.alert({title:n+" "+wpforms_admin.upgrade[t].title,icon:"fa fa-lock",content:e,boxWidth:"550px",onOpenBefore:function(){this.$btnc.after('
'+wpforms_admin.upgrade[t].bonus+wpforms_admin.upgrade[t].doc+"
"),this.$body.find(".jconfirm-content").addClass("lite-upgrade")},buttons:{confirm:{text:wpforms_admin.upgrade[t].button,btnClass:"btn-confirm",keys:["enter"],action:function(){i.open(o,"_blank"),a.alert({title:!1,content:wpforms_admin.upgrade[t].modal,icon:"fa fa-info-circle",type:"blue",boxWidth:"565px",buttons:{confirm:{text:wpforms_admin.ok,btnClass:"btn-confirm",keys:["enter"]}}})}}}})}}};return e}(document,window,jQuery);WPFormsSettingsEducation.init();assets/js/admin/builder-education.min.js000066600000003575152141020630014301 0ustar00"use strict";var WPFormsBuilderEducation=window.WPFormsBuilderEducation||function(e,n,r){var o={init:function(){r(e).ready(o.ready)},ready:function(){o.events()},events:function(){o.clickEvents()},clickEvents:function(){r(e).on("click",".wpforms-add-fields-button, .wpforms-panel-sidebar-section, .wpforms-builder-settings-block-add, .wpforms-field-option-group-toggle",function(e){var t=r(this);t.hasClass("upgrade-modal")&&(e.preventDefault(),e.stopImmediatePropagation(),t.hasClass("wpforms-add-fields-button")?o.upgradeModal(t.text()+" "+wpforms_builder.field,t.data("license")):o.upgradeModal(t.data("name"),t.data("license")))}),r(".wpforms-dyk").on("click",".dismiss",function(e){var t=r(this),o=t.closest(".wpforms-dyk"),i={action:"wpforms_dyk_dismiss",nonce:wpforms_builder.nonce,section:t.attr("data-section")};o.find(".wpforms-dyk-fbox").addClass("out"),setTimeout(function(){o.remove()},300),r.get(wpforms_builder.ajax_url,i)})},upgradeModal:function(e,t){if(void 0!==t&&0!==t.length||(t="pro"),!(r.inArray(t,["pro","elite"])<0)){var o=wpforms_builder_lite.upgrade[t].message.replace(/%name%/g,e),i=encodeURI(wpforms_builder_lite.upgrade[t].url+"&utm_content="+e.trim());r.alert({title:e+" "+wpforms_builder_lite.upgrade[t].title,icon:"fa fa-lock",content:o,boxWidth:"550px",onOpenBefore:function(){this.$btnc.after('
'+wpforms_builder_lite.upgrade[t].bonus+wpforms_builder_lite.upgrade[t].doc+"
"),this.$body.find(".jconfirm-content").addClass("lite-upgrade")},buttons:{confirm:{text:wpforms_builder_lite.upgrade[t].button,btnClass:"btn-confirm",keys:["enter"],action:function(){n.open(i,"_blank"),r.alert({title:!1,content:wpforms_builder_lite.upgrade[t].modal,icon:"fa fa-info-circle",type:"blue",boxWidth:"565px",buttons:{confirm:{text:wpforms_builder.ok,btnClass:"btn-confirm",keys:["enter"]}}})}}}})}}};return o}(document,window,jQuery);WPFormsBuilderEducation.init();assets/js/admin/settings-education.js000066600000005421152141020630013721 0ustar00/* globals wpforms_admin */ /** * WPForms Settings Education function. * * @since 1.5.5 */ 'use strict'; var WPFormsSettingsEducation = window.WPFormsSettingsEducation || ( function( document, window, $ ) { /** * Public functions and properties. * * @since 1.5.5 * * @type {object} */ var app = { /** * Start the engine. * * @since 1.5.5 */ init: function() { $( document ).ready( app.ready ); }, /** * Document ready. * * @since 1.5.5 */ ready: function() { app.events(); }, /** * Register JS events. * * @since 1.5.5 */ events: function() { app.clickEvents(); }, /** * Registers JS click events. * * @since 1.5.5 */ clickEvents: function() { $( document ).on( 'click', '.wpforms-settings-provider.education-modal', function( event ) { var $this = $( this ); event.preventDefault(); event.stopImmediatePropagation(); app.upgradeModal( $this.data( 'name' ), $this.data( 'license' ) ); } ); }, /** * Upgrade modal. * * @since 1.5.5 * * @param {string} feature Feature name. * @param {string} type License type. */ upgradeModal: function( feature, type ) { // Provide a default value. if ( typeof type === 'undefined' || type.length === 0 ) { type = 'pro'; } // Make sure we received only supported type. if ( $.inArray( type, [ 'pro', 'elite' ] ) < 0 ) { return; } var message = wpforms_admin.upgrade[type].message.replace( /%name%/g, feature ), upgradeURL = encodeURI( wpforms_admin.upgrade[type].url + '&utm_content=' + feature.trim() ); $.alert( { title : feature + ' ' + wpforms_admin.upgrade[type].title, icon : 'fa fa-lock', content : message, boxWidth: '550px', onOpenBefore: function() { this.$btnc.after( '
' + wpforms_admin.upgrade[type].bonus + wpforms_admin.upgrade[type].doc + '
' ); this.$body.find( '.jconfirm-content' ).addClass( 'lite-upgrade' ); }, buttons : { confirm: { text : wpforms_admin.upgrade[type].button, btnClass: 'btn-confirm', keys : [ 'enter' ], action: function() { window.open( upgradeURL, '_blank' ); $.alert( { title : false, content : wpforms_admin.upgrade[type].modal, icon : 'fa fa-info-circle', type : 'blue', boxWidth: '565px', buttons : { confirm: { text : wpforms_admin.ok, btnClass: 'btn-confirm', keys : [ 'enter' ], }, }, } ); }, }, }, } ); }, }; // Provide access to public functions/properties. return app; }( document, window, jQuery ) ); // Initialize. WPFormsSettingsEducation.init(); assets/js/admin/education.min.js000066600000001004152141020630012636 0ustar00"use strict";var WPFormsAdminEducation=window.WPFormsAdminEducation||function(n,e){var i={init:function(){e(n).ready(i.ready)},ready:function(){i.events()},events:function(){e("#wpforms-notice-bar").on("click",".dismiss",function(n){var i=e(this),o=i.closest("#wpforms-notice-bar"),t={action:"wpforms_notice_bar_dismiss",nonce:wpforms_admin.nonce,page:i.attr("data-page")};o.addClass("out"),setTimeout(function(){o.remove()},300),e.get(ajaxurl,t)})}};return i}(document,(window,jQuery));WPFormsAdminEducation.init();assets/js/admin/dashboard-widget.min.js000066600000004140152141020630014077 0ustar00"use strict";var WPFormsDashboardWidget=window.WPFormsDashboardWidget||function(t,a){var e={$widget:a("#wpforms_reports_widget_lite"),$canvas:a("#wpforms-dash-widget-chart")},s={instance:null,settings:{type:"line",data:{labels:[],datasets:[{label:wpforms_dashboard_widget.i18n.entries,data:[],backgroundColor:"rgba(255, 129, 0, 0.135)",borderColor:"rgba(211, 126, 71, 1)",borderWidth:2,pointRadius:4,pointBorderWidth:1,pointBackgroundColor:"rgba(255, 255, 255, 1)"}]},options:{scales:{xAxes:[{type:"time",time:{unit:"day"},distribution:"series",ticks:{beginAtZero:!0,source:"labels",padding:10,minRotation:25,maxRotation:25,callback:function(t,a,e){var s=Math.floor(e.length/7);return s<1||(e.length-a-1)%s==0?t:void 0}}}],yAxes:[{ticks:{beginAtZero:!0,maxTicksLimit:6,padding:20,callback:function(t){if(Math.floor(t)===t)return t}}}]},elements:{line:{tension:0}},animation:{duration:0},hover:{animationDuration:0},legend:{display:!1},tooltips:{displayColors:!1},responsiveAnimationDuration:0}},init:function(){var t;e.$canvas.length&&(t=e.$canvas[0].getContext("2d"),s.instance=new Chart(t,s.settings),s.updateUI())},updateUI:function(){s.updateWithDummyData(),s.instance.data.labels=s.settings.data.labels,s.instance.data.datasets[0].data=s.settings.data.datasets[0].data,s.instance.update()},updateWithDummyData:function(){var t,a,e=moment().endOf("day");for(a=1;a<=7;a++)t=e.clone().subtract(a,"days"),s.settings.data.labels.push(t),s.settings.data.datasets[0].data.push({t:t,y:Math.floor(16*Math.random())+5})}},i={init:function(){a(t).ready(i.ready)},ready:function(){s.init(),i.events()},events:function(){i.formsListEvents()},formsListEvents:function(){e.$widget.on("click","#wpforms-dash-widget-forms-more",function(){i.toggleCompleteFormsList()})},toggleCompleteFormsList:function(){a("#wpforms-dash-widget-forms-list-table .wpforms-dash-widget-forms-list-hidden-el").toggle(),a("#wpforms-dash-widget-forms-more").html(function(t,a){return a===wpforms_dashboard_widget.show_less_html?wpforms_dashboard_widget.show_more_html:wpforms_dashboard_widget.show_less_html})}};return i}(document,(window,jQuery));WPFormsDashboardWidget.init();assets/js/admin/connect.js000066600000006135152141020630011544 0ustar00/* globals wpforms_admin, wpforms_connect */ /** * Connect functionality. * * @since 1.5.4 */ 'use strict'; var WPFormsConnect = window.WPFormsConnect || ( function( document, window, $ ) { /** * Elements reference. * * @since 1.5.5 * * @type {Object} */ var el = { $connectBtn: $( '#wpforms-settings-connect-btn' ), $connectKey: $( '#wpforms-settings-upgrade-license-key' ) }; /** * Public functions and properties. * * @since 1.5.5 * * @type {Object} */ var app = { /** * Start the engine. * * @since 1.5.5 */ init: function() { $( document ).ready( app.ready ); }, /** * Document ready. * * @since 1.5.5 */ ready: function() { app.events(); }, /** * Register JS events. * * @since 1.5.5 */ events: function() { app.connectBtnClick(); }, /** * Register connect button event. * * @since 1.5.5 */ connectBtnClick: function() { el.$connectBtn.on( 'click', function() { app.gotoUpgradeUrl(); } ); }, /** * Get the alert arguments in case of Pro already installed. * * @since 1.5.5 * * @param {object} res Ajax query result object. * * @returns {object} Alert arguments. */ proAlreadyInstalled: function( res ) { var buttons = { confirm: { text: wpforms_admin.plugin_activate_btn, btnClass: 'btn-confirm', keys: [ 'enter' ], action: function() { window.location = window.location; }, }, }; return { title: wpforms_admin.almost_done, content: res.data.message, icon: 'fa fa-check-circle', type: 'green', buttons: buttons, }; }, /** * Go to upgrade url. * * @since 1.5.5 */ gotoUpgradeUrl: function() { var data = { action: 'wpforms_connect_url', key: el.$connectKey.val(), nonce: wpforms_admin.nonce, }; $.post( wpforms_admin.ajax_url, data ) .done( function( res ) { if ( res.success ) { if ( res.data.reload ) { $.alert( app.proAlreadyInstalled( res ) ); return; } window.location.href = res.data.url; return; } $.alert( { title: wpforms_admin.oops, content: res.data.message, icon: 'fa fa-exclamation-circle', type: 'orange', buttons: { confirm: { text: wpforms_admin.ok, btnClass: 'btn-confirm', keys: [ 'enter' ], }, }, } ); } ) .fail( function( xhr ) { app.failAlert( xhr ); } ); }, /** * Alert in case of server error. * * @since 1.5.5 * * @param {object} xhr XHR object. */ failAlert: function( xhr ) { $.alert( { title: wpforms_admin.oops, content: wpforms_admin.server_error + '
' + xhr.status + ' ' + xhr.statusText + ' ' + xhr.responseText, icon: 'fa fa-exclamation-circle', type: 'orange', buttons: { confirm: { text: wpforms_admin.ok, btnClass: 'btn-confirm', keys: [ 'enter' ], }, }, } ); }, }; // Provide access to public functions/properties. return app; }( document, window, jQuery ) ); // Initialize. WPFormsConnect.init(); assets/js/admin/education.js000066600000002302152141020630012056 0ustar00/* globals ajaxurl, wpforms_admin */ /** * WPForms Admin Education module. * * @since 1.5.7 */ 'use strict'; var WPFormsAdminEducation = window.WPFormsAdminEducation || ( function( document, window, $ ) { /** * Public functions and properties. * * @since 1.5.7 * * @type {object} */ var app = { /** * Start the engine. * * @since 1.5.7 */ init: function() { $( document ).ready( app.ready ); }, /** * Document ready. * * @since 1.5.7 */ ready: function() { app.events(); }, /** * Register JS events. * * @since 1.5.7 */ events: function() { // Notice bar: click on the dissmiss button. $( '#wpforms-notice-bar' ).on( 'click', '.dismiss', function( e ) { var $btn = $( this ), $notice = $btn.closest( '#wpforms-notice-bar' ), data = { action: 'wpforms_notice_bar_dismiss', nonce: wpforms_admin.nonce, page: $btn.attr( 'data-page' ), }; $notice.addClass( 'out' ); setTimeout( function() { $notice.remove(); }, 300 ); $.get( ajaxurl, data ); } ); }, }; return app; }( document, window, jQuery ) ); // Initialize. WPFormsAdminEducation.init(); assets/js/admin/builder-education.js000066600000007267152141020630013521 0ustar00/* globals wpforms_builder_lite, wpforms_builder */ /** * WPForms Form Builder Education function. * * @since 1.5.1 */ 'use strict'; var WPFormsBuilderEducation = window.WPFormsBuilderEducation || ( function( document, window, $ ) { /** * Public functions and properties. * * @since 1.5.1 * * @type {object} */ var app = { /** * Start the engine. * * @since 1.5.1 */ init: function() { $( document ).ready( app.ready ); }, /** * Document ready. * * @since 1.5.1 */ ready: function() { app.events(); }, /** * Register JS events. * * @since 1.5.1 */ events: function() { app.clickEvents(); }, /** * Registers JS click events. * * @since 1.5.1 */ clickEvents: function() { $( document ).on( 'click', '.wpforms-add-fields-button, .wpforms-panel-sidebar-section, .wpforms-builder-settings-block-add, .wpforms-field-option-group-toggle', function( event ) { var $this = $( this ); if ( $this.hasClass( 'upgrade-modal' ) ) { event.preventDefault(); event.stopImmediatePropagation(); if ( $this.hasClass( 'wpforms-add-fields-button' ) ) { app.upgradeModal( $this.text() + ' ' + wpforms_builder.field, $this.data( 'license' ) ); } else { app.upgradeModal( $this.data( 'name' ), $this.data( 'license' ) ); } } } ); // "Did You Know?" Click on the dismiss button. $( '.wpforms-dyk' ).on( 'click', '.dismiss', function( e ) { var $t = $( this ), $dyk = $t.closest( '.wpforms-dyk' ), data = { action: 'wpforms_dyk_dismiss', nonce: wpforms_builder.nonce, section: $t.attr( 'data-section' ), }; $dyk.find( '.wpforms-dyk-fbox' ).addClass( 'out' ); setTimeout( function() { $dyk.remove(); }, 300 ); $.get( wpforms_builder.ajax_url, data ); } ); }, /** * Upgrade modal. * * @since 1.5.1 * * @param {string} feature Feature name. * @param {string} type Feature license type: pro or elite. */ upgradeModal: function( feature, type ) { // Provide a default value. if ( typeof type === 'undefined' || type.length === 0 ) { type = 'pro'; } // Make sure we received only supported type. if ( $.inArray( type, [ 'pro', 'elite' ] ) < 0 ) { return; } var message = wpforms_builder_lite.upgrade[type].message.replace( /%name%/g, feature ), upgradeURL = encodeURI( wpforms_builder_lite.upgrade[type].url + '&utm_content=' + feature.trim() ); $.alert( { title : feature + ' ' + wpforms_builder_lite.upgrade[type].title, icon : 'fa fa-lock', content : message, boxWidth: '550px', onOpenBefore: function() { this.$btnc.after( '
' + wpforms_builder_lite.upgrade[type].bonus + wpforms_builder_lite.upgrade[type].doc + '
' ); this.$body.find( '.jconfirm-content' ).addClass( 'lite-upgrade' ); }, buttons : { confirm: { text : wpforms_builder_lite.upgrade[type].button, btnClass: 'btn-confirm', keys : [ 'enter' ], action: function() { window.open( upgradeURL, '_blank' ); $.alert( { title : false, content : wpforms_builder_lite.upgrade[type].modal, icon : 'fa fa-info-circle', type : 'blue', boxWidth: '565px', buttons : { confirm: { text : wpforms_builder.ok, btnClass: 'btn-confirm', keys : [ 'enter' ], }, }, } ); }, }, }, } ); }, }; // Provide access to public functions/properties. return app; }( document, window, jQuery ) ); // Initialize. WPFormsBuilderEducation.init(); assets/js/admin/dashboard-widget.js000066600000011603152141020630013317 0ustar00/* globals wpforms_dashboard_widget, ajaxurl, moment, Chart */ /** * WPForms Dashboard Widget function. * * @since 1.5.0 */ 'use strict'; var WPFormsDashboardWidget = window.WPFormsDashboardWidget || ( function( document, window, $ ) { /** * Elements reference. * * @since 1.5.0 * * @type {Object} */ var el = { $widget: $( '#wpforms_reports_widget_lite' ), $canvas: $( '#wpforms-dash-widget-chart' ), }; /** * Chart.js functions and properties. * * @since 1.5.0 * * @type {Object} */ var chart = { /** * Chart.js instance. * * @since 1.5.0 */ instance: null, /** * Chart.js settings. * * @since 1.5.0 */ settings: { type : 'line', data : { labels : [], datasets: [ { label : wpforms_dashboard_widget.i18n.entries, data : [], backgroundColor : 'rgba(255, 129, 0, 0.135)', borderColor : 'rgba(211, 126, 71, 1)', borderWidth : 2, pointRadius : 4, pointBorderWidth : 1, pointBackgroundColor: 'rgba(255, 255, 255, 1)', } ], }, options: { scales : { xAxes: [ { type : 'time', time : { unit: 'day', }, distribution: 'series', ticks : { beginAtZero: true, source : 'labels', padding : 10, minRotation: 25, maxRotation: 25, callback : function( value, index, values ) { // Distribute the ticks equally starting from a right side of xAxis. var gap = Math.floor( values.length / 7 ); if ( gap < 1 ) { return value; } if ( ( values.length - index - 1 ) % gap === 0 ) { return value; } }, }, } ], yAxes: [ { ticks: { beginAtZero : true, maxTicksLimit: 6, padding : 20, callback : function( value ) { // Make sure the tick value has no decimals. if ( Math.floor( value ) === value ) { return value; } }, }, } ], }, elements : { line: { tension: 0, }, }, animation : { duration: 0, }, hover : { animationDuration: 0, }, legend : { display: false, }, tooltips : { displayColors: false, }, responsiveAnimationDuration: 0, }, }, /** * Init Chart.js. * * @since 1.5.0 */ init: function() { var ctx; if ( ! el.$canvas.length ) { return; } ctx = el.$canvas[ 0 ].getContext( '2d' ); chart.instance = new Chart( ctx, chart.settings ); chart.updateUI(); }, /** * Update Chart.js canvas. * * @since 1.5.0 */ updateUI: function() { chart.updateWithDummyData(); chart.instance.data.labels = chart.settings.data.labels; chart.instance.data.datasets[ 0 ].data = chart.settings.data.datasets[ 0 ].data; chart.instance.update(); }, /** * Update Chart.js settings with dummy data. * * @since 1.5.0 */ updateWithDummyData: function() { var end = moment().endOf( 'day' ); var date; var minY = 5; var maxY = 20; var i; for ( i = 1; i <= 7; i ++ ) { date = end.clone().subtract( i, 'days' ); chart.settings.data.labels.push( date ); chart.settings.data.datasets[ 0 ].data.push( { t: date, y: Math.floor( Math.random() * ( maxY - minY + 1 ) ) + minY, } ); } }, }; /** * Public functions and properties. * * @since 1.5.0 * * @type {Object} */ var app = { /** * Publicly accessible Chart.js functions and properties. * * @since 1.5.0 */ // chart: chart, /** * Start the engine. * * @since 1.5.0 */ init: function() { $( document ).ready( app.ready ); }, /** * Document ready. * * @since 1.5.0 */ ready: function() { chart.init(); app.events(); }, /** * Register JS events. * * @since 1.5.0 */ events: function() { app.formsListEvents(); }, /** * Register forms list area JS events. * * @since 1.5.0 */ formsListEvents: function() { el.$widget.on( 'click', '#wpforms-dash-widget-forms-more', function() { app.toggleCompleteFormsList(); } ); }, /** * Toggle forms list hidden entries. * * @since 1.5.0.4 */ toggleCompleteFormsList: function() { $( '#wpforms-dash-widget-forms-list-table .wpforms-dash-widget-forms-list-hidden-el' ).toggle(); $( '#wpforms-dash-widget-forms-more' ).html( function( i, html ) { return html === wpforms_dashboard_widget.show_less_html ? wpforms_dashboard_widget.show_more_html : wpforms_dashboard_widget.show_less_html; } ); }, }; // Provide access to public functions/properties. return app; }( document, window, jQuery ) ); // Initialize. WPFormsDashboardWidget.init();