Changeset 3471405
- Timestamp:
- 02/27/2026 11:50:03 PM (5 weeks ago)
- Location:
- firstpromoter
- Files:
-
- 28 added
- 3 edited
-
tags/0.3.4 (added)
-
tags/0.3.4/assets (added)
-
tags/0.3.4/assets/css (added)
-
tags/0.3.4/assets/css/admin.css (added)
-
tags/0.3.4/assets/css/index.php (added)
-
tags/0.3.4/assets/index.php (added)
-
tags/0.3.4/assets/js (added)
-
tags/0.3.4/assets/js/admin.js (added)
-
tags/0.3.4/assets/js/custom-forms.js (added)
-
tags/0.3.4/assets/js/index.php (added)
-
tags/0.3.4/firstpromoter.php (added)
-
tags/0.3.4/includes (added)
-
tags/0.3.4/includes/class-fp-helpers.php (added)
-
tags/0.3.4/includes/class-fp-settings-page.php (added)
-
tags/0.3.4/includes/index.php (added)
-
tags/0.3.4/index.php (added)
-
tags/0.3.4/integrations (added)
-
tags/0.3.4/integrations/class-fp-integration-base.php (added)
-
tags/0.3.4/integrations/class-fp-integration-contactform7.php (added)
-
tags/0.3.4/integrations/class-fp-integration-customforms.php (added)
-
tags/0.3.4/integrations/class-fp-integration-memberpress.php (added)
-
tags/0.3.4/integrations/class-fp-integration-optimizepress.php (added)
-
tags/0.3.4/integrations/class-fp-integration-payment-links.php (added)
-
tags/0.3.4/integrations/class-fp-integration-urlcapture.php (added)
-
tags/0.3.4/integrations/class-fp-integration-woocommerce.php (added)
-
tags/0.3.4/integrations/index.php (added)
-
tags/0.3.4/readme.txt (added)
-
trunk/firstpromoter.php (modified) (4 diffs)
-
trunk/includes/class-fp-settings-page.php (modified) (4 diffs)
-
trunk/integrations/class-fp-integration-payment-links.php (added)
-
trunk/readme.txt (modified) (7 diffs)
Legend:
- Unmodified
- Added
- Removed
-
firstpromoter/trunk/firstpromoter.php
r3469926 r3471405 3 3 Plugin Name: FirstPromoter 4 4 Description: FirstPromoter tracking scripts with WooCommerce, OptimizePress, Contact Form 7 & MemberPress 5 Version: 0.3. 35 Version: 0.3.4 6 6 Author: FirstPromoter 7 7 Author URI: https://firstpromoter.com … … 20 20 21 21 // Define plugin constants 22 define('FIRSTPROMOTER_VERSION', '0.3. 3');22 define('FIRSTPROMOTER_VERSION', '0.3.4'); 23 23 define('FIRSTPROMOTER_PLUGIN_PATH', plugin_dir_path(__FILE__)); 24 24 define('FIRSTPROMOTER_PLUGIN_URL', plugin_dir_url(__FILE__)); … … 33 33 require_once FIRSTPROMOTER_PLUGIN_PATH . 'integrations/class-fp-integration-customforms.php'; 34 34 require_once FIRSTPROMOTER_PLUGIN_PATH . 'integrations/class-fp-integration-urlcapture.php'; 35 require_once FIRSTPROMOTER_PLUGIN_PATH . 'integrations/class-fp-integration-payment-links.php'; 35 36 36 37 class FirstPromoter_Core … … 251 252 } 252 253 254 // Payment Links integration - always available (no plugin dependency) 255 if ( 256 isset($integration_settings['payment_links_enabled']) && 257 $integration_settings['payment_links_enabled'] 258 ) { 259 new FirstPromoter_Integration_PaymentLinks($integration_settings); 260 } 261 253 262 do_action('firstpromoter_load_integrations', $integration_settings, $this->available_integrations); 254 263 } -
firstpromoter/trunk/includes/class-fp-settings-page.php
r3464601 r3471405 121 121 'custom_content_type' => 'url_capture', 122 122 'description' => 'Capture referrals from thank you pages where the email (and optionally a user ID) is passed as a URL query parameter. Useful when your checkout or funnel redirects to a confirmation page with the email in the URL.', 123 ]; 124 125 // Payment Links - always available (no plugin dependency) 126 $this->availableIntegrations['PaymentLinks'] = [ 127 'title' => 'Payment Links', 128 'settings' => [ 129 'enabled_key' => 'payment_links_enabled', 130 ], 131 'options' => [], 132 'custom_content_type' => 'payment_links', 133 'description' => 'Automatically append the FirstPromoter tracking ID to payment links on your pages as the client_reference_id parameter. Works with Stripe buy.stripe.com links, custom checkout domains, or any direct payment URL.', 123 134 ]; 124 135 } … … 374 385 </p> 375 386 </div> 387 <?php elseif ($integration['custom_content_type'] === 'payment_links'): ?> 388 <div class="fp-payment-links-fields" style="margin-top: 12px;"> 389 <div class="fp-form-field"> 390 <label class="firstpromoter_label">Payment Link URL Prefix</label> 391 <input type="text" 392 name="firstpromoter_integration_settings[payment_link_prefixes]" 393 value="<?php echo esc_attr(isset($this->integration_settings['payment_link_prefixes']) ? $this->integration_settings['payment_link_prefixes'] : 'https://buy.stripe.com/'); ?>" 394 placeholder="https://buy.stripe.com/" 395 class="fp-input regular-text"> 396 <p class="description">Links starting with this prefix will have <code>client_reference_id</code> appended automatically. Separate multiple prefixes with a comma. Default: <code>https://buy.stripe.com/</code>. Change this if you use a custom domain or a different payment provider.</p> 397 </div> 398 </div> 376 399 <?php elseif ($integration['custom_content_type'] === 'url_capture'): ?> 377 400 <div class="fp-url-capture-fields" style="margin-top: 12px;"> … … 418 441 419 442 // Sanitize toggle checkboxes 420 $toggle_keys = ['woo_enabled', 'op_enabled', 'cf7_enabled', 'mepr_enabled', 'custom_forms_enabled', 'url_capture_enabled' ];443 $toggle_keys = ['woo_enabled', 'op_enabled', 'cf7_enabled', 'mepr_enabled', 'custom_forms_enabled', 'url_capture_enabled', 'payment_links_enabled']; 421 444 foreach ($toggle_keys as $key) { 422 445 $sanitized[$key] = isset($input[$key]) ? 1 : 0; … … 438 461 $sanitized['url_email_param'] = sanitize_text_field(isset($input['url_email_param']) ? $input['url_email_param'] : ''); 439 462 $sanitized['url_uid_param'] = sanitize_text_field(isset($input['url_uid_param']) ? $input['url_uid_param'] : ''); 463 464 // Sanitize Payment Links prefix 465 $sanitized['payment_link_prefixes'] = sanitize_text_field(isset($input['payment_link_prefixes']) ? $input['payment_link_prefixes'] : ''); 440 466 441 467 // Sanitize custom form selectors -
firstpromoter/trunk/readme.txt
r3469926 r3471405 4 4 Requires at least: 5.0 5 5 Tested up to: 6.9 6 Stable tag: 0.3. 36 Stable tag: 0.3.4 7 7 Requires PHP: 5.6 8 8 License: GPLv2 or later … … 26 26 * Custom Form Tracking - track email submissions from any form using CSS selectors 27 27 * URL Email Capture - capture referrals from thank you pages where the email is in the URL 28 * Payment Links - automatically append the FirstPromoter tracking ID to payment links on your pages 28 29 * Cross-domain tracking support 29 30 * Automatically send sales data to FirstPromoter (WooCommerce, MemberPress) … … 88 89 * No plugin dependency required — works on any WordPress page 89 90 91 = Payment Links = 92 93 When enabled, the Payment Links integration allows you to: 94 95 * Automatically append the FirstPromoter tracking ID to payment links on your pages as the `client_reference_id` parameter 96 * Works with Stripe `buy.stripe.com` links, custom Stripe checkout domains, or any direct payment URL 97 * Configure the URL prefix to match — defaults to `https://buy.stripe.com/`, supports comma-separated multiple prefixes 98 * Uses MutationObserver to handle dynamically added links (popups, AJAX-injected content) 99 * No plugin dependency required — works on any WordPress page 100 90 101 91 102 == Installation == … … 135 146 5. **Custom Form Tracking**: Track email submissions from any form using CSS selectors 136 147 6. **URL Email Capture**: Capture referrals from thank you pages where the email is in the URL 148 7. **Payment Links**: Automatically append the tracking ID to payment links on your pages 137 149 138 150 Enable the integrations that apply to your website and configure their specific settings. … … 157 169 158 170 The plugin has specific integrations for WooCommerce, OptimizePress, Contact Form 7, and MemberPress. The Custom Form Tracking and URL Email Capture integrations work with any platform — no additional plugin required. 171 172 = How do I use Payment Links? = 173 174 Enable the "Payment Links" integration. By default it targets all `https://buy.stripe.com/` links on your pages. If you use a custom Stripe domain or a different payment provider, enter your URL prefix in the Payment Link URL Prefix field. You can enter multiple prefixes separated by commas. The plugin will automatically append `?client_reference_id={tid}` to every matching link as soon as the link appears in the DOM and the FirstPromoter tracking ID is available. 159 175 160 176 = How do I use URL Email Capture? = … … 180 196 181 197 == Changelog == 198 199 = 0.3.4 = 200 * New: Payment Links integration — automatically append FirstPromoter tracking ID to payment links as `client_reference_id` 201 * Supports Stripe buy.stripe.com links, custom checkout domains, or any direct payment URL prefix 202 * Configurable URL prefix field with comma-separated support for multiple prefixes 203 * Uses MutationObserver to handle dynamically added links (popups, AJAX content) with no fixed timeouts 182 204 183 205 = 0.3.3 = … … 243 265 == Upgrade Notice == 244 266 267 = 0.3.4 = 268 New: Payment Links integration — automatically append your FirstPromoter tracking ID to Stripe payment links or any custom payment URL on your pages. 269 245 270 = 0.3.3 = 246 271 WordPress coding standards compliance improvements in URL Email Capture integration. No behaviour changes.
Note: See TracChangeset
for help on using the changeset viewer.