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 | includes/eoi-shortcode.php +58 -320 1.4.22.0.2 View file →
@@ -19,141 +19,22 @@
19 19 add_shortcode( $shortcode, array( $this, 'shortcode_content' ) );
20 20 }
21 21
22 22 // Add shortcode generator button
23 - if ( in_array( $pagenow, array( 'post.php', 'page.php', 'post-new.php', 'post-edit.php' ) ) && $typenow != 'download' ) {
23 + if ( FCA_EOI_EDITION != 'email_popup' && in_array( $pagenow, array( 'post.php', 'page.php', 'post-new.php', 'post-edit.php' ) ) && $typenow != 'download' ) {
24 24 add_action( 'admin_head', array( $this, 'button_head' ) );
25 25 add_action( 'media_buttons', array( $this, 'button' ), 1000 );
26 26 add_action( 'admin_footer', array( $this, 'button_footer' ) );
27 27 }
28 28
29 - if ( ! is_admin() ) {
30 - add_action( 'wp', array( $this, 'parse_shortcodes' ), 11 );
31 - }
32 29 }
33 30
34 - public function wp_head() {
35 - foreach ( $this->prerequisites as $form_id => $head ) {
36 - echo $head;
37 - $this->prerequisites[ $form_id ] = '';
38 - }
39 - }
40 -
41 - public function parse_shortcodes() {
42 - global $post;
43 -
44 - if ( empty( $post ) ) {
45 - return;
46 - }
47 -
48 - if ( preg_match_all( '/' . get_shortcode_regex() . '/s', $post->post_content, $matches )
49 - && array_key_exists( 2, $matches )
50 - && array_key_exists( 3, $matches )
51 - && in_array( $this->settings['shortcode'], $matches[2] )
52 - ) {
53 - foreach ( $matches[3] as $params ) {
54 - $params = shortcode_parse_atts( $params );
55 - if ( ! empty( $params['id'] ) ) {
56 - $this->add_prerequisites_for_form( (int) $params['id'] );
57 - }
58 - }
59 - }
60 -
61 - if ( ! empty( $this->prerequisites ) ) {
62 - $this->enqueue_assets();
63 - add_action( 'wp_head', array( $this, 'wp_head' ) );
64 - }
65 - }
66 -
67 - /**
68 - * @param int $form_id
69 - *
70 - * @return string
71 - */
72 - private function add_prerequisites_for_form( $form_id ) {
73 - if ( array_key_exists( $form_id, $this->prerequisites ) ) {
74 - return $this->prerequisites[ $form_id ];
75 - }
76 -
77 - $head = '';
78 -
79 - $fca_eoi_meta = get_post_meta( $form_id, 'fca_eoi', true );
80 - if ( ! $fca_eoi_meta ) {
81 - return $head;
82 - }
83 -
84 - $layout_id = $fca_eoi_meta['layout'];
85 - $layout = new EasyOptInsLayout( $layout_id );
86 - $scss_path = $layout->path_to_resource( 'layout', 'scss' );
87 -
88 - $scss = $layout->new_scss_compiler();
89 -
90 - if ( file_exists( $scss_path ) ) {
91 - $head .=
92 - '<style>' .
93 - '.fca_eoi_form p { width: auto; }' . $scss->compile(
94 - sprintf( '$ltr: %s;', is_rtl() ? 'false' : 'true' ) .
95 - '#fca_eoi_form_' . $form_id . '{' .
96 - 'input{ max-width: 9999px; }' .
97 - file_get_contents( $scss_path ) .
98 - '}'
99 - ) .
100 - '</style>';
101 - }
102 -
103 - // Add per form CSS
104 - if ( ! EasyOptInsLayout::uses_new_css() ) {
105 - $head .= '<style>.fca_eoi_form{ margin: auto; }</style>';
106 - }
107 -
108 - $css_for_scss = '';
109 - if ( ! empty( $fca_eoi_meta[ $layout_id ] ) ) {
110 - $head .= '<style>';
111 - $css_for_scss .= "#fca_eoi_form_$form_id {";
112 - foreach ( $fca_eoi_meta[ $layout_id ] as $selector => $declarations ) {
113 - $css_for_scss .= "$selector{";
114 - foreach ( $declarations as $property => $value ) {
115 - if ( strlen( $value ) ) {
116 - $css_for_scss .= "$property:$value !important;";
117 - }
118 - }
119 - $css_for_scss .= '}';
120 - }
121 - $css_for_scss .= '}';
122 - $head .= $scss->compile( $css_for_scss ) . '</style>';
123 - }
124 -
125 - if ( $layout->layout_type != 'lightbox' ) {
126 - $head .= '<script>' . EasyOptInsActivity::get_instance()->get_tracking_code( $form_id ) . '</script>';
127 - }
128 -
129 - $this->prerequisites[ $form_id ] = $head;
130 - return $head;
131 - }
132 -
133 - /**
134 - * @param int $form_id
135 - *
136 - * @return string
137 - */
138 - private function get_prerequisites_for_form( $form_id ) {
139 - $prerequisites = $this->add_prerequisites_for_form( $form_id );
140 - $this->prerequisites[ $form_id ] = '';
141 -
142 - if ( ! empty( $prerequisites ) ) {
143 - $this->enqueue_assets();
144 - return $prerequisites;
145 - }
146 -
147 - return '';
148 - }
149 -
150 31 public function button_head() {
151 32 ?>
152 33
153 34 <style>
154 35 #fca-eoi-media-button {
155 - background: url(<?php echo $this->settings['plugin_url'] . '/icon.png' ?>) 0 -1px no-repeat;
36 + background: url(<?php echo FCA_EOI_PLUGIN_URL . '/icon.png' ?>) 0 -1px no-repeat;
156 37 background-size: 16px 16px;
157 38 }
158 39 </style>
159 40
@@ -160,19 +41,20 @@
160 41 <?php
161 42 }
162 43
163 44 public function button() {
164 - if (current_user_can( 'delete_pages')){
45 + global $post;
46 + if (current_user_can( 'delete_pages' ) && $post->post_type != 'easy-opt-ins'){
165 47
166 - $button_title = __( 'Optin Cat' );
167 -
168 - if ( version_compare( $GLOBALS['wp_version'], '3.5', '<' ) ) {
169 - echo '<a href="#TB_inline?width=640&inlineId=fca-eoi-shortcode-thickbox" class="thickbox" title="' . $button_title . '">' . $button_title . '</a>';
170 - } else {
171 - $img = '<span class="wp-media-buttons-icon" id="fca-eoi-media-button"></span>';
172 - echo '<a href="#TB_inline?width=640&inlineId=fca-eoi-shortcode-thickbox" class="thickbox button" title="' . $button_title . '" style="padding-left: .4em;">' . $img . $button_title . '</a>';
48 + $button_title = __( 'Add Optin Form' );
49 +
50 + if ( version_compare( $GLOBALS['wp_version'], '3.5', '<' ) ) {
51 + echo '<a href="#TB_inline?width=640&inlineId=fca-eoi-shortcode-thickbox" class="thickbox" title="' . $button_title . '">' . $button_title . '</a>';
52 + } else {
53 + $img = '<span class="wp-media-buttons-icon" id="fca-eoi-media-button"></span>';
54 + echo '<a href="#TB_inline?width=640&inlineId=fca-eoi-shortcode-thickbox" class="thickbox button" title="' . $button_title . '" style="padding-left: .4em;">' . $img . $button_title . '</a>';
55 + }
173 56 }
174 - }
175 57 }
176 58
177 59 public function button_footer() {
178 60 $options = array();
@@ -223,211 +105,67 @@
223 105 <?php
224 106 }
225 107
226 108 public function enqueue_assets() {
227 -
228 - if ( $this->assets_enqueued ) {
229 - return;
230 - }
231 -
232 - $this->assets_enqueued = true;
233 -
234 109 $protocol = is_ssl() ? 'https' : 'http';
235 -
236 - // Get lightboxes
237 - $lightboxes = get_posts( array(
238 - 'post_type' => 'easy-opt-ins',
239 - 'posts_per_page' => -1,
240 - 'orderby' => 'ID',
241 - 'meta_key' => 'fca_eoi_layout',
242 - 'meta_value' => 'lightbox_',
243 - 'meta_compare' => 'like',
244 - ) );
245 -
246 - // Get postboxes
247 - $postboxes = get_posts( array(
248 - 'post_type' => 'easy-opt-ins',
249 - 'posts_per_page' => -1,
250 - 'orderby' => 'ID',
251 - 'meta_key' => 'fca_eoi_layout',
252 - 'meta_value' => 'postbox_',
253 - 'meta_compare' => 'like',
254 - ) );
255 -
256 - // Get postboxes
257 - $widgets = get_posts( array(
258 - 'post_type' => 'easy-opt-ins',
259 - 'posts_per_page' => -1,
260 - 'orderby' => 'ID',
261 - 'meta_key' => 'fca_eoi_layout',
262 - 'meta_value' => 'layout_',
263 - 'meta_compare' => 'like',
264 - ) );
265 -
266 - // Exit function if not optin form exist
267 - if ( ! $lightboxes && ! $postboxes && ! $widgets ) {
268 - return;
269 - }
270 -
110 +
271 111 wp_enqueue_script( 'jquery' );
112 + wp_enqueue_style( 'fontawesome', $protocol . '://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.1.0/css/font-awesome.min.css', array(), FCA_EOI_VER );
272 113
273 - wp_enqueue_style( 'fca_eoi', $this->settings[ 'plugin_url' ].'/assets/style' . ( EasyOptInsLayout::uses_new_css() ? '-new' : '' ) . '.css' );
274 - wp_enqueue_script( 'fca_eoi', $this->settings[ 'plugin_url' ].'/assets/script.js' );
114 + wp_enqueue_script( 'fca_eoi_tooltipster_js', FCA_EOI_PLUGIN_URL . '/assets/vendor/tooltipster/tooltipster.bundle.min.js', array(), FCA_EOI_VER, true );
115 + wp_enqueue_style( 'fca_eoi_tooltipster_css', FCA_EOI_PLUGIN_URL . '/assets/vendor/tooltipster/tooltipster.bundle.min.css', array(), FCA_EOI_VER );
116 + wp_enqueue_style( 'fca_eoi_tooltipster_theme_css', FCA_EOI_PLUGIN_URL . '/assets/vendor/tooltipster/tooltipster-borderless.min.css', array(), FCA_EOI_VER );
117 +
118 + wp_enqueue_script( 'fca_eoi_featherlight_js', FCA_EOI_PLUGIN_URL . '/assets/vendor/featherlight/release/featherlight.min.js', array(), FCA_EOI_VER, true );
119 + wp_enqueue_style( 'fca_eoi_featherlight_css', FCA_EOI_PLUGIN_URL . '/assets/vendor/featherlight/release/featherlight.min.css', array(), FCA_EOI_VER );
120 +
121 + wp_enqueue_script( 'fca_eoi_jstz', FCA_EOI_PLUGIN_URL . '/assets/vendor/jstz/jstz.min.js', array(), FCA_EOI_VER, true );
122 +
123 + wp_enqueue_style( 'fca_eoi', FCA_EOI_PLUGIN_URL . '/assets/style-new.min.css', array(), FCA_EOI_VER );
124 + wp_enqueue_script( 'fca_eoi_script_js', FCA_EOI_PLUGIN_URL . '/assets/script.min.js', array( 'fca_eoi_jstz', 'jquery', 'fca_eoi_tooltipster_js', 'fca_eoi_featherlight_js'), FCA_EOI_VER, true );
275 125
276 - wp_enqueue_style( 'fontawesome', $protocol . '://cdnjs.cloudflare.com/ajax/libs/font-awesome/4.1.0/css/font-awesome.min.css' );
277 -
278 - wp_enqueue_script( 'tooltipster', $this->settings[ 'plugin_url' ] . '/assets/vendor/tooltipster/jquery.tooltipster.min.js' );
279 - wp_enqueue_style( 'tooltipster', $this->settings[ 'plugin_url' ] . '/assets/vendor/tooltipster/tooltipster.min.css' );
280 -
281 - wp_enqueue_script( 'featherlight', $this->settings[ 'plugin_url' ] . '/assets/vendor/featherlight/release/featherlight.min.js' );
282 - wp_enqueue_style( 'featherlight', $this->settings[ 'plugin_url' ] . '/assets/vendor/featherlight/release/featherlight.min.css' );
126 + //PASS VARIABLES TO JAVASCRIPT
127 + $data = array (
128 + 'ajax_url' => admin_url( 'admin-ajax.php' ),
129 + 'nonce' => wp_create_nonce( 'fca_eoi_submit_form' ),
130 + );
283 131
284 -
285 - wp_localize_script( 'fca_eoi', 'fca_eoi', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) );
132 + wp_localize_script( 'fca_eoi_script_js', 'fcaEoiScriptData', $data );
286 133 }
287 134
288 135 public function shortcode_content( $atts ) {
289 -
290 - $form_id = $atts['id'];
291 -
292 - /**
293 - * Check that we have a valid post ID
294 - */
295 - if( empty ( $form_id ) ) {
296 - return 'Missing form ID';
136 + if ( empty ( $atts['id'] ) ) {
137 + return 'Optin Cat: Invalid Form ID';
138 + } else {
139 + $form_id = $atts['id'];
140 + $post = get_post( $form_id );
297 141 }
298 - if( ! $post = get_post( $form_id ) ) {
299 - return 'Wrong form ID';
142 +
143 + if( !is_object( $post ) OR $post->post_status == 'trash' ) {
144 + return 'Optin Cat: Missing Form Data. Is it in the trash?';
300 145 }
301 -
302 - $fca_eoi_meta = get_post_meta( $form_id, 'fca_eoi', true );
303 - if( ! $fca_eoi_meta ) {
304 - return 'Form doesn\'t exist';
146 +
147 + $animation = get_post_meta( $form_id, 'fca_eoi_animation', true);
148 + if (!empty( $animation ) ) {
149 + wp_enqueue_style( 'fca_eoi_powerups_animate', FCA_EOI_PLUGIN_URL . '/assets/vendor/animate/animate.min.css', array(), FCA_EOI_VER );
305 150 }
306 -
307 - // Get template
308 - $layout_id = $fca_eoi_meta[ 'layout' ];
309 -
310 - $layout = new EasyOptInsLayout( $layout_id );
311 - $layout_type = $layout->layout_type;
312 - $html_path = $layout->path_to_resource( 'layout', 'html' );
313 - $html_wrap_path = $layout->path_to_html_wrapper();
314 151
315 - if ( ! file_exists( $html_path ) ) {
316 - return '';
317 - }
318 -
319 - if ( EasyOptInsLayout::uses_new_css() ) {
320 - $template = str_replace(
321 - '{{{layout}}}',
322 - file_get_contents( $html_path ),
323 - file_get_contents( $html_wrap_path )
324 - );
325 - } else {
326 - $template = file_get_contents( $html_path );
327 - }
328 -
329 - $form_wrapper = '';
330 - $form_wrapper_end = '';
331 -
332 - if ( EasyOptInsLayout::uses_new_css() && $layout->layout_type != 'lightbox' ) {
333 - $form_wrapper =
334 - '<div class="' .
335 - 'fca_eoi_form_wrapper ' .
336 - $layout->layout_class . '_wrapper ' .
337 - 'fca_eoi_layout_' . $layout->layout_number . '_wrapper' .
338 - '">';
339 - $form_wrapper_end = '</div>';
340 - }
152 + $this->enqueue_assets();
153 + $head = get_post_meta( $form_id, 'fca_eoi_head', true );
341 154
342 - $errorTexts = fca_eoi_get_error_texts($form_id);
343 -
155 + $layout_id = get_post_meta ( $form_id, 'fca_eoi_layout', true );
156 + $layout = new EasyOptInsLayout( $layout_id );
157 +
158 + if ( $layout->layout_type !== 'lightbox' && $layout->layout_type !== 'banner' && $layout->layout_type !== 'overlay' ) {
344 159
345 - // Fill template with our formatting stuff
346 - $template = str_replace(
347 - array(
348 - '<form>',
349 - '{{{description_copy}}}',
350 - '{{{headline_copy}}}',
351 - '{{{name_field}}}',
352 - '{{{email_field}}}',
353 - '{{{submit_button}}}',
354 - '{{{privacy_copy}}}',
355 - '{{{fatcatapps_link}}}',
356 - '</form>',
357 - ),
358 - array(
359 - sprintf(
360 - $form_wrapper .
361 - '<div id="fca_eoi_form_%s" class="fca_eoi_form_content">' .
362 - '<form method="post" action="#" class="fca_eoi_form %s %s" ' .
363 - 'data-fca_eoi_list_id="%s" data-fca_eoi_thank_you_page="%s" novalidate' .
364 - '>' .
365 - '<input type="hidden" name="fca_eoi_form_id" value="%s" />'
366 - , $form_id
367 - , EasyOptInsLayout::uses_new_css()
368 - ? 'fca_eoi_layout_' . $layout->layout_number
369 - : 'fca_eoi_' . $layout_type
370 - , EasyOptInsLayout::uses_new_css()
371 - ? $layout->layout_class
372 - : 'fca_eoi_' . $layout_id
373 - , K::get_var( 'list_id', $fca_eoi_meta )
374 - , get_permalink( K::get_var( 'thank_you_page', $fca_eoi_meta ) )
375 - ? get_permalink( K::get_var( 'thank_you_page', $fca_eoi_meta ) )
376 - : ''
377 - , $post->ID
378 - ),
379 - '<div>{{{description_copy}}}</div>',
380 - EasyOptInsLayout::uses_new_css()
381 - ? '<div>{{{headline_copy}}}</div>'
382 - : '<span>{{{headline_copy}}}</span>',
383 - EasyOptInsLayout::uses_new_css()
384 - ? '<input class="fca_eoi_form_input_element" type="text" name="name" placeholder="{{{name_placeholder}}}">'
385 - : '<input type="text" name="name" placeholder="{{{name_placeholder}}}" />',
386 - EasyOptInsLayout::uses_new_css()
387 - ? '<input class="fca_eoi_form_input_element" type="email" name="email" placeholder="{{{email_placeholder}}}">'
388 - : '<input type="email" name="email" placeholder="{{{email_placeholder}}}" />',
389 - EasyOptInsLayout::uses_new_css()
390 - ? '<input class="fca_eoi_form_button_element" type="submit" value="{{{button_copy}}}">'
391 - : '<input type="submit" value="{{{button_copy}}}" />',
392 - EasyOptInsLayout::uses_new_css()
393 - ? '<div>{{{privacy_copy}}}</div>'
394 - : '<span >{{{privacy_copy}}}</span>',
395 - EasyOptInsLayout::uses_new_css()
396 - ? '{{#show_fatcatapps_link}}<div class="fca_eoi_layout_fatcatapps_link_wrapper fca_eoi_form_text_element"><a href="http://fatcatapps.com/eoi" target="_blank">Powered by Optin Cat</a></div>{{/show_fatcatapps_link}}'
397 - : '{{#show_fatcatapps_link}}<p class="fca_eoi_' . $layout_id . '_fatcatapps_link_wrapper"><a href="http://fatcatapps.com/eoi" target="_blank">Powered by Optin Cat</a></p>{{/show_fatcatapps_link}}',
398 - '<input type="hidden" name="id" value="' . $form_id . '"><input type="hidden" name="fca_eoi" value="1">
399 - <input type="hidden" name="fca_eoi_error_texts_email" class="fca_eoi_error_texts_email" value="' . htmlspecialchars ($errorTexts['invalid_email']) . '">
400 - <input type="hidden" name="fca_eoi_error_texts_required" class="fca_eoi_error_texts_required" value="' . htmlspecialchars ($errorTexts['field_required']) . '">
401 - </form></div>' . $form_wrapper_end,
402 - ),
403 - $template
404 - );
405 -
406 - $mustache = new Mustache_Engine;
407 - $output = $mustache->render(
408 - $template,
409 - array(
410 - 'headline_copy' => $fca_eoi_meta[ 'headline_copy' ],
411 - 'description_copy' => $fca_eoi_meta[ 'description_copy' ],
412 - 'privacy_copy' => $fca_eoi_meta[ 'privacy_copy' ],
413 - 'name_placeholder' => $fca_eoi_meta[ 'name_placeholder' ],
414 - 'email_placeholder' => $fca_eoi_meta[ 'email_placeholder' ],
415 - 'button_copy' => $fca_eoi_meta[ 'button_copy' ],
416 - 'show_name_field' => K::get_var( 'show_name_field', $fca_eoi_meta ),
417 - 'show_fatcatapps_link' => K::get_var( 'show_fatcatapps_link', $fca_eoi_meta ),
418 - )
419 - );
420 -
421 - // add the fca_eoi_alter_form
422 - $output = apply_filters( 'fca_eoi_alter_form'
423 - , $output
424 - , $fca_eoi_meta
425 - );
160 + require_once FCA_EOI_PLUGIN_DIR . 'includes/classes/RobotDetector/RobotDetector.php';
161 + $robot_detector = new RobotDetector();
162 +
163 + if ( get_post( $form_id ) && !is_user_logged_in() && !$robot_detector->is_robot() ) {
164 + EasyOptInsActivity::get_instance()->add_impression( $form_id );
165 + }
166 +
167 + }
426 168
427 - $prerequisites = $this->get_prerequisites_for_form( $form_id );
428 - $prerequisites = str_replace('<style', '<style scoped', $prerequisites);
429 -
430 - // Return form with debugging information if applicable
431 - return $prerequisites . $output . ( FCA_EOI_DEBUG ? @d( $fca_eoi_meta, $template ) : '' );
169 + return $head;
432 170 }
433 171 }