PluginProbe
GetResponse Forms by Optin Cat / 2.0.2
GetResponse Forms by Optin Cat v2.0.2
1.3.4 1.3.5 1.3.6 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.5.0 1.5.1 1.5.2 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.6.1 1.6.2 1.6.3 1.7.0 1.7.1 1.7.2 1.8.0 1.8.1 2.0.0 All 36 releases
← All changes | assets/script.js +160 -93 1.3.62.0.2 View file →
@@ -1,115 +1,182 @@
1 -jQuery( document ).ready(function( $ ){
1 +/* jshint asi: true */
2 2
3 - $( document ).on( 'submit', '.fca_eoi_form', function () {
3 +jQuery( document ).ready(function($){
4 +
5 + function is_email( email ) {
6 + var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/
7 + return regex.test(email)
8 + }
4 9
10 + function set_cookie( name, value, exdays ) {
11 + if ( exdays === 0 ) {
12 + document.cookie = name + "=" + value + "" + ";" + "path=/;"
13 + } else {
14 + var d = new Date()
15 + d.setTime( d.getTime() + ( exdays*24*60*60*1000 ) )
16 + document.cookie = name + "=" + value + "" + ";" + "path=/;" + "expires=" + d.toUTCString()
17 + }
18 + }
19 +
20 + function get_cookie( name ) {
21 + var value = "; " + document.cookie
22 + var parts = value.split( "; " + name + "=" )
23 +
24 + if ( parts.length === 2 ) {
25 + return parts.pop().split(";").shift()
26 + } else {
27 + return false
28 + }
29 + }
30 +
31 + $( document ).on( 'submit', '.fca_eoi_form', function (e) {
32 +
33 + e.preventDefault()
34 +
35 + var $this = $( this )
36 + var $email_field = $( '[name=email]', $this )
37 + var $name_field = $( '[name=name]:visible', $this )
38 + var name = $name_field.val()
39 + var email = $email_field.val()
40 + var list_id = $this.data( 'fca_eoi_list_id' )
41 + var $button = $( '[type=submit]', $this )
42 + var button_initial_val
43 + var highlight_interval = false;
44 + var thank_you_mode = $this.data( 'fca_eoi_thank_you_mode' )
45 + var thank_you_page = $this.data( 'fca_eoi_thank_you_page' )
46 + var cookie_duration = $this.data( 'fca_eoi_success_cookie_duration' )
47 + var subscribe_msg = $this.data( 'fca_eoi_sub_msg' )
48 + var has_error = false
49 + var form_id = $( '[name=fca_eoi_form_id]', $this ).val()
50 +
5 51 // Attach tooltips
6 - $( '[name=email], [name=name]', $( this ) ).each( function() {
52 + $( '[name=email], [name=name]', $this ).not('.tooltipstered').each( function() {
7 53
8 - var $this = $( this );
9 - var tooltipWidth = $this.width() * .8;
54 + var $this = $( this )
55 + var tooltipWidth = $this.width() * .8
10 56
11 57 $this.tooltipster( {
12 - contentAsHTML: true
13 - , fixedWidth: tooltipWidth
14 - , minWidth: tooltipWidth
15 - , maxWidth: tooltipWidth
16 - , trigger: 'none'
17 - } );
18 - } );
58 + contentAsHTML: true,
59 + fixedWidth: tooltipWidth,
60 + minWidth: tooltipWidth,
61 + maxWidth: tooltipWidth,
62 + trigger: 'none',
63 + theme: ['tooltipster-borderless', 'tooltipster-optin-cat']
64 + } )
65 + } )
19 66
20 67 // Remove tooltip and tick on focus
21 68 $( '[name=email], [name=name]', $( this ) ).focus( function() {
22 - var $this = $( this );
23 - var $button = $( '[type=submit]', $this.closest( '.fca_eoi_form' ) );
24 - var button_initial_val = $button.data( 'fca_eoi_initial_val' );
69 + var $this = $( this )
70 + var $button = $( '[type=submit]', $this.closest( '.fca_eoi_form' ) )
71 + var button_initial_val = $button.data( 'fca_eoi_initial_val' )
25 72
26 73 // Remove any previous icon
27 74 if( 'undefined' !== typeof( button_initial_val ) ) {
28 - $button.val( button_initial_val );
75 + $button.val( button_initial_val )
29 76 }
30 77
31 78 // Hide tooltip
32 - $( this ).tooltipster( 'hide' );
33 - } );
79 + $( this ).tooltipster( 'hide' )
80 + } )
34 81
35 - // Handle form submissions
36 - //$( '.fca_eoi_form' ).submit( function( e ) {
82 + // Save or save and get initial button value
83 + if( $button.data( 'fca_eoi_initial_val' ) ) {
84 + button_initial_val = $button.data( 'fca_eoi_initial_val' )
85 + } else {
86 + button_initial_val = $button.val()
87 + $button.data( 'fca_eoi_initial_val', button_initial_val )
88 + }
89 +
90 + // Remove any previous icon
91 + $button.val( button_initial_val );
92 +
93 + // Get Error Messages from hidden fields
94 + fcaEoiScriptData.invalid_email = $this.find('.fca_eoi_error_texts_email').val()
95 + fcaEoiScriptData.field_required = $this.find('.fca_eoi_error_texts_required').val()
96 +
97 + // Check email address
98 + if( ! email || ! is_email( email ) ) {
99 + $email_field.tooltipster( 'content', email ? fcaEoiScriptData.invalid_email : fcaEoiScriptData.field_required )
100 + $email_field.tooltipster( 'show' );
101 + $button.val( '✗ ' + button_initial_val );
102 + has_error = true;
103 + }
37 104
38 - var $this = $( this );
39 - var $email_field = $( '[name=email]', $this );
40 - var $name_field = $( '[name=name]', $this );
41 - var name = $name_field.val();
42 - var email = $email_field.val();
43 - var list_id = $this.data( 'fca_eoi_list_id' );
44 - var url = 'https://api.createsend.com/api/v3.1/subscribers/' + list_id + '.json';
45 - var $button = $( '[type=submit]', $this );
46 - var button_initial_val;
47 - var highlight_interval = false;
48 - var thank_you_page = $this.data( 'fca_eoi_thank_you_page' );
49 - var has_error = false;
50 - var fca_eoi_form_id = $( '[name=fca_eoi_form_id]', $this ).val();
105 + // Check name
106 + if( $name_field.length && ! name ) {
107 + $name_field.tooltipster( 'content', fcaEoiScriptData.field_required );
108 + $name_field.tooltipster( 'show' );
109 + $button.val( '✗ ' + button_initial_val );
110 + has_error = true;
111 + }
51 112
52 - // Save or save and get initial button value
53 - if( $button.data( 'fca_eoi_initial_val' ) ) {
54 - button_initial_val = $button.data( 'fca_eoi_initial_val' );
113 + // Exit if there is any error
114 + if( has_error ) {
115 + return false;
116 + }
117 + $button.val( subscribe_msg );
118 + //DISABLE BUTTON CLICK EVENT
119 + $button.click(function(event) {
120 + event.preventDefault();
121 + });
122 +
123 +
124 + $button.attr('style', 'cursor: default' );
125 + var tz = jstz.determine()
126 +
127 + $.ajax({
128 + url: fcaEoiScriptData.ajax_url,
129 + data: { 'email': email, 'name': name, 'action': 'fca_eoi_subscribe', 'list_id': list_id ,'form_id': form_id, 'nonce': fcaEoiScriptData.nonce, 'timezone' : tz.name() },
130 + type: 'POST',
131 + datatype: 'text',
132 + timeout: 15000
133 + }).done( function( data ) {
134 +
135 + // Stop highlighting and add an icon for success/failure
136 + if ( data === '✓' ) {
137 + $button.val( data + ' ' + button_initial_val );
138 +
139 + set_cookie( 'fca_eoi_success_' + form_id, Math.floor(Date.now() / 1000), cookie_duration )
140 +
141 + //REMOVE FROM ACTIVE
142 + var activeOptins = JSON.parse( get_cookie( 'fca_eoi_active_optins' ) )
143 + if ( !Array.isArray( activeOptins ) ) {
144 + activeOptins = []
145 + }
146 + var index = activeOptins.indexOf( form_id )
147 + if ( index !== -1 ) {
148 + activeOptins.splice( index, 1 )
149 + }
150 + set_cookie ( 'fca_eoi_active_optins', JSON.stringify ( activeOptins ) )
151 +
55 152 } else {
56 - button_initial_val = $button.val();
57 - $button.data( 'fca_eoi_initial_val', button_initial_val );
153 + $button.val( data );
58 154 }
59 -
60 - // Remove any previous icon
61 - $button.val( button_initial_val );
62 -
63 - // Check email address
64 - if( ! email || ! is_email( email ) ) {
65 -
66 - $email_field.tooltipster( 'content', email ? fca_eoi.invalid_email : fca_eoi.field_required );
67 - $email_field.tooltipster( 'show' );
68 - $button.val( '✗ ' + button_initial_val );
69 - has_error = true;
70 - }
71 -
72 - // Check name
73 - if( $name_field.length && ! name ) {
74 -
75 - $name_field.tooltipster( 'content', fca_eoi.field_required );
76 - $name_field.tooltipster( 'show' );
77 - $button.val( '✗ ' + button_initial_val );
78 - has_error = true;
79 - }
80 -
81 - // Exit if there is any error
82 - if( has_error ) {
83 - return false;
84 - }
85 -
86 - $( '.fca_eoi_form_button_element', $this ).attr( 'disabled', 'disabled' );
87 -
88 - return true;
89 -
90 - // Start highlighting
91 - highlight_interval = setInterval( function() {
92 - $button.fadeTo( 200, 0.25 ).fadeTo( 200, 1.0 );
93 - }, 500 );
94 -
95 - $.ajax( {
96 - url: fca_eoi.ajax_url
97 - , data: { 'email': email, 'name': name, 'action': 'fca_eoi_subscribe', 'list_id': list_id ,'form_id': fca_eoi_form_id}
98 - , type: 'POST'
99 - , datatype: 'text'
100 - } ).done( function( data ) {
101 - // Stop highlighting and add an icon for success/failure
102 - $button.val( data + ' ' + button_initial_val );
103 - clearInterval( highlight_interval );
155 +
156 + if ( thank_you_mode === 'ajax' && data === '✓' ) {
157 + clearInterval( highlight_interval )
104 158 if ( thank_you_page && '✓' === data ) {
105 - window.location.href = thank_you_page;
159 + tooltipWidth = $button.width()
160 + $button.tooltipster( {
161 + contentAsHTML: true,
162 + trigger: 'none',
163 + fixedWidth: tooltipWidth,
164 + minWidth: tooltipWidth,
165 + maxWidth: tooltipWidth,
166 + arrow: false,
167 + theme: ['tooltipster-borderless', 'tooltipster-optin-cat']
168 + } );
169 +
170 + $button.tooltipster( 'content', thank_you_page )
171 + $button.tooltipster( 'show' )
172 + $email_field.prop('disabled', true)
173 + $name_field.prop('disabled', true)
174 +
175 + $('.tooltipster-content').css("background-color", "#148544")
106 176 }
107 - } );
108 - //} );
109 - } );
110 -} );
111 -
112 -function is_email( email ) {
113 - var regex = /^([a-zA-Z0-9_.+-])+\@(([a-zA-Z0-9-])+\.)+([a-zA-Z0-9]{2,4})+$/;
114 - return regex.test(email);
115 -}
177 + } else if ( data === '✓' ) {
178 + window.location.href = thank_you_page
179 + }
180 + })
181 + })
182 +})