Changeset 2107873
- Timestamp:
- 06/18/2019 08:36:32 AM (7 years ago)
- Location:
- convertful
- Files:
-
- 2 added
- 5 edited
- 4 copied
-
tags/1.7 (copied) (copied from convertful/trunk)
-
tags/1.7/config.php (added)
-
tags/1.7/convertful.php (copied) (copied from convertful/trunk/convertful.php) (11 diffs)
-
tags/1.7/functions/admin_pages.php (copied) (copied from convertful/trunk/functions/admin_pages.php) (5 diffs)
-
tags/1.7/functions/shortcodes.php (modified) (1 diff)
-
tags/1.7/readme.txt (copied) (copied from convertful/trunk/readme.txt) (5 diffs)
-
trunk/config.php (added)
-
trunk/convertful.php (modified) (11 diffs)
-
trunk/functions/admin_pages.php (modified) (5 diffs)
-
trunk/functions/shortcodes.php (modified) (1 diff)
-
trunk/readme.txt (modified) (5 diffs)
Legend:
- Unmodified
- Added
- Removed
-
convertful/tags/1.7/convertful.php
r2007794 r2107873 3 3 /** 4 4 * Plugin Name: Convertful - Your Ultimate On-Site Conversion Tool 5 * Version: 1. 65 * Version: 1.7 6 6 * Plugin URI: https://convertful.com/ 7 7 * Description: All the modern on-site conversion solutions, natively integrates with all modern Email Marketing Platforms. … … 13 13 14 14 // Global variables for plugin usage (global declaration is needed here for WP CLI compatibility) 15 global $conv_file, $conv_dir, $conv_uri, $conv_version, $conv_domain; 16 //$conv_domain = 'http://convertful.local'; 17 $conv_domain = 'https://app.convertful.com'; 15 global $conv_file, $conv_dir, $conv_uri, $conv_version, $conv_config; 18 16 $conv_file = __FILE__; 19 17 $conv_dir = plugin_dir_path( __FILE__ ); … … 22 20 unset( $conv_matches ); 23 21 22 if (file_exists($conv_dir.'config.php')) 23 { 24 $conv_config = require $conv_dir.'config.php'; 25 } 26 27 /** 28 * Get script id 29 * @return string 30 */ 31 function conv_get_script_id() 32 { 33 global $conv_config; 34 $url = wp_parse_url($conv_config['host']); 35 if ( ! preg_match('/^(.*?)(convertful|devcf)\.[a-z]{3,5}$/', $url['host'])) 36 { 37 return 'optin-api'; 38 } 39 return 'convertful-api'; 40 } 41 42 /** 43 * Get script file name 44 * @return string 45 */ 46 function conv_get_script_filename() 47 { 48 return conv_get_script_id() === 'convertful-api' 49 ? 'Convertful.js' 50 : 'optin.js'; 51 } 52 24 53 add_action( 'init', 'conv_init' ); 25 54 function conv_init() { 26 55 if ( get_option( 'optinguru_owner_id' ) ) { 27 update_option( 'convertful_owner_id', get_option( 'optinguru_owner_id' ), TRUE ); 28 update_option( 'convertful_site_id', get_option( 'optinguru_site_id', get_option( 'optinguru_website_id' ) ), FALSE ); 29 update_option( 'convertful_token', get_option( 'optinguru_token' ), FALSE ); 30 } 31 $owner_id = get_option( 'convertful_owner_id' ); 56 update_option( 'conv_owner_id', get_option( 'optinguru_owner_id' ), TRUE ); 57 update_option( 'conv_site_id', get_option( 'optinguru_site_id', get_option( 'optinguru_website_id' ) ), FALSE ); 58 update_option( 'conv_token', get_option( 'optinguru_token' ), FALSE ); 59 } 60 if ( get_option( 'convertful_owner_id' ) ) { 61 update_option( 'conv_owner_id', get_option( 'convertful_owner_id' ), TRUE ); 62 update_option( 'conv_site_id', get_option( 'convertful_site_id' ), FALSE ); 63 update_option( 'conv_token', get_option( 'convertful_token' ), FALSE ); 64 } 65 $owner_id = get_option( 'conv_owner_id' ); 32 66 if ( ! is_admin() AND $owner_id !== FALSE ) { 33 67 add_action( 'wp_enqueue_scripts', 'conv_enqueue_scripts' ); … … 45 79 46 80 function conv_enqueue_scripts() { 47 global $conv_domain, $conv_version; 48 wp_enqueue_script( 'convertful-api', $conv_domain . '/Convertful.js', array(), $conv_version, TRUE ); 81 global $conv_config, $conv_version; 82 $script_id = conv_get_script_id(); 83 wp_enqueue_script( $script_id, $conv_config['host'].'/'.conv_get_script_filename(), array(), $conv_version, TRUE ); 49 84 50 85 $tags = array(); … … 66 101 $user_meta = wp_get_current_user(); 67 102 68 wp_localize_script( 'convertful-api', 'convPlatformVars', array(103 wp_localize_script( $script_id, 'convPlatformVars', array( 69 104 'postType' => get_post_type(), 70 105 'categories' => $categories, … … 75 110 76 111 function conv_script_loader_tag( $tag, $handle ) { 77 if ( $handle !== 'convertful-api' ) { 112 global $conv_config; 113 $script_id = conv_get_script_id(); 114 if ( $handle !== $script_id ) { 78 115 return $tag; 79 116 } 80 global $conv_domain; 81 82 return '<script type="text/javascript" id="convertful-api" src="' . $conv_domain . '/Convertful.js" data-owner="' . get_option( 'convertful_owner_id' ) . '" async="async"></script>'; 117 $script = sprintf( '%s/%s?owner=%s', $conv_config['host'], conv_get_script_filename(), get_option( 'conv_owner_id' ) ); 118 return sprintf( 119 '<script type="text/javascript" id="%s" src="%s" async="async"></script>', 120 $script_id, 121 $script 122 ); 83 123 } 84 124 … … 101 141 } 102 142 // Taking into account promotional links 103 $ref_data = get_transient( 'conv ertful-ref' );143 $ref_data = get_transient( 'conv-ref' ); 104 144 if ( $ref_data AND strpos( $ref_data, '|' ) !== FALSE ) { 105 145 $ref_data = explode( '|', $ref_data ); 106 146 // Preventing violations with lifetime values 107 147 if ( time() - intval( $ref_data[1] ) < DAY_IN_SECONDS ) { 108 update_option( 'conv ertful_ref', $ref_data[0], FALSE );109 } 110 delete_transient( 'conv ertful-ref' );111 } 112 $owner_id = get_option( 'conv ertful_owner_id' );148 update_option( 'conv_ref', $ref_data[0], FALSE ); 149 } 150 delete_transient( 'conv-ref' ); 151 } 152 $owner_id = get_option( 'conv_owner_id' ); 113 153 if ( $owner_id === FALSE ) { 114 154 $redirect_location = admin_url( 'tools.php?page=conv-settings' ); … … 149 189 delete_option( 'optinguru_' . $option_name ); 150 190 delete_option( 'convertful_' . $option_name ); 191 delete_option( 'conv_' . $option_name ); 151 192 } 152 193 } … … 158 199 function conv_get_info() { 159 200 160 if ( $_POST['access_token'] !== get_option( 'conv ertful_token' )) {201 if ( $_POST['access_token'] !== get_option( 'conv_token' )) { 161 202 wp_send_json_error( array( 162 203 'access_token' => 'Wrong access token', … … 206 247 function conv_complete_authorization() { 207 248 208 if ( $_POST['access_token'] !== get_option( 'conv ertful_token' )) {249 if ( $_POST['access_token'] !== get_option( 'conv_token' )) { 209 250 wp_send_json_error( array( 210 251 'access_token' => 'Wrong access token', … … 220 261 } 221 262 222 update_option( 'conv ertful_owner_id', (int) $_POST['owner_id'], TRUE );223 update_option( 'conv ertful_site_id', (int) $_POST['site_id'], FALSE );263 update_option( 'conv_owner_id', (int) $_POST['owner_id'], TRUE ); 264 update_option( 'conv_site_id', (int) $_POST['site_id'], FALSE ); 224 265 225 266 wp_send_json_success(); -
convertful/tags/1.7/functions/admin_pages.php
r2002204 r2107873 3 3 add_action( 'admin_menu', 'conv_add_admin_pages', 30 ); 4 4 function conv_add_admin_pages() { 5 add_submenu_page( 'tools.php', 'Convertful', 'Convertful', 'manage_options', 'conv-settings', 'conv_settings_page' ); 5 global $conv_config; 6 add_submenu_page( 'tools.php', $conv_config['title'], $conv_config['title'], 'manage_options', 'conv-settings', 'conv_settings_page' ); 6 7 } 7 8 … … 9 10 // Handling return to backend 10 11 if ( isset( $_GET['owner_id'] ) AND isset( $_GET['site_id'] ) AND isset( $_GET['token'] ) AND isset( $_GET['_nonce'] ) AND wp_verify_nonce( $_GET['_nonce'], 'conv_connect' ) ) { 11 update_option( 'conv ertful_owner_id', (int) $_GET['owner_id'], TRUE );12 update_option( 'conv ertful_site_id', (int) $_GET['site_id'], FALSE );13 update_option( 'conv ertful_token', $_GET['token'], FALSE );12 update_option( 'conv_owner_id', (int) $_GET['owner_id'], TRUE ); 13 update_option( 'conv_site_id', (int) $_GET['site_id'], FALSE ); 14 update_option( 'conv_token', $_GET['token'], FALSE ); 14 15 // Redirect 15 16 echo '<script type="text/javascript">location.assign(\'' . admin_url( 'tools.php?page=conv-settings' ) . '\')</script>'; … … 26 27 27 28 function conv_settings_page() { 28 global $conv_ domain;29 global $conv_config; 29 30 conv_handle_return_to_endpoint(); 30 31 conv_handle_disconnect_click(); 31 $site_id = get_option( 'conv ertful_site_id' );32 $site_id = get_option( 'conv_site_id' ); 32 33 if ( $site_id === FALSE ) { 33 $connect_url = $conv_ domain. '/sites/authorize/WordPressPlugin/';34 if ( $ref_username = get_option( 'conv ertful_ref' ) ) {34 $connect_url = $conv_config['host'] . '/sites/authorize/WordPressPlugin/'; 35 if ( $ref_username = get_option( 'conv_ref' ) ) { 35 36 $connect_url .= '?ref=' . $ref_username; 36 37 } 37 38 // Generating access token to use it to authenticate requests 38 39 $access_token = wp_generate_password( 32, false ); 39 update_option( 'conv ertful_token', $access_token, FALSE );40 update_option( 'conv_token', $access_token, FALSE ); 40 41 ?> 41 42 <div class="conv-connect"> 42 43 <div class="conv-connect-logo"> 43 <img class="conv-connect-logo-img" src="<?php echo $conv_domain ?>/assets/img/logo_blue.png" srcset="<?php echo $conv_domain ?>/assets/img/[email protected] 2x" alt="Convertful">44 <img class="conv-connect-logo-img" src="<?php echo esc_attr($conv_config['logo']) ?>" srcset="<?php echo esc_attr($conv_config['logo@2x']) ?>" alt="<?php echo esc_attr($conv_config['title'])?>"> 44 45 </div> 45 46 <div class="conv-connect-box"> 46 <h1 class="conv-connect-header">Connect Site to Convertful</h1>47 <h1 class="conv-connect-header">Connect Site to <?php echo esc_attr($conv_config['title']) ?></h1> 47 48 <form class="conv-connect-card" method="post" action="<?php echo esc_attr( $connect_url ) ?>"> 48 49 <div class="conv-connect-card-body"> 49 <p>Please create a ConvertfulAccount or connect to an existing Account.<br>50 <p>Please create a <?php echo esc_attr($conv_config['title']) ?> Account or connect to an existing Account.<br> 50 51 This will allow you to <strong>grow email lists easily</strong> using our top-notch builder 51 52 with unique features and amazing pre-built form templates!</p> … … 59 60 60 61 <button class="conv-btn action_connect"> 61 Connect to Convertful62 Connect to <?php echo esc_attr($conv_config['title']) ?> 62 63 </button> 63 64 </div> 64 65 </form> 65 66 </div> 66 <a href="https://app.convertful.com/docs/connect/wordpress/" class="conv-connect-help" target="_blank">Get help connecting your site</a> 67 <?php if(isset($conv_config['connect_help_url']) AND ! empty($conv_config['connect_help_url'])): ?> 68 <a href="<?php echo esc_attr($conv_config['connect_help_url']) ?>" class="conv-connect-help" target="_blank">Get help connecting your site</a> 69 <?php endif; ?> 67 70 </div> 68 71 <?php … … 71 74 <div class="conv-connect type_success"> 72 75 <div class="conv-connect-logo"> 73 <img class="conv-connect-logo-img" src="<?php echo $conv_domain ?>/assets/img/logo_blue.png" srcset="<?php echo $conv_domain ?>/assets/img/[email protected] 2x" alt="Convertful">76 <img class="conv-connect-logo-img" src="<?php echo esc_attr($conv_config['logo']) ?>" srcset="<?php echo esc_attr($conv_config['logo@2x']) ?> 2x" alt="<?php echo esc_attr($conv_config['title']) ?>"> 74 77 </div> 75 78 <div class="conv-connect-box"> 76 <h1 class="conv-connect-header">Site is Connected to Convertful</h1>79 <h1 class="conv-connect-header">Site is Connected to <?php echo esc_attr($conv_config['title']) ?></h1> 77 80 <div class="conv-connect-card"> 78 81 <div class="conv-connect-card-body"> 79 <p>Congratulations! Your site is connected to Convertful.</p>82 <p>Congratulations! Your site is connected to <?php echo esc_attr($conv_config['title']) ?>.</p> 80 83 <p>Now you can <strong>grow email lists easily</strong> using our top-notch builder 81 84 with unique features and amazing pre-built form templates!</p> 82 85 </div> 83 86 <div class="conv-connect-card-footer"> 84 <a class="conv-btn action_create" href="<?php echo esc_attr( $conv_ domain. '/sites/' . $site_id . '/widgets/create/' ) ?>" target="_blank">87 <a class="conv-btn action_create" href="<?php echo esc_attr( $conv_config['host'] . '/sites/' . $site_id . '/widgets/create/' ) ?>" target="_blank"> 85 88 Create New Optin 86 89 </a> -
convertful/tags/1.7/functions/shortcodes.php
r1679931 r2107873 4 4 function conv_register_shortcodes() { 5 5 add_shortcode( 'convertful', 'conv_handle_shortcode' ); 6 add_shortcode( 'optin', 'conv_handle_shortcode' ); 6 7 } 7 8 8 9 function conv_handle_shortcode( $atts, $content, $shortcode ) { 9 return isset( $atts['id'] ) ? '<div class=" convertful-' . intval( $atts['id'] ) . '"></div>' : '';10 return isset( $atts['id'] ) ? '<div class="'. $shortcode .'-' . intval( $atts['id'] ) . '"></div>' : ''; 10 11 } -
convertful/tags/1.7/readme.txt
r2007794 r2107873 3 3 Tags: optin, opt-in, mailchimp, popup, bar, slidein, subscribe, signup, form, email, marketing, lead, campaign 4 4 Requires at least: 4.0 5 Tested up to: 5. 0.26 Stable tag: 1. 65 Tested up to: 5.2.1 6 Stable tag: 1.7 7 7 License: GPLv2 or later 8 8 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 12 12 == Description == 13 13 14 ### Your Ultimate On-Site Conversion Tool14 ### The All-In-One Tool to Turn Your Visitors Into Leads and Sales 15 15 16 **[Convertful](https://convertful.com/?utm_medium=plugins&utm_source=wordpress-plugin) is the web service that provides you with all the modern on-site conversion solutions, natively integrates with all m odernEmail Marketing Platforms and provides the simplest WordPress installation.**16 **[Convertful](https://convertful.com/?utm_medium=plugins&utm_source=wordpress-plugin) is the web service that provides you with all the modern on-site conversion solutions, natively integrates with all major Email Marketing Platforms and provides the simplest WordPress installation.** 17 17 18 [youtube https://www.youtube.com/watch?v= u9tvNnfqDlo]18 [youtube https://www.youtube.com/watch?v=Z1wsU98F1lk] 19 19 20 20 Start with the FREE plan, that already includes: 21 21 22 * 50 Beautiful Forms Templates 23 * All Modern Sign-up Form Types: Exit Intent Popups, Floating Bars, Inline Widgets, Scroll Boxes and Welcome Mats 24 * Responsive Sign-up Forms Creator 22 * All the 5 Modern Widget Types: Exit Intent Popups, Floating Bars, Inline Widgets, Scroll Boxes, and Welcome Mats 23 * Exit Intent + 9 Other Smart Display Rules 24 * 71 Free Starting Templates 25 * Flexible Drag-n-Drop Editor 26 * 27 Native + 1500 Zapier Integrations 27 * Mobile-Friendly Widgets 28 * Live Analytics 29 * Illustrated Manuals and Video-Guides 25 30 26 31 > PLEASE NOTE: 27 > This plugin ONLY works as an integration interface to our full-featured [**Convertful**](https://convertful.com/?utm_medium=plugins&utm_source=wordpress-plugin) web service. A Convertful account is needed to activate the plugin (you can create one through the plugin interface or [click here to create your account ).](https://app.convertful.com/sign_up/?utm_medium=plugins&utm_source=wordpress-plugin)32 > This plugin ONLY works as an integration interface to our full-featured [**Convertful**](https://convertful.com/?utm_medium=plugins&utm_source=wordpress-plugin) web service. A Convertful account is needed to activate the plugin (you can create one through the plugin interface or [click here to create your account](https://app.convertful.com/sign_up/?utm_medium=plugins&utm_source=wordpress-plugin)). 28 33 29 ### Provides all the Modern On-Site Conversion Solutions 34 ### Provides all the Modern On-Site Conversion Solutions 👇 30 35 31 * **Exit Intent Popups** which show your offers inside of a lightbox right before visitors leave 32 * **Floating Bars** that are located at the top or bottom of your pages 33 * **Inline Widgets** that can be added to sidebars, after posts or to any other place of a page 34 * **Scroll Boxes** which are shown when a visitor scrolls some part of your blog post 35 * **Welcome Mats** that are shown to new visitors and help to focus on the offer 36 * **Yes/No Forms** which break the standard form pattern, and increase conversion 37 * **Content Upgrades** which offer additional content for a blog post 38 * **Deadline Funnels** that display countdown timers (including evergreen countdown timers) 39 * **Content Lockers** that request a visitor to optin in order to read an article 40 * **Social Optin Popups** which allow visitors to sign-up in 1 click using their Facebook / Twitter / Amazon email address 41 * **Survey Widgets** which politely ask for a visitor's interest before showing the offer itself 42 * [Soon] On-Site Retargeting Popups 43 * [Soon] Spin-to-Win's 44 * [Soon] Viral Giveaways 45 * [Soon] Landing Pages 36 1. **Spin-to-Win Gamification** — Increase your *Email Subscribers* and *Sales Conversion Rate* by offering your visitors to win a coupon code in exchange for the email address. 37 2. **Scratch Card Gamification** — Increase *Email Subscribers*, *Sales Conversion Rate*, and *Percentage or Returning Customers*, by providing the unique gamification experience, which your competitors aren't using yet. 38 3. **Segmentation Surveys** — Increase *Sales Conversion Rate*, *Customer Lifetime Value*, and *Email Subscribers* by auto-segmenting ~5.8% of your visitors, and instantly making them personalized highly-relevant offers. 39 4. **Quiz Funnels** — Increase *Sales Conversion Rate*, *Customer Lifetime Value*, and *Generate Leads* by offering a personalized answer, solution, or case study for taking a short survey. You can tag your visitors based on their answers to build personal communication in the future. 40 5. **Welcome Video Pop-ups** — *Retarget* up to 7.1% of new visitors to the sign-up page and *Increase Sign-ups* by the welcome popup that shows your Hero Video and offers a quick yes/no choice. 41 6. **Cart Abandonment Pop-ups** — Reduce <strong>Shopping Cart Abandonment Rate</strong> and increase <strong>Sales Conversion Rate</strong> by offering a discount right before a visitor leaves your cart or checkout pages. It generally recovers ~21% of leaving buyers. 42 7. **Welcome Discounts** — Increase *Sales Conversion Rate* and *Email Subscribers* by offering a welcome discount in exchange for an email subscription to first-time visitors. Complementary countdown timer can show an evergreen deadline to boost conversions. 43 8. **Follow Coupon Boxes** — Reduce *Abandonment Rate* and increase *Social Followers* by offering a welcome discount to new visitors in exchange for their social follows just before they leave. 44 9. **Welcome Giveaway Contests** — Increase *Email Subscribers* by offering a chance to win a valuable giveaway for opting-in. Or increase *Website Traffic* asking to share your store URL. 45 10. **Deadline Funnels** — Generate *Leads* and boost *Sales Conversion Rate* by creating an urgency via live countdown timers. You can add countdown timers to any of your widgets and you can create a personal evergreen deadline for every visitor. 46 11. **Yes/No Welcome Mats** — Convert ~4.5% of new visitors into *Email Subscribers* by making your best offer with a huge noticeable welcome screen. 47 12. **Targeted Content Upgrades** — Convert ~3.2% of article readers into *Email Subscribers* by offering a highly-relevant additional content in exchange for the opt-in. 48 13. **Yes/No Exit Intent Pop-ups** — Recover ~1.8% of leaving visitors into *Email Subscribers* by gently offering a tripwire right before your visitors leave. 49 14. **Content Lockings** — Convert up to 17.6% of your visitors into *Email Subscribers* and *Leads* by requiring your visitors to opt-in in order to view your premium content. 50 15. **Social Subscription Pop-ups** — Increase *Email Subscribers* and generate more *Leads* by placing a complementary 'Subscribe with Facebook' button. Once a visitor clicks this button, Convertful grabs his/her name and email address and sends straight to your email list. This allows to reduce friction and avoid email typos. 51 16. **Account-Based Personal Offers** — Deep-connect Convertful with your CRM to make the most personalized offers to your site visitors, based on their tags, custom field values, or other properties from the CRM. 46 52 47 ### Supports all Major Email Marketing Platforms 53 ... and so much more! 48 54 49 You can build email list or generate leads to: ActiveCampaign, ActiveTrail, AWeber, Campaign Monitor, ConstantContact, ConvertFox, ConvertKit, Customer.io, FreshMail, GetResponse, HubSpot, Klaviyo, Mad Mimi, MailChimp, MailerLite, MailUp, Remarkety, seninblue, SendPulse, Sendy, and other email marketing services. 55 ### Integrates With What You Already Use 56 57 You can build email list or generate leads to: ActiveCampaign, ActiveTrail, AWeber, Campaign Monitor, ConstantContact, ConvertFox, ConvertKit, Customer.io, FreshMail, GetResponse, HubSpot, Klaviyo, Mad Mimi, MailChimp, MailerLite, MailUp, Remarkety, sendinblue, SendPulse, Sendy, Zapier, and other email marketing services. 50 58 51 59 ### Advanced Targeting Rules … … 57 65 We created an opt-in form app that cures the main pain points you might have, fast: 58 66 59 * ** Flexible form creator** — We offer a flexible form creator allowing to customize any form element you like: layout, content, colors, positioning, and many more.67 * **Drag-n-drop Widget Editor** — We offer a flexible form creator allowing to customize any form element you like: layout, content, colors, positioning, and many more. 60 68 * **Design and templates variety** — Design quality and diversity are one of our key principles. Use unique in-lines, pop-ups, sideboxes (slideins), fullscreens and floating bars. Use our library of 50+ modern form templates to create the form that suits your site design the best. 61 69 * **Right audience, right time, right place** — Flexibly set your forms’ behavior: when and where to show, and when NOT to show them. Convertful forms will never annoy your visitors. … … 76 84 > This plugin ONLY works as an integration interface to our full-featured [**Convertful**](https://convertful.com/?utm_medium=plugins&utm_source=wordpress-plugin) web service. A Convertful account is needed to activate the plugin (you can create one through the plugin interface or [click here to create your account).](https://app.convertful.com/sign_up/?utm_medium=plugins&utm_source=wordpress-plugin) 77 85 86 78 87 == Frequently Asked Questions == 79 88 … … 92 101 93 102 == Changelog == 103 104 = 1.7 = 105 * Improved compatibility with White Label Agency features 94 106 95 107 = 1.6 = -
convertful/trunk/convertful.php
r2007794 r2107873 3 3 /** 4 4 * Plugin Name: Convertful - Your Ultimate On-Site Conversion Tool 5 * Version: 1. 65 * Version: 1.7 6 6 * Plugin URI: https://convertful.com/ 7 7 * Description: All the modern on-site conversion solutions, natively integrates with all modern Email Marketing Platforms. … … 13 13 14 14 // Global variables for plugin usage (global declaration is needed here for WP CLI compatibility) 15 global $conv_file, $conv_dir, $conv_uri, $conv_version, $conv_domain; 16 //$conv_domain = 'http://convertful.local'; 17 $conv_domain = 'https://app.convertful.com'; 15 global $conv_file, $conv_dir, $conv_uri, $conv_version, $conv_config; 18 16 $conv_file = __FILE__; 19 17 $conv_dir = plugin_dir_path( __FILE__ ); … … 22 20 unset( $conv_matches ); 23 21 22 if (file_exists($conv_dir.'config.php')) 23 { 24 $conv_config = require $conv_dir.'config.php'; 25 } 26 27 /** 28 * Get script id 29 * @return string 30 */ 31 function conv_get_script_id() 32 { 33 global $conv_config; 34 $url = wp_parse_url($conv_config['host']); 35 if ( ! preg_match('/^(.*?)(convertful|devcf)\.[a-z]{3,5}$/', $url['host'])) 36 { 37 return 'optin-api'; 38 } 39 return 'convertful-api'; 40 } 41 42 /** 43 * Get script file name 44 * @return string 45 */ 46 function conv_get_script_filename() 47 { 48 return conv_get_script_id() === 'convertful-api' 49 ? 'Convertful.js' 50 : 'optin.js'; 51 } 52 24 53 add_action( 'init', 'conv_init' ); 25 54 function conv_init() { 26 55 if ( get_option( 'optinguru_owner_id' ) ) { 27 update_option( 'convertful_owner_id', get_option( 'optinguru_owner_id' ), TRUE ); 28 update_option( 'convertful_site_id', get_option( 'optinguru_site_id', get_option( 'optinguru_website_id' ) ), FALSE ); 29 update_option( 'convertful_token', get_option( 'optinguru_token' ), FALSE ); 30 } 31 $owner_id = get_option( 'convertful_owner_id' ); 56 update_option( 'conv_owner_id', get_option( 'optinguru_owner_id' ), TRUE ); 57 update_option( 'conv_site_id', get_option( 'optinguru_site_id', get_option( 'optinguru_website_id' ) ), FALSE ); 58 update_option( 'conv_token', get_option( 'optinguru_token' ), FALSE ); 59 } 60 if ( get_option( 'convertful_owner_id' ) ) { 61 update_option( 'conv_owner_id', get_option( 'convertful_owner_id' ), TRUE ); 62 update_option( 'conv_site_id', get_option( 'convertful_site_id' ), FALSE ); 63 update_option( 'conv_token', get_option( 'convertful_token' ), FALSE ); 64 } 65 $owner_id = get_option( 'conv_owner_id' ); 32 66 if ( ! is_admin() AND $owner_id !== FALSE ) { 33 67 add_action( 'wp_enqueue_scripts', 'conv_enqueue_scripts' ); … … 45 79 46 80 function conv_enqueue_scripts() { 47 global $conv_domain, $conv_version; 48 wp_enqueue_script( 'convertful-api', $conv_domain . '/Convertful.js', array(), $conv_version, TRUE ); 81 global $conv_config, $conv_version; 82 $script_id = conv_get_script_id(); 83 wp_enqueue_script( $script_id, $conv_config['host'].'/'.conv_get_script_filename(), array(), $conv_version, TRUE ); 49 84 50 85 $tags = array(); … … 66 101 $user_meta = wp_get_current_user(); 67 102 68 wp_localize_script( 'convertful-api', 'convPlatformVars', array(103 wp_localize_script( $script_id, 'convPlatformVars', array( 69 104 'postType' => get_post_type(), 70 105 'categories' => $categories, … … 75 110 76 111 function conv_script_loader_tag( $tag, $handle ) { 77 if ( $handle !== 'convertful-api' ) { 112 global $conv_config; 113 $script_id = conv_get_script_id(); 114 if ( $handle !== $script_id ) { 78 115 return $tag; 79 116 } 80 global $conv_domain; 81 82 return '<script type="text/javascript" id="convertful-api" src="' . $conv_domain . '/Convertful.js" data-owner="' . get_option( 'convertful_owner_id' ) . '" async="async"></script>'; 117 $script = sprintf( '%s/%s?owner=%s', $conv_config['host'], conv_get_script_filename(), get_option( 'conv_owner_id' ) ); 118 return sprintf( 119 '<script type="text/javascript" id="%s" src="%s" async="async"></script>', 120 $script_id, 121 $script 122 ); 83 123 } 84 124 … … 101 141 } 102 142 // Taking into account promotional links 103 $ref_data = get_transient( 'conv ertful-ref' );143 $ref_data = get_transient( 'conv-ref' ); 104 144 if ( $ref_data AND strpos( $ref_data, '|' ) !== FALSE ) { 105 145 $ref_data = explode( '|', $ref_data ); 106 146 // Preventing violations with lifetime values 107 147 if ( time() - intval( $ref_data[1] ) < DAY_IN_SECONDS ) { 108 update_option( 'conv ertful_ref', $ref_data[0], FALSE );109 } 110 delete_transient( 'conv ertful-ref' );111 } 112 $owner_id = get_option( 'conv ertful_owner_id' );148 update_option( 'conv_ref', $ref_data[0], FALSE ); 149 } 150 delete_transient( 'conv-ref' ); 151 } 152 $owner_id = get_option( 'conv_owner_id' ); 113 153 if ( $owner_id === FALSE ) { 114 154 $redirect_location = admin_url( 'tools.php?page=conv-settings' ); … … 149 189 delete_option( 'optinguru_' . $option_name ); 150 190 delete_option( 'convertful_' . $option_name ); 191 delete_option( 'conv_' . $option_name ); 151 192 } 152 193 } … … 158 199 function conv_get_info() { 159 200 160 if ( $_POST['access_token'] !== get_option( 'conv ertful_token' )) {201 if ( $_POST['access_token'] !== get_option( 'conv_token' )) { 161 202 wp_send_json_error( array( 162 203 'access_token' => 'Wrong access token', … … 206 247 function conv_complete_authorization() { 207 248 208 if ( $_POST['access_token'] !== get_option( 'conv ertful_token' )) {249 if ( $_POST['access_token'] !== get_option( 'conv_token' )) { 209 250 wp_send_json_error( array( 210 251 'access_token' => 'Wrong access token', … … 220 261 } 221 262 222 update_option( 'conv ertful_owner_id', (int) $_POST['owner_id'], TRUE );223 update_option( 'conv ertful_site_id', (int) $_POST['site_id'], FALSE );263 update_option( 'conv_owner_id', (int) $_POST['owner_id'], TRUE ); 264 update_option( 'conv_site_id', (int) $_POST['site_id'], FALSE ); 224 265 225 266 wp_send_json_success(); -
convertful/trunk/functions/admin_pages.php
r2002204 r2107873 3 3 add_action( 'admin_menu', 'conv_add_admin_pages', 30 ); 4 4 function conv_add_admin_pages() { 5 add_submenu_page( 'tools.php', 'Convertful', 'Convertful', 'manage_options', 'conv-settings', 'conv_settings_page' ); 5 global $conv_config; 6 add_submenu_page( 'tools.php', $conv_config['title'], $conv_config['title'], 'manage_options', 'conv-settings', 'conv_settings_page' ); 6 7 } 7 8 … … 9 10 // Handling return to backend 10 11 if ( isset( $_GET['owner_id'] ) AND isset( $_GET['site_id'] ) AND isset( $_GET['token'] ) AND isset( $_GET['_nonce'] ) AND wp_verify_nonce( $_GET['_nonce'], 'conv_connect' ) ) { 11 update_option( 'conv ertful_owner_id', (int) $_GET['owner_id'], TRUE );12 update_option( 'conv ertful_site_id', (int) $_GET['site_id'], FALSE );13 update_option( 'conv ertful_token', $_GET['token'], FALSE );12 update_option( 'conv_owner_id', (int) $_GET['owner_id'], TRUE ); 13 update_option( 'conv_site_id', (int) $_GET['site_id'], FALSE ); 14 update_option( 'conv_token', $_GET['token'], FALSE ); 14 15 // Redirect 15 16 echo '<script type="text/javascript">location.assign(\'' . admin_url( 'tools.php?page=conv-settings' ) . '\')</script>'; … … 26 27 27 28 function conv_settings_page() { 28 global $conv_ domain;29 global $conv_config; 29 30 conv_handle_return_to_endpoint(); 30 31 conv_handle_disconnect_click(); 31 $site_id = get_option( 'conv ertful_site_id' );32 $site_id = get_option( 'conv_site_id' ); 32 33 if ( $site_id === FALSE ) { 33 $connect_url = $conv_ domain. '/sites/authorize/WordPressPlugin/';34 if ( $ref_username = get_option( 'conv ertful_ref' ) ) {34 $connect_url = $conv_config['host'] . '/sites/authorize/WordPressPlugin/'; 35 if ( $ref_username = get_option( 'conv_ref' ) ) { 35 36 $connect_url .= '?ref=' . $ref_username; 36 37 } 37 38 // Generating access token to use it to authenticate requests 38 39 $access_token = wp_generate_password( 32, false ); 39 update_option( 'conv ertful_token', $access_token, FALSE );40 update_option( 'conv_token', $access_token, FALSE ); 40 41 ?> 41 42 <div class="conv-connect"> 42 43 <div class="conv-connect-logo"> 43 <img class="conv-connect-logo-img" src="<?php echo $conv_domain ?>/assets/img/logo_blue.png" srcset="<?php echo $conv_domain ?>/assets/img/[email protected] 2x" alt="Convertful">44 <img class="conv-connect-logo-img" src="<?php echo esc_attr($conv_config['logo']) ?>" srcset="<?php echo esc_attr($conv_config['logo@2x']) ?>" alt="<?php echo esc_attr($conv_config['title'])?>"> 44 45 </div> 45 46 <div class="conv-connect-box"> 46 <h1 class="conv-connect-header">Connect Site to Convertful</h1>47 <h1 class="conv-connect-header">Connect Site to <?php echo esc_attr($conv_config['title']) ?></h1> 47 48 <form class="conv-connect-card" method="post" action="<?php echo esc_attr( $connect_url ) ?>"> 48 49 <div class="conv-connect-card-body"> 49 <p>Please create a ConvertfulAccount or connect to an existing Account.<br>50 <p>Please create a <?php echo esc_attr($conv_config['title']) ?> Account or connect to an existing Account.<br> 50 51 This will allow you to <strong>grow email lists easily</strong> using our top-notch builder 51 52 with unique features and amazing pre-built form templates!</p> … … 59 60 60 61 <button class="conv-btn action_connect"> 61 Connect to Convertful62 Connect to <?php echo esc_attr($conv_config['title']) ?> 62 63 </button> 63 64 </div> 64 65 </form> 65 66 </div> 66 <a href="https://app.convertful.com/docs/connect/wordpress/" class="conv-connect-help" target="_blank">Get help connecting your site</a> 67 <?php if(isset($conv_config['connect_help_url']) AND ! empty($conv_config['connect_help_url'])): ?> 68 <a href="<?php echo esc_attr($conv_config['connect_help_url']) ?>" class="conv-connect-help" target="_blank">Get help connecting your site</a> 69 <?php endif; ?> 67 70 </div> 68 71 <?php … … 71 74 <div class="conv-connect type_success"> 72 75 <div class="conv-connect-logo"> 73 <img class="conv-connect-logo-img" src="<?php echo $conv_domain ?>/assets/img/logo_blue.png" srcset="<?php echo $conv_domain ?>/assets/img/[email protected] 2x" alt="Convertful">76 <img class="conv-connect-logo-img" src="<?php echo esc_attr($conv_config['logo']) ?>" srcset="<?php echo esc_attr($conv_config['logo@2x']) ?> 2x" alt="<?php echo esc_attr($conv_config['title']) ?>"> 74 77 </div> 75 78 <div class="conv-connect-box"> 76 <h1 class="conv-connect-header">Site is Connected to Convertful</h1>79 <h1 class="conv-connect-header">Site is Connected to <?php echo esc_attr($conv_config['title']) ?></h1> 77 80 <div class="conv-connect-card"> 78 81 <div class="conv-connect-card-body"> 79 <p>Congratulations! Your site is connected to Convertful.</p>82 <p>Congratulations! Your site is connected to <?php echo esc_attr($conv_config['title']) ?>.</p> 80 83 <p>Now you can <strong>grow email lists easily</strong> using our top-notch builder 81 84 with unique features and amazing pre-built form templates!</p> 82 85 </div> 83 86 <div class="conv-connect-card-footer"> 84 <a class="conv-btn action_create" href="<?php echo esc_attr( $conv_ domain. '/sites/' . $site_id . '/widgets/create/' ) ?>" target="_blank">87 <a class="conv-btn action_create" href="<?php echo esc_attr( $conv_config['host'] . '/sites/' . $site_id . '/widgets/create/' ) ?>" target="_blank"> 85 88 Create New Optin 86 89 </a> -
convertful/trunk/functions/shortcodes.php
r1679931 r2107873 4 4 function conv_register_shortcodes() { 5 5 add_shortcode( 'convertful', 'conv_handle_shortcode' ); 6 add_shortcode( 'optin', 'conv_handle_shortcode' ); 6 7 } 7 8 8 9 function conv_handle_shortcode( $atts, $content, $shortcode ) { 9 return isset( $atts['id'] ) ? '<div class=" convertful-' . intval( $atts['id'] ) . '"></div>' : '';10 return isset( $atts['id'] ) ? '<div class="'. $shortcode .'-' . intval( $atts['id'] ) . '"></div>' : ''; 10 11 } -
convertful/trunk/readme.txt
r2007794 r2107873 3 3 Tags: optin, opt-in, mailchimp, popup, bar, slidein, subscribe, signup, form, email, marketing, lead, campaign 4 4 Requires at least: 4.0 5 Tested up to: 5. 0.26 Stable tag: 1. 65 Tested up to: 5.2.1 6 Stable tag: 1.7 7 7 License: GPLv2 or later 8 8 License URI: http://www.gnu.org/licenses/gpl-2.0.html … … 12 12 == Description == 13 13 14 ### Your Ultimate On-Site Conversion Tool14 ### The All-In-One Tool to Turn Your Visitors Into Leads and Sales 15 15 16 **[Convertful](https://convertful.com/?utm_medium=plugins&utm_source=wordpress-plugin) is the web service that provides you with all the modern on-site conversion solutions, natively integrates with all m odernEmail Marketing Platforms and provides the simplest WordPress installation.**16 **[Convertful](https://convertful.com/?utm_medium=plugins&utm_source=wordpress-plugin) is the web service that provides you with all the modern on-site conversion solutions, natively integrates with all major Email Marketing Platforms and provides the simplest WordPress installation.** 17 17 18 [youtube https://www.youtube.com/watch?v= u9tvNnfqDlo]18 [youtube https://www.youtube.com/watch?v=Z1wsU98F1lk] 19 19 20 20 Start with the FREE plan, that already includes: 21 21 22 * 50 Beautiful Forms Templates 23 * All Modern Sign-up Form Types: Exit Intent Popups, Floating Bars, Inline Widgets, Scroll Boxes and Welcome Mats 24 * Responsive Sign-up Forms Creator 22 * All the 5 Modern Widget Types: Exit Intent Popups, Floating Bars, Inline Widgets, Scroll Boxes, and Welcome Mats 23 * Exit Intent + 9 Other Smart Display Rules 24 * 71 Free Starting Templates 25 * Flexible Drag-n-Drop Editor 26 * 27 Native + 1500 Zapier Integrations 27 * Mobile-Friendly Widgets 28 * Live Analytics 29 * Illustrated Manuals and Video-Guides 25 30 26 31 > PLEASE NOTE: 27 > This plugin ONLY works as an integration interface to our full-featured [**Convertful**](https://convertful.com/?utm_medium=plugins&utm_source=wordpress-plugin) web service. A Convertful account is needed to activate the plugin (you can create one through the plugin interface or [click here to create your account ).](https://app.convertful.com/sign_up/?utm_medium=plugins&utm_source=wordpress-plugin)32 > This plugin ONLY works as an integration interface to our full-featured [**Convertful**](https://convertful.com/?utm_medium=plugins&utm_source=wordpress-plugin) web service. A Convertful account is needed to activate the plugin (you can create one through the plugin interface or [click here to create your account](https://app.convertful.com/sign_up/?utm_medium=plugins&utm_source=wordpress-plugin)). 28 33 29 ### Provides all the Modern On-Site Conversion Solutions 34 ### Provides all the Modern On-Site Conversion Solutions 👇 30 35 31 * **Exit Intent Popups** which show your offers inside of a lightbox right before visitors leave 32 * **Floating Bars** that are located at the top or bottom of your pages 33 * **Inline Widgets** that can be added to sidebars, after posts or to any other place of a page 34 * **Scroll Boxes** which are shown when a visitor scrolls some part of your blog post 35 * **Welcome Mats** that are shown to new visitors and help to focus on the offer 36 * **Yes/No Forms** which break the standard form pattern, and increase conversion 37 * **Content Upgrades** which offer additional content for a blog post 38 * **Deadline Funnels** that display countdown timers (including evergreen countdown timers) 39 * **Content Lockers** that request a visitor to optin in order to read an article 40 * **Social Optin Popups** which allow visitors to sign-up in 1 click using their Facebook / Twitter / Amazon email address 41 * **Survey Widgets** which politely ask for a visitor's interest before showing the offer itself 42 * [Soon] On-Site Retargeting Popups 43 * [Soon] Spin-to-Win's 44 * [Soon] Viral Giveaways 45 * [Soon] Landing Pages 36 1. **Spin-to-Win Gamification** — Increase your *Email Subscribers* and *Sales Conversion Rate* by offering your visitors to win a coupon code in exchange for the email address. 37 2. **Scratch Card Gamification** — Increase *Email Subscribers*, *Sales Conversion Rate*, and *Percentage or Returning Customers*, by providing the unique gamification experience, which your competitors aren't using yet. 38 3. **Segmentation Surveys** — Increase *Sales Conversion Rate*, *Customer Lifetime Value*, and *Email Subscribers* by auto-segmenting ~5.8% of your visitors, and instantly making them personalized highly-relevant offers. 39 4. **Quiz Funnels** — Increase *Sales Conversion Rate*, *Customer Lifetime Value*, and *Generate Leads* by offering a personalized answer, solution, or case study for taking a short survey. You can tag your visitors based on their answers to build personal communication in the future. 40 5. **Welcome Video Pop-ups** — *Retarget* up to 7.1% of new visitors to the sign-up page and *Increase Sign-ups* by the welcome popup that shows your Hero Video and offers a quick yes/no choice. 41 6. **Cart Abandonment Pop-ups** — Reduce <strong>Shopping Cart Abandonment Rate</strong> and increase <strong>Sales Conversion Rate</strong> by offering a discount right before a visitor leaves your cart or checkout pages. It generally recovers ~21% of leaving buyers. 42 7. **Welcome Discounts** — Increase *Sales Conversion Rate* and *Email Subscribers* by offering a welcome discount in exchange for an email subscription to first-time visitors. Complementary countdown timer can show an evergreen deadline to boost conversions. 43 8. **Follow Coupon Boxes** — Reduce *Abandonment Rate* and increase *Social Followers* by offering a welcome discount to new visitors in exchange for their social follows just before they leave. 44 9. **Welcome Giveaway Contests** — Increase *Email Subscribers* by offering a chance to win a valuable giveaway for opting-in. Or increase *Website Traffic* asking to share your store URL. 45 10. **Deadline Funnels** — Generate *Leads* and boost *Sales Conversion Rate* by creating an urgency via live countdown timers. You can add countdown timers to any of your widgets and you can create a personal evergreen deadline for every visitor. 46 11. **Yes/No Welcome Mats** — Convert ~4.5% of new visitors into *Email Subscribers* by making your best offer with a huge noticeable welcome screen. 47 12. **Targeted Content Upgrades** — Convert ~3.2% of article readers into *Email Subscribers* by offering a highly-relevant additional content in exchange for the opt-in. 48 13. **Yes/No Exit Intent Pop-ups** — Recover ~1.8% of leaving visitors into *Email Subscribers* by gently offering a tripwire right before your visitors leave. 49 14. **Content Lockings** — Convert up to 17.6% of your visitors into *Email Subscribers* and *Leads* by requiring your visitors to opt-in in order to view your premium content. 50 15. **Social Subscription Pop-ups** — Increase *Email Subscribers* and generate more *Leads* by placing a complementary 'Subscribe with Facebook' button. Once a visitor clicks this button, Convertful grabs his/her name and email address and sends straight to your email list. This allows to reduce friction and avoid email typos. 51 16. **Account-Based Personal Offers** — Deep-connect Convertful with your CRM to make the most personalized offers to your site visitors, based on their tags, custom field values, or other properties from the CRM. 46 52 47 ### Supports all Major Email Marketing Platforms 53 ... and so much more! 48 54 49 You can build email list or generate leads to: ActiveCampaign, ActiveTrail, AWeber, Campaign Monitor, ConstantContact, ConvertFox, ConvertKit, Customer.io, FreshMail, GetResponse, HubSpot, Klaviyo, Mad Mimi, MailChimp, MailerLite, MailUp, Remarkety, seninblue, SendPulse, Sendy, and other email marketing services. 55 ### Integrates With What You Already Use 56 57 You can build email list or generate leads to: ActiveCampaign, ActiveTrail, AWeber, Campaign Monitor, ConstantContact, ConvertFox, ConvertKit, Customer.io, FreshMail, GetResponse, HubSpot, Klaviyo, Mad Mimi, MailChimp, MailerLite, MailUp, Remarkety, sendinblue, SendPulse, Sendy, Zapier, and other email marketing services. 50 58 51 59 ### Advanced Targeting Rules … … 57 65 We created an opt-in form app that cures the main pain points you might have, fast: 58 66 59 * ** Flexible form creator** — We offer a flexible form creator allowing to customize any form element you like: layout, content, colors, positioning, and many more.67 * **Drag-n-drop Widget Editor** — We offer a flexible form creator allowing to customize any form element you like: layout, content, colors, positioning, and many more. 60 68 * **Design and templates variety** — Design quality and diversity are one of our key principles. Use unique in-lines, pop-ups, sideboxes (slideins), fullscreens and floating bars. Use our library of 50+ modern form templates to create the form that suits your site design the best. 61 69 * **Right audience, right time, right place** — Flexibly set your forms’ behavior: when and where to show, and when NOT to show them. Convertful forms will never annoy your visitors. … … 76 84 > This plugin ONLY works as an integration interface to our full-featured [**Convertful**](https://convertful.com/?utm_medium=plugins&utm_source=wordpress-plugin) web service. A Convertful account is needed to activate the plugin (you can create one through the plugin interface or [click here to create your account).](https://app.convertful.com/sign_up/?utm_medium=plugins&utm_source=wordpress-plugin) 77 85 86 78 87 == Frequently Asked Questions == 79 88 … … 92 101 93 102 == Changelog == 103 104 = 1.7 = 105 * Improved compatibility with White Label Agency features 94 106 95 107 = 1.6 =
Note: See TracChangeset
for help on using the changeset viewer.