Changeset 2329508
- Timestamp:
- 06/23/2020 06:02:23 PM (6 years ago)
- Location:
- transact
- Files:
-
- 6 edited
- 14 copied
-
tags/4.4.0 (copied) (copied from transact/trunk)
-
tags/4.4.0/README.md (copied) (copied from transact/trunk/README.md)
-
tags/4.4.0/admin/controllers/transact-admin-settings-menu.php (copied) (copied from transact/trunk/admin/controllers/transact-admin-settings-menu.php)
-
tags/4.4.0/admin/controllers/transact-admin-settings-post.php (copied) (copied from transact/trunk/admin/controllers/transact-admin-settings-post.php)
-
tags/4.4.0/admin/controllers/transact-shortcode.php (copied) (copied from transact/trunk/admin/controllers/transact-shortcode.php)
-
tags/4.4.0/frontend/assets/style.css (copied) (copied from transact/trunk/frontend/assets/style.css)
-
tags/4.4.0/frontend/assets/transact_post.js (copied) (copied from transact/trunk/frontend/assets/transact_post.js) (18 diffs)
-
tags/4.4.0/frontend/controllers/transact-api.php (copied) (copied from transact/trunk/frontend/controllers/transact-api.php)
-
tags/4.4.0/frontend/controllers/transact-cookie-manager.php (modified) (1 diff)
-
tags/4.4.0/frontend/controllers/transact-handle-buttons-shortcode.php (copied) (copied from transact/trunk/frontend/controllers/transact-handle-buttons-shortcode.php)
-
tags/4.4.0/frontend/controllers/transact-handle-buttons.php (copied) (copied from transact/trunk/frontend/controllers/transact-handle-buttons.php)
-
tags/4.4.0/frontend/controllers/transact-single-post.php (copied) (copied from transact/trunk/frontend/controllers/transact-single-post.php) (2 diffs)
-
tags/4.4.0/readme.txt (copied) (copied from transact/trunk/readme.txt) (2 diffs)
-
tags/4.4.0/transact-plugin.php (copied) (copied from transact/trunk/transact-plugin.php) (1 diff)
-
tags/4.4.0/vendors/transact-io-php/transact-io.php (copied) (copied from transact/trunk/vendors/transact-io-php/transact-io.php)
-
trunk/frontend/assets/transact_post.js (modified) (18 diffs)
-
trunk/frontend/controllers/transact-cookie-manager.php (modified) (1 diff)
-
trunk/frontend/controllers/transact-single-post.php (modified) (2 diffs)
-
trunk/readme.txt (modified) (2 diffs)
-
trunk/transact-plugin.php (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
-
transact/tags/4.4.0/frontend/assets/transact_post.js
r2328822 r2329508 24 24 }; 25 25 26 jQuery(function() { 27 let nonce_value = getNonceValue(); 28 29 if (transact_params.redirect_after_donation) { 30 custom_redirect = transact_params.redirect_after_donation; 31 } 32 33 getPremiumContent(); 34 35 transactApi.setFrontendUrl(transact_params.purchase_url); 36 if(transact_params.theme) { 37 transactApi.setThemeParams({ 38 bgcolor: transact_params.theme.background_color, 39 tcolor: transact_params.theme.text_color 40 }); 41 } 42 43 if (transact_params.donation == 1) { 44 getDonationTokenAjaxCall(transact_params.price || 1, nonce_value); 45 } else { 46 if(document.getElementById('button_purchase_single')) { 47 enabledPurchase = true; 48 loadingPurchase = true; 49 50 jQuery('#button_purchase_single_loading').css('display', 'block'); 51 jQuery('#button_purchase_single').css('display', 'none'); 52 53 var tokenUrl = transact_params.ajaxurl + 'token/' + transact_params.post_id; 54 if(transact_params.affiliate_id) { 55 tokenUrl += '/' + transact_params.affiliate_id; 56 } 57 ajaxGet(tokenUrl) 26 let nonce_value = getNonceValue(); 27 28 if (transact_params.redirect_after_donation) { 29 custom_redirect = transact_params.redirect_after_donation; 30 } 31 32 getPremiumContent(true); 33 34 transactApi.setFrontendUrl(transact_params.purchase_url); 35 if(transact_params.theme) { 36 transactApi.setThemeParams({ 37 bgcolor: transact_params.theme.background_color, 38 tcolor: transact_params.theme.text_color 39 }); 40 } 41 42 if (transact_params.donation == 1) { 43 getDonationTokenAjaxCall(transact_params.price || 1, nonce_value); 44 } else { 45 if(document.getElementById('button_purchase_single')) { 46 enabledPurchase = true; 47 loadingPurchase = true; 48 49 jQuery('#button_purchase_single_loading').css('display', 'block'); 50 jQuery('#button_purchase_single').css('display', 'none'); 51 52 var tokenUrl = transact_params.ajaxurl + 'token/' + transact_params.post_id; 53 if(transact_params.affiliate_id) { 54 tokenUrl += '/' + transact_params.affiliate_id; 55 } 56 ajaxGet(tokenUrl) 57 .done(function(data) { 58 loadingPurchase = false; 59 jQuery('#button_purchase_single_loading').css('display', 'none'); 60 jQuery('#button_purchase_single').css('display', 'block'); 61 62 // If purchase token loads and subscribe token is not loaded yet, display the subscribe loading spinner 63 if (enabledSubscribe && loadingSubscribe) { 64 jQuery('#button_purchase_subscription_loading').css('display', 'block'); 65 } 66 67 purchase_token = data.token; 68 //transactApi.setToken(data.token); 69 }) 70 .fail(function(data) { 71 console.warn('Failed to get Transact token'); 72 }); 73 74 } 75 76 // If subscription button is on the site, get subscription token too 77 if(document.getElementById('button_purchase_subscription')) { 78 enabledSubscribe = true; 79 loadingSubscribe = true; 80 81 // Only show the subscribe token spinner initially if purchase is disabled, so we don't show two spinners. 82 if (!enabledPurchase) { 83 jQuery('#button_purchase_subscription_loading').css('display', 'block'); 84 } 85 jQuery('#button_purchase_subscription').css('display', 'none'); 86 87 var subscribeTokenUrl = transact_params.ajaxurl + 'subscription/' + transact_params.post_id; 88 if(transact_params.affiliate_id) { 89 subscribeTokenUrl += '/' + transact_params.affiliate_id; 90 } 91 ajaxGet(subscribeTokenUrl) 92 .done(function(data) { 93 loadingSubscribe = false; 94 jQuery('#button_purchase_subscription_loading').css('display', 'none'); 95 jQuery('#button_purchase_subscription').css('display', 'block'); 96 97 subscribe_token = data.token; 98 }) 99 .fail(function(data) { 100 console.warn('Failed to get Transact token'); 101 }); 102 103 } 104 } 105 106 transactApi.getCurrentPromo('en', function(arg, result) { 107 let promoBlock = jQuery('#transact_promo'); 108 109 if (promoBlock && promoBlock.length) { 110 promoBlock.css('color', transact_params.theme.background_color); 111 // this text comes from transact.io who we trust 112 // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html 113 promoBlock.html(result.text); 114 } 115 }); 116 117 function getPremiumContent(synchronous) { 118 let comment_form_wrapper = jQuery('#transact-comments'); 119 120 var premiumUrl = transact_params.ajaxurl + 'premium/' + transact_params.post_id; 121 let result = ajaxGet(premiumUrl, synchronous); 122 123 if(synchronous) { 124 appendPremiumContent(result); 125 } else { 126 result 127 .fail(function(data) { 128 console.error('Could not load premium state', data); 129 }) 130 .done(data => { 131 appendPremiumContent(data); 132 }); 133 } 134 135 function appendPremiumContent(data) { 136 if(data.is_premium) { 137 gtmEvent('view-premium-content', { 'viewingPastPurchase': !purchasedInSession }); 138 139 // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html 140 jQuery('#transact_content').html(jQuery.parseHTML(data.content)); 141 142 // Get comments 143 var commentsUrl = transact_params.ajaxurl + 'comments_template/' + transact_params.post_id; 144 ajaxGet(commentsUrl) 58 145 .done(function(data) { 59 loadingPurchase = false; 60 jQuery('#button_purchase_single_loading').css('display', 'none'); 61 jQuery('#button_purchase_single').css('display', 'block'); 62 63 // If purchase token loads and subscribe token is not loaded yet, display the subscribe loading spinner 64 if (enabledSubscribe && loadingSubscribe) { 65 jQuery('#button_purchase_subscription_loading').css('display', 'block'); 66 } 67 68 console.log('got token: '+ data.token); 69 purchase_token = data.token; 70 //transactApi.setToken(data.token); 146 // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.append 147 comment_form_wrapper.append(jQuery.parseHTML(data.content)); 71 148 }) 72 149 .fail(function(data) { 73 console. log('Failed to get Transact token');150 console.warn('Could not fetch comments', data); 74 151 }); 75 152 76 } 77 78 // If subscription button is on the site, get subscription token too 79 if(document.getElementById('button_purchase_subscription')) { 80 enabledSubscribe = true; 81 loadingSubscribe = true; 82 83 // Only show the subscribe token spinner initially if purchase is disabled, so we don't show two spinners. 84 if (!enabledPurchase) { 85 jQuery('#button_purchase_subscription_loading').css('display', 'block'); 153 reloadKnownScripts(); 154 } else { 155 if(data.has_premium) { 156 jQuery('.transact-purchase_button').addClass('active'); 86 157 } 87 jQuery('#button_purchase_subscription').css('display', 'none'); 88 89 var subscribeTokenUrl = transact_params.ajaxurl + 'subscription/' + transact_params.post_id; 90 if(transact_params.affiliate_id) { 91 subscribeTokenUrl += '/' + transact_params.affiliate_id; 92 } 93 ajaxGet(subscribeTokenUrl) 94 .done(function(data) { 95 loadingSubscribe = false; 96 jQuery('#button_purchase_subscription_loading').css('display', 'none'); 97 jQuery('#button_purchase_subscription').css('display', 'block'); 98 99 console.log('got subscribe_token: '+ data.token); 100 subscribe_token = data.token; 101 //transactApi.setToken(data.token); 102 }) 103 .fail(function(data) { 104 console.log('Failed to get Transact token'); 105 }); 106 107 } 108 } 109 110 transactApi.getCurrentPromo('en', function(arg, result) { 111 let promoBlock = jQuery('#transact_promo'); 112 113 if (promoBlock && promoBlock.length) { 114 promoBlock.css('color', transact_params.theme.background_color); 115 // this text comes from transact.io who we trust 116 // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html 117 promoBlock.html(result.text); 118 } 119 }); 120 }); 121 122 function getPremiumContent() { 123 let comment_form_wrapper = jQuery('#transact-comments'); 124 125 var premiumUrl = transact_params.ajaxurl + 'premium/' + transact_params.post_id; 126 ajaxGet(premiumUrl) 127 .done(function(data) { 128 if(data.is_premium) { 129 gtmEvent('view-premium-content', { 'viewingPastPurchase': !purchasedInSession }); 130 131 // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html 132 jQuery('#transact_content').html(jQuery.parseHTML(data.content)); 133 134 // Get comments 135 var commentsUrl = transact_params.ajaxurl + 'comments_template/' + transact_params.post_id; 136 ajaxGet(commentsUrl) 137 .done(function(data) { 138 // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.append 139 comment_form_wrapper.append(jQuery.parseHTML(data.content)); 140 }) 141 .fail(function(data) { 142 console.log('Could not fetch comments', data); 143 }); 144 145 reloadKnownScripts(); 146 } else { 147 if(data.has_premium) { 148 jQuery('.transact-purchase_button').addClass('active'); 149 } 150 151 gtmEvent('view-preview-content'); 152 } 153 }) 154 .fail(function(data) { 155 console.error('Could not load premium state', data); 156 }); 158 159 gtmEvent('view-preview-content'); 160 } 161 } 157 162 } 158 163 … … 164 169 nonce_value = nonce_element.getAttribute('value'); 165 170 } else { 166 console. log('getNonceValue nonce not found.');171 console.warn('getNonceValue nonce not found.'); 167 172 } 168 173 return nonce_value; … … 178 183 return; 179 184 } 180 console.log('setDonateAmount', donate); 185 181 186 let nonce_value = getNonceValue(); 182 187 getDonationTokenAjaxCall(donate, nonce_value); … … 200 205 jQuery('#button_purchase_donation').css('display', 'block'); 201 206 202 console.log('got donate_token: '+ data.token);203 207 donate_token = data.token; 204 208 jQuery('#donation').removeAttr("disabled"); … … 206 210 .fail(function(data) { 207 211 jQuery('#donation').attr("disabled"); 208 console. log('Failed to get Transact donate token');212 console.warn('Failed to get Transact donate token'); 209 213 }); 210 214 } … … 216 220 */ 217 221 function doPurchase() { 218 console.log('doPurchase');219 console.log('Setting Purchase token');220 221 222 transactApi.setToken(purchase_token); 222 223 gtmEvent('start-purchase', { 'purchaseType': 'purchase' }); 223 224 var frame = openPurchaseIFrame(); 224 225 // Call authorizeInIframe() which will load the popup, 225 // passing in callback function ( PurchaseFrameClosed)226 transactApi.authorizeInIframe(frame, PurchaseFrameClosed, (height) => {226 // passing in callback function (purchaseFrameClosed) 227 transactApi.authorizeInIframe(frame, purchaseFrameClosed, (height) => { 227 228 frame.style.height = height + 'px'; 228 229 }); … … 230 231 231 232 function doDonate() { 232 console.log('doDonate');233 233 transactApi.setToken(donate_token); 234 234 gtmEvent('start-purchase', { 'purchaseType': 'donation' }); 235 235 var frame = openPurchaseIFrame(); 236 236 // Call authorizeInIframe() which will load the popup, 237 // passing in callback function ( PurchaseFrameClosed)238 transactApi.authorizeInIframe(frame, PurchaseFrameClosed, (height) => {237 // passing in callback function (purchaseFrameClosed) 238 transactApi.authorizeInIframe(frame, purchaseFrameClosed, (height) => { 239 239 frame.style.height = height + 'px'; 240 240 }); … … 247 247 */ 248 248 function doSubscription() { 249 console.log('doSubscription');250 console.log('Setting Subscription token');251 console.log(subscribe_token);252 249 transactApi.setToken(subscribe_token); 253 250 gtmEvent('start-purchase', { 'purchaseType': 'subscription' }); 254 251 var frame = openPurchaseIFrame(); 255 252 // Call authorizeInIframe() which will load the popup, 256 // passing in callback function ( PurchaseFrameClosed)257 transactApi.authorizeInIframe(frame, PurchaseFrameClosed, (height) => {253 // passing in callback function (purchaseFrameClosed) 254 transactApi.authorizeInIframe(frame, purchaseFrameClosed, (height) => { 258 255 frame.style.height = height + 'px'; 259 256 }); … … 269 266 close_button.classList.add('transact-purchase_modal__close-button'); 270 267 jQuery([transact_backdrop, close_button]).click(function() { 271 PurchaseFrameClosed(null, {});268 purchaseFrameClosed(null, {}); 272 269 }) 273 270 … … 295 292 } 296 293 297 function PurchaseFrameClosed(popup, event) {294 function purchaseFrameClosed(popup, event) { 298 295 if(transact_modal) { 299 296 document.querySelector('body').removeChild(transact_modal); … … 301 298 } 302 299 303 console.log('PurchaseFrameClosed');304 console.log('PurchaseFrameClosed Event data:', event.data);305 306 300 if (event && event.data) { 307 console.log(event.data);308 301 var validation_data = {}; 309 302 validation_data.post_id = transact_params.post_id; … … 315 308 316 309 purchasedInSession = true; 317 console.log('Success Response data:', resp_data);318 310 // Handles cookie 319 311 handleCookies(validation_data, resp_data); … … 324 316 window.location = custom_redirect; 325 317 } else { 326 getPremiumContent( );318 getPremiumContent(false); 327 319 // location.reload(); 328 320 } 329 321 }) 330 322 .fail(function(resp_data) { 331 console. log('Error Response data:', resp_data);323 console.warn('Error Response data:', resp_data); 332 324 jQuery('#button_purchase').html('purchase failed'); 333 })334 .always(function() {335 console.log( "finished" );336 325 }); 337 326 } else { … … 342 331 function handleCookies(validation_data, resp_data) 343 332 { 344 console.log(resp_data, resp_data.decoded);345 333 // Set or Update Cookie 346 334 if (resp_data.subscription == '1' || resp_data.subscription == 1) { … … 353 341 function handleSubscriptionCookies(resp_data) 354 342 { 355 console.log('setting wp_subscription_transact_ cookie', resp_data);356 343 var cookie = getCookie('wp_subscription_transact_'); 357 344 if (cookie != '') { … … 376 363 function handlePurchaseCookies(validation_data, resp_data) 377 364 { 378 console.log('setting wp_transact_ cookie');379 365 var cookie = getCookie('wp_transact_'); 380 366 if (cookie != '') { … … 421 407 function reloadKnownScripts() { 422 408 document.body.querySelectorAll('script').forEach(script => { 423 if(script.src.match(/tiled-gallery/)) { 409 if( 410 script.src.match(/tiled-gallery/) || script.src.match(/slideshow/) 411 ) { 424 412 var newScript = document.createElement('script'); 425 413 newScript.src = script.src; … … 447 435 } 448 436 449 function ajaxGet(url ) {437 function ajaxGet(url, synchronous) { 450 438 // Set the nonce token so we can get the user object in wordpress 451 return jQuery.ajax({ 452 url: url, 453 type: "GET", 454 beforeSend: function(xhr){ 455 if(window.WP_REST_NONCE) { 456 xhr.setRequestHeader('X-WP-Nonce', window.WP_REST_NONCE); 439 440 if(synchronous) { 441 var xhr = new XMLHttpRequest(); 442 xhr.open('GET', url, false); // sync request 443 xhr.setRequestHeader('X-WP-Nonce', window.WP_REST_NONCE); 444 xhr.send(); 445 xhr.responseJson = JSON.parse(xhr.response); 446 return JSON.parse(xhr.response); 447 } else { 448 return jQuery.ajax({ 449 url: url, 450 type: "GET", 451 beforeSend: function(xhr){ 452 if(window.WP_REST_NONCE) { 453 xhr.setRequestHeader('X-WP-Nonce', window.WP_REST_NONCE); 454 } 457 455 } 458 } 459 });456 }); 457 } 460 458 } 461 459 })(); -
transact/tags/4.4.0/frontend/controllers/transact-cookie-manager.php
r2245834 r2329508 101 101 function validate_purchase($post_id) 102 102 { 103 if( $this->cookie['purchases']) {103 if(!empty($this->cookie['purchases'])) { 104 104 foreach ($this->cookie['purchases'] as $cookie) { 105 105 if (intval($cookie->id) === intval($post_id)) { -
transact/tags/4.4.0/frontend/controllers/transact-single-post.php
r2328822 r2329508 31 31 class FrontEndPostExtension 32 32 { 33 const VERSION = '4.3.1'; 33 34 const DISABLE = 4; 34 35 … … 618 619 * Loading transact scripts (callbacks) 619 620 */ 620 wp_register_script( 'transact_callback', FRONTEND_ASSETS_URL . 'transact_post.js', array('jquery') );621 wp_register_script( 'transact_callback', FRONTEND_ASSETS_URL . 'transact_post.js', array('jquery'), self::VERSION, true ); 621 622 wp_localize_script( 'transact_callback', 'transact_params', $url ); 622 623 wp_enqueue_script( 'transact_callback' ); -
transact/tags/4.4.0/readme.txt
r2328822 r2329508 6 6 Requires PHP: 5.6 7 7 Tested up to: 5.3.2 8 Stable tag: 4. 3.18 Stable tag: 4.4.0 9 9 License: APACHE-2.0 10 10 License URI: https://www.apache.org/licenses/LICENSE-2.0 … … 82 82 83 83 84 = 4.4.0 = 85 * Make loading content syncronous to improve compatibility with other plugins. 86 This will make content present when jQuery.ready() is triggered. 87 84 88 = 4.3.1 = 85 89 * JQuery loading fix -
transact/tags/4.4.0/transact-plugin.php
r2328822 r2329508 3 3 * Plugin Name: transact.io 4 4 * Description: Integrates transact.io services into WP 5 * Version: 4. 3.15 * Version: 4.4.0 6 6 * Author: transact.io 7 7 * Author URI: https://transact.io -
transact/trunk/frontend/assets/transact_post.js
r2328822 r2329508 24 24 }; 25 25 26 jQuery(function() { 27 let nonce_value = getNonceValue(); 28 29 if (transact_params.redirect_after_donation) { 30 custom_redirect = transact_params.redirect_after_donation; 31 } 32 33 getPremiumContent(); 34 35 transactApi.setFrontendUrl(transact_params.purchase_url); 36 if(transact_params.theme) { 37 transactApi.setThemeParams({ 38 bgcolor: transact_params.theme.background_color, 39 tcolor: transact_params.theme.text_color 40 }); 41 } 42 43 if (transact_params.donation == 1) { 44 getDonationTokenAjaxCall(transact_params.price || 1, nonce_value); 45 } else { 46 if(document.getElementById('button_purchase_single')) { 47 enabledPurchase = true; 48 loadingPurchase = true; 49 50 jQuery('#button_purchase_single_loading').css('display', 'block'); 51 jQuery('#button_purchase_single').css('display', 'none'); 52 53 var tokenUrl = transact_params.ajaxurl + 'token/' + transact_params.post_id; 54 if(transact_params.affiliate_id) { 55 tokenUrl += '/' + transact_params.affiliate_id; 56 } 57 ajaxGet(tokenUrl) 26 let nonce_value = getNonceValue(); 27 28 if (transact_params.redirect_after_donation) { 29 custom_redirect = transact_params.redirect_after_donation; 30 } 31 32 getPremiumContent(true); 33 34 transactApi.setFrontendUrl(transact_params.purchase_url); 35 if(transact_params.theme) { 36 transactApi.setThemeParams({ 37 bgcolor: transact_params.theme.background_color, 38 tcolor: transact_params.theme.text_color 39 }); 40 } 41 42 if (transact_params.donation == 1) { 43 getDonationTokenAjaxCall(transact_params.price || 1, nonce_value); 44 } else { 45 if(document.getElementById('button_purchase_single')) { 46 enabledPurchase = true; 47 loadingPurchase = true; 48 49 jQuery('#button_purchase_single_loading').css('display', 'block'); 50 jQuery('#button_purchase_single').css('display', 'none'); 51 52 var tokenUrl = transact_params.ajaxurl + 'token/' + transact_params.post_id; 53 if(transact_params.affiliate_id) { 54 tokenUrl += '/' + transact_params.affiliate_id; 55 } 56 ajaxGet(tokenUrl) 57 .done(function(data) { 58 loadingPurchase = false; 59 jQuery('#button_purchase_single_loading').css('display', 'none'); 60 jQuery('#button_purchase_single').css('display', 'block'); 61 62 // If purchase token loads and subscribe token is not loaded yet, display the subscribe loading spinner 63 if (enabledSubscribe && loadingSubscribe) { 64 jQuery('#button_purchase_subscription_loading').css('display', 'block'); 65 } 66 67 purchase_token = data.token; 68 //transactApi.setToken(data.token); 69 }) 70 .fail(function(data) { 71 console.warn('Failed to get Transact token'); 72 }); 73 74 } 75 76 // If subscription button is on the site, get subscription token too 77 if(document.getElementById('button_purchase_subscription')) { 78 enabledSubscribe = true; 79 loadingSubscribe = true; 80 81 // Only show the subscribe token spinner initially if purchase is disabled, so we don't show two spinners. 82 if (!enabledPurchase) { 83 jQuery('#button_purchase_subscription_loading').css('display', 'block'); 84 } 85 jQuery('#button_purchase_subscription').css('display', 'none'); 86 87 var subscribeTokenUrl = transact_params.ajaxurl + 'subscription/' + transact_params.post_id; 88 if(transact_params.affiliate_id) { 89 subscribeTokenUrl += '/' + transact_params.affiliate_id; 90 } 91 ajaxGet(subscribeTokenUrl) 92 .done(function(data) { 93 loadingSubscribe = false; 94 jQuery('#button_purchase_subscription_loading').css('display', 'none'); 95 jQuery('#button_purchase_subscription').css('display', 'block'); 96 97 subscribe_token = data.token; 98 }) 99 .fail(function(data) { 100 console.warn('Failed to get Transact token'); 101 }); 102 103 } 104 } 105 106 transactApi.getCurrentPromo('en', function(arg, result) { 107 let promoBlock = jQuery('#transact_promo'); 108 109 if (promoBlock && promoBlock.length) { 110 promoBlock.css('color', transact_params.theme.background_color); 111 // this text comes from transact.io who we trust 112 // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html 113 promoBlock.html(result.text); 114 } 115 }); 116 117 function getPremiumContent(synchronous) { 118 let comment_form_wrapper = jQuery('#transact-comments'); 119 120 var premiumUrl = transact_params.ajaxurl + 'premium/' + transact_params.post_id; 121 let result = ajaxGet(premiumUrl, synchronous); 122 123 if(synchronous) { 124 appendPremiumContent(result); 125 } else { 126 result 127 .fail(function(data) { 128 console.error('Could not load premium state', data); 129 }) 130 .done(data => { 131 appendPremiumContent(data); 132 }); 133 } 134 135 function appendPremiumContent(data) { 136 if(data.is_premium) { 137 gtmEvent('view-premium-content', { 'viewingPastPurchase': !purchasedInSession }); 138 139 // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html 140 jQuery('#transact_content').html(jQuery.parseHTML(data.content)); 141 142 // Get comments 143 var commentsUrl = transact_params.ajaxurl + 'comments_template/' + transact_params.post_id; 144 ajaxGet(commentsUrl) 58 145 .done(function(data) { 59 loadingPurchase = false; 60 jQuery('#button_purchase_single_loading').css('display', 'none'); 61 jQuery('#button_purchase_single').css('display', 'block'); 62 63 // If purchase token loads and subscribe token is not loaded yet, display the subscribe loading spinner 64 if (enabledSubscribe && loadingSubscribe) { 65 jQuery('#button_purchase_subscription_loading').css('display', 'block'); 66 } 67 68 console.log('got token: '+ data.token); 69 purchase_token = data.token; 70 //transactApi.setToken(data.token); 146 // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.append 147 comment_form_wrapper.append(jQuery.parseHTML(data.content)); 71 148 }) 72 149 .fail(function(data) { 73 console. log('Failed to get Transact token');150 console.warn('Could not fetch comments', data); 74 151 }); 75 152 76 } 77 78 // If subscription button is on the site, get subscription token too 79 if(document.getElementById('button_purchase_subscription')) { 80 enabledSubscribe = true; 81 loadingSubscribe = true; 82 83 // Only show the subscribe token spinner initially if purchase is disabled, so we don't show two spinners. 84 if (!enabledPurchase) { 85 jQuery('#button_purchase_subscription_loading').css('display', 'block'); 153 reloadKnownScripts(); 154 } else { 155 if(data.has_premium) { 156 jQuery('.transact-purchase_button').addClass('active'); 86 157 } 87 jQuery('#button_purchase_subscription').css('display', 'none'); 88 89 var subscribeTokenUrl = transact_params.ajaxurl + 'subscription/' + transact_params.post_id; 90 if(transact_params.affiliate_id) { 91 subscribeTokenUrl += '/' + transact_params.affiliate_id; 92 } 93 ajaxGet(subscribeTokenUrl) 94 .done(function(data) { 95 loadingSubscribe = false; 96 jQuery('#button_purchase_subscription_loading').css('display', 'none'); 97 jQuery('#button_purchase_subscription').css('display', 'block'); 98 99 console.log('got subscribe_token: '+ data.token); 100 subscribe_token = data.token; 101 //transactApi.setToken(data.token); 102 }) 103 .fail(function(data) { 104 console.log('Failed to get Transact token'); 105 }); 106 107 } 108 } 109 110 transactApi.getCurrentPromo('en', function(arg, result) { 111 let promoBlock = jQuery('#transact_promo'); 112 113 if (promoBlock && promoBlock.length) { 114 promoBlock.css('color', transact_params.theme.background_color); 115 // this text comes from transact.io who we trust 116 // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html 117 promoBlock.html(result.text); 118 } 119 }); 120 }); 121 122 function getPremiumContent() { 123 let comment_form_wrapper = jQuery('#transact-comments'); 124 125 var premiumUrl = transact_params.ajaxurl + 'premium/' + transact_params.post_id; 126 ajaxGet(premiumUrl) 127 .done(function(data) { 128 if(data.is_premium) { 129 gtmEvent('view-premium-content', { 'viewingPastPurchase': !purchasedInSession }); 130 131 // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.html 132 jQuery('#transact_content').html(jQuery.parseHTML(data.content)); 133 134 // Get comments 135 var commentsUrl = transact_params.ajaxurl + 'comments_template/' + transact_params.post_id; 136 ajaxGet(commentsUrl) 137 .done(function(data) { 138 // phpcs:ignore WordPressVIPMinimum.JS.HTMLExecutingFunctions.append 139 comment_form_wrapper.append(jQuery.parseHTML(data.content)); 140 }) 141 .fail(function(data) { 142 console.log('Could not fetch comments', data); 143 }); 144 145 reloadKnownScripts(); 146 } else { 147 if(data.has_premium) { 148 jQuery('.transact-purchase_button').addClass('active'); 149 } 150 151 gtmEvent('view-preview-content'); 152 } 153 }) 154 .fail(function(data) { 155 console.error('Could not load premium state', data); 156 }); 158 159 gtmEvent('view-preview-content'); 160 } 161 } 157 162 } 158 163 … … 164 169 nonce_value = nonce_element.getAttribute('value'); 165 170 } else { 166 console. log('getNonceValue nonce not found.');171 console.warn('getNonceValue nonce not found.'); 167 172 } 168 173 return nonce_value; … … 178 183 return; 179 184 } 180 console.log('setDonateAmount', donate); 185 181 186 let nonce_value = getNonceValue(); 182 187 getDonationTokenAjaxCall(donate, nonce_value); … … 200 205 jQuery('#button_purchase_donation').css('display', 'block'); 201 206 202 console.log('got donate_token: '+ data.token);203 207 donate_token = data.token; 204 208 jQuery('#donation').removeAttr("disabled"); … … 206 210 .fail(function(data) { 207 211 jQuery('#donation').attr("disabled"); 208 console. log('Failed to get Transact donate token');212 console.warn('Failed to get Transact donate token'); 209 213 }); 210 214 } … … 216 220 */ 217 221 function doPurchase() { 218 console.log('doPurchase');219 console.log('Setting Purchase token');220 221 222 transactApi.setToken(purchase_token); 222 223 gtmEvent('start-purchase', { 'purchaseType': 'purchase' }); 223 224 var frame = openPurchaseIFrame(); 224 225 // Call authorizeInIframe() which will load the popup, 225 // passing in callback function ( PurchaseFrameClosed)226 transactApi.authorizeInIframe(frame, PurchaseFrameClosed, (height) => {226 // passing in callback function (purchaseFrameClosed) 227 transactApi.authorizeInIframe(frame, purchaseFrameClosed, (height) => { 227 228 frame.style.height = height + 'px'; 228 229 }); … … 230 231 231 232 function doDonate() { 232 console.log('doDonate');233 233 transactApi.setToken(donate_token); 234 234 gtmEvent('start-purchase', { 'purchaseType': 'donation' }); 235 235 var frame = openPurchaseIFrame(); 236 236 // Call authorizeInIframe() which will load the popup, 237 // passing in callback function ( PurchaseFrameClosed)238 transactApi.authorizeInIframe(frame, PurchaseFrameClosed, (height) => {237 // passing in callback function (purchaseFrameClosed) 238 transactApi.authorizeInIframe(frame, purchaseFrameClosed, (height) => { 239 239 frame.style.height = height + 'px'; 240 240 }); … … 247 247 */ 248 248 function doSubscription() { 249 console.log('doSubscription');250 console.log('Setting Subscription token');251 console.log(subscribe_token);252 249 transactApi.setToken(subscribe_token); 253 250 gtmEvent('start-purchase', { 'purchaseType': 'subscription' }); 254 251 var frame = openPurchaseIFrame(); 255 252 // Call authorizeInIframe() which will load the popup, 256 // passing in callback function ( PurchaseFrameClosed)257 transactApi.authorizeInIframe(frame, PurchaseFrameClosed, (height) => {253 // passing in callback function (purchaseFrameClosed) 254 transactApi.authorizeInIframe(frame, purchaseFrameClosed, (height) => { 258 255 frame.style.height = height + 'px'; 259 256 }); … … 269 266 close_button.classList.add('transact-purchase_modal__close-button'); 270 267 jQuery([transact_backdrop, close_button]).click(function() { 271 PurchaseFrameClosed(null, {});268 purchaseFrameClosed(null, {}); 272 269 }) 273 270 … … 295 292 } 296 293 297 function PurchaseFrameClosed(popup, event) {294 function purchaseFrameClosed(popup, event) { 298 295 if(transact_modal) { 299 296 document.querySelector('body').removeChild(transact_modal); … … 301 298 } 302 299 303 console.log('PurchaseFrameClosed');304 console.log('PurchaseFrameClosed Event data:', event.data);305 306 300 if (event && event.data) { 307 console.log(event.data);308 301 var validation_data = {}; 309 302 validation_data.post_id = transact_params.post_id; … … 315 308 316 309 purchasedInSession = true; 317 console.log('Success Response data:', resp_data);318 310 // Handles cookie 319 311 handleCookies(validation_data, resp_data); … … 324 316 window.location = custom_redirect; 325 317 } else { 326 getPremiumContent( );318 getPremiumContent(false); 327 319 // location.reload(); 328 320 } 329 321 }) 330 322 .fail(function(resp_data) { 331 console. log('Error Response data:', resp_data);323 console.warn('Error Response data:', resp_data); 332 324 jQuery('#button_purchase').html('purchase failed'); 333 })334 .always(function() {335 console.log( "finished" );336 325 }); 337 326 } else { … … 342 331 function handleCookies(validation_data, resp_data) 343 332 { 344 console.log(resp_data, resp_data.decoded);345 333 // Set or Update Cookie 346 334 if (resp_data.subscription == '1' || resp_data.subscription == 1) { … … 353 341 function handleSubscriptionCookies(resp_data) 354 342 { 355 console.log('setting wp_subscription_transact_ cookie', resp_data);356 343 var cookie = getCookie('wp_subscription_transact_'); 357 344 if (cookie != '') { … … 376 363 function handlePurchaseCookies(validation_data, resp_data) 377 364 { 378 console.log('setting wp_transact_ cookie');379 365 var cookie = getCookie('wp_transact_'); 380 366 if (cookie != '') { … … 421 407 function reloadKnownScripts() { 422 408 document.body.querySelectorAll('script').forEach(script => { 423 if(script.src.match(/tiled-gallery/)) { 409 if( 410 script.src.match(/tiled-gallery/) || script.src.match(/slideshow/) 411 ) { 424 412 var newScript = document.createElement('script'); 425 413 newScript.src = script.src; … … 447 435 } 448 436 449 function ajaxGet(url ) {437 function ajaxGet(url, synchronous) { 450 438 // Set the nonce token so we can get the user object in wordpress 451 return jQuery.ajax({ 452 url: url, 453 type: "GET", 454 beforeSend: function(xhr){ 455 if(window.WP_REST_NONCE) { 456 xhr.setRequestHeader('X-WP-Nonce', window.WP_REST_NONCE); 439 440 if(synchronous) { 441 var xhr = new XMLHttpRequest(); 442 xhr.open('GET', url, false); // sync request 443 xhr.setRequestHeader('X-WP-Nonce', window.WP_REST_NONCE); 444 xhr.send(); 445 xhr.responseJson = JSON.parse(xhr.response); 446 return JSON.parse(xhr.response); 447 } else { 448 return jQuery.ajax({ 449 url: url, 450 type: "GET", 451 beforeSend: function(xhr){ 452 if(window.WP_REST_NONCE) { 453 xhr.setRequestHeader('X-WP-Nonce', window.WP_REST_NONCE); 454 } 457 455 } 458 } 459 });456 }); 457 } 460 458 } 461 459 })(); -
transact/trunk/frontend/controllers/transact-cookie-manager.php
r2245834 r2329508 101 101 function validate_purchase($post_id) 102 102 { 103 if( $this->cookie['purchases']) {103 if(!empty($this->cookie['purchases'])) { 104 104 foreach ($this->cookie['purchases'] as $cookie) { 105 105 if (intval($cookie->id) === intval($post_id)) { -
transact/trunk/frontend/controllers/transact-single-post.php
r2328822 r2329508 31 31 class FrontEndPostExtension 32 32 { 33 const VERSION = '4.3.1'; 33 34 const DISABLE = 4; 34 35 … … 618 619 * Loading transact scripts (callbacks) 619 620 */ 620 wp_register_script( 'transact_callback', FRONTEND_ASSETS_URL . 'transact_post.js', array('jquery') );621 wp_register_script( 'transact_callback', FRONTEND_ASSETS_URL . 'transact_post.js', array('jquery'), self::VERSION, true ); 621 622 wp_localize_script( 'transact_callback', 'transact_params', $url ); 622 623 wp_enqueue_script( 'transact_callback' ); -
transact/trunk/readme.txt
r2328822 r2329508 6 6 Requires PHP: 5.6 7 7 Tested up to: 5.3.2 8 Stable tag: 4. 3.18 Stable tag: 4.4.0 9 9 License: APACHE-2.0 10 10 License URI: https://www.apache.org/licenses/LICENSE-2.0 … … 82 82 83 83 84 = 4.4.0 = 85 * Make loading content syncronous to improve compatibility with other plugins. 86 This will make content present when jQuery.ready() is triggered. 87 84 88 = 4.3.1 = 85 89 * JQuery loading fix -
transact/trunk/transact-plugin.php
r2328822 r2329508 3 3 * Plugin Name: transact.io 4 4 * Description: Integrates transact.io services into WP 5 * Version: 4. 3.15 * Version: 4.4.0 6 6 * Author: transact.io 7 7 * Author URI: https://transact.io
Note: See TracChangeset
for help on using the changeset viewer.