PluginProbe
BlockSpare – Gutenberg Blocks, AI Content Generator & Site Builder for News, Magazine & Blogs / 2.7.3
BlockSpare – Gutenberg Blocks, AI Content Generator & Site Builder for News, Magazine & Blogs v2.7.3
5.0.1 4.1.0 trunk 1.0.0 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.1.0 1.1.1 1.1.2 1.2.0 1.2.1 1.2.2 1.2.3 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 2.1.2 2.5.0 2.5.3 All 39 releases
← All changes | freemius/templates/pricing.php +210 -177 1.2.3 → 2.7.3 View file →
@@ -1,177 +1,210 @@
1 -<?php
2 - /**
3 - * @package Freemius
4 - * @copyright Copyright (c) 2015, Freemius, Inc.
5 - * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6 - * @since 1.0.3
7 - */
8 -
9 - /**
10 - * Note for WordPress.org Theme/Plugin reviewer:
11 - * Freemius is an SDK for plugin and theme developers. Since the core
12 - * of the SDK is relevant both for plugins and themes, for obvious reasons,
13 - * we only develop and maintain one code base.
14 - *
15 - * This code (and page) will not run for wp.org themes (only plugins).
16 - *
17 - * In addition, this page loads an i-frame. We intentionally named it 'frame'
18 - * so it will pass the "Theme Check" that is looking for the string "i" . "frame".
19 - *
20 - * UPDATE:
21 - * After ongoing conversations with the WordPress.org TRT we received
22 - * an official approval for including i-frames in the theme's WP Admin setting's
23 - * page tab (the SDK will never add any i-frames on the sitefront). i-frames
24 - * were never against the guidelines, but we wanted to get the team's blessings
25 - * before we move forward. For the record, I got the final approval from
26 - * Ulrich Pogson (@grapplerulrich), a team lead at the TRT during WordCamp
27 - * Europe 2017 (June 16th, 2017).
28 - *
29 - * If you have any questions or need clarifications, please don't hesitate
30 - * pinging me on slack, my username is @svovaf.
31 - *
32 - * @author Vova Feldman (@svovaf)
33 - * @since 1.2.2
34 - */
35 -
36 - if ( ! defined( 'ABSPATH' ) ) {
37 - exit;
38 - }
39 -
40 - wp_enqueue_script( 'jquery' );
41 - wp_enqueue_script( 'json2' );
42 - fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.min.js' );
43 - fs_enqueue_local_script( 'fs-postmessage', 'postmessage.js' );
44 - fs_enqueue_local_style( 'fs_common', '/admin/common.css' );
45 -
46 - /**
47 - * @var array $VARS
48 - * @var Freemius $fs
49 - */
50 - $fs = freemius( $VARS['id'] );
51 - $slug = $fs->get_slug();
52 - $timestamp = time();
53 -
54 - $context_params = array(
55 - 'plugin_id' => $fs->get_id(),
56 - 'plugin_public_key' => $fs->get_public_key(),
57 - 'plugin_version' => $fs->get_plugin_version(),
58 - );
59 -
60 - $bundle_id = $fs->get_bundle_id();
61 - if ( ! is_null( $bundle_id ) ) {
62 - $context_params['bundle_id'] = $bundle_id;
63 - }
64 -
65 - // Get site context secure params.
66 - if ( $fs->is_registered() ) {
67 - $context_params = array_merge( $context_params, FS_Security::instance()->get_context_params(
68 - $fs->get_site(),
69 - $timestamp,
70 - 'upgrade'
71 - ) );
72 - } else {
73 - $context_params['home_url'] = home_url();
74 - }
75 -
76 - if ( $fs->is_payments_sandbox() ) // Append plugin secure token for sandbox mode authentication.)
77 - {
78 - $context_params['sandbox'] = FS_Security::instance()->get_secure_token(
79 - $fs->get_plugin(),
80 - $timestamp,
81 - 'checkout'
82 - );
83 - }
84 -
85 - $query_params = array_merge( $context_params, $_GET, array(
86 - 'next' => $fs->_get_sync_license_url( false, false ),
87 - 'plugin_version' => $fs->get_plugin_version(),
88 - // Billing cycle.
89 - 'billing_cycle' => fs_request_get( 'billing_cycle', WP_FS__PERIOD_ANNUALLY ),
90 - 'is_network_admin' => fs_is_network_admin() ? 'true' : 'false',
91 - 'currency' => $fs->apply_filters( 'default_currency', 'usd' ),
92 - ) );
93 -
94 - if ( ! $fs->is_registered() ) {
95 - $template_data = array(
96 - 'id' => $fs->get_id(),
97 - );
98 - fs_require_template( 'forms/trial-start.php', $template_data);
99 - }
100 -
101 - $view_params = array(
102 - 'id' => $VARS['id'],
103 - 'page' => strtolower( $fs->get_text_x_inline( 'Pricing', 'noun', 'pricing' ) ),
104 - );
105 - fs_require_once_template('secure-https-header.php', $view_params);
106 -
107 - $has_tabs = $fs->_add_tabs_before_content();
108 -
109 - if ( $has_tabs ) {
110 - $query_params['tabs'] = 'true';
111 - }
112 -?>
113 - <div id="fs_pricing" class="wrap fs-section fs-full-size-wrapper">
114 - <div id="fs_frame"></div>
115 - <form action="" method="POST">
116 - <input type="hidden" name="user_id"/>
117 - <input type="hidden" name="user_email"/>
118 - <input type="hidden" name="site_id"/>
119 - <input type="hidden" name="public_key"/>
120 - <input type="hidden" name="secret_key"/>
121 - <input type="hidden" name="action" value="account"/>
122 - </form>
123 -
124 - <script type="text/javascript">
125 - (function ($, undef) {
126 - $(function () {
127 - var
128 - // Keep track of the i-frame height.
129 - frame_height = 800,
130 - base_url = '<?php echo WP_FS__ADDRESS ?>',
131 - // Pass the parent page URL into the i-frame in a meaningful way (this URL could be
132 - // passed via query string or hard coded into the child page, it depends on your needs).
133 - src = base_url + '/pricing/?<?php echo http_build_query( $query_params ) ?>#' + encodeURIComponent(document.location.href),
134 -
135 - // Append the I-frame into the DOM.
136 - frame = $('<i' + 'frame " src="' + src + '" width="100%" height="' + frame_height + 'px" scrolling="no" frameborder="0" style="background: transparent; width: 1px; min-width: 100%;"><\/i' + 'frame>')
137 - .appendTo('#fs_frame');
138 -
139 - FS.PostMessage.init(base_url, [frame[0]]);
140 -
141 - FS.PostMessage.receive('height', function (data) {
142 - var h = data.height;
143 - if (!isNaN(h) && h > 0 && h != frame_height) {
144 - frame_height = h;
145 - frame.height(frame_height + 'px');
146 -
147 - FS.PostMessage.postScroll(frame[0]);
148 - }
149 - });
150 -
151 - FS.PostMessage.receive('get_dimensions', function (data) {
152 - FS.PostMessage.post('dimensions', {
153 - height : $(document.body).height(),
154 - scrollTop: $(document).scrollTop()
155 - }, frame[0]);
156 - });
157 -
158 - FS.PostMessage.receive('start_trial', function (data) {
159 - openTrialConfirmationModal(data);
160 - });
161 - });
162 - })(jQuery);
163 - </script>
164 - </div>
165 -<?php
166 - if ( $has_tabs ) {
167 - $fs->_add_tabs_after_content();
168 - }
169 -
170 - $params = array(
171 - 'page' => 'pricing',
172 - 'module_id' => $fs->get_id(),
173 - 'module_type' => $fs->get_module_type(),
174 - 'module_slug' => $slug,
175 - 'module_version' => $fs->get_plugin_version(),
176 - );
177 - fs_require_template( 'powered-by.php', $params );
1 +<?php
2 + /**
3 + * @package Freemius
4 + * @copyright Copyright (c) 2015, Freemius, Inc.
5 + * @license https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License Version 3
6 + * @since 1.0.3
7 + */
8 +
9 + /**
10 + * Note for WordPress.org Theme/Plugin reviewer:
11 + * Freemius is an SDK for plugin and theme developers. Since the core
12 + * of the SDK is relevant both for plugins and themes, for obvious reasons,
13 + * we only develop and maintain one code base.
14 + *
15 + * This code (and page) will not run for wp.org themes (only plugins).
16 + *
17 + * In addition, this page loads an i-frame. We intentionally named it 'frame'
18 + * so it will pass the "Theme Check" that is looking for the string "i" . "frame".
19 + *
20 + * UPDATE:
21 + * After ongoing conversations with the WordPress.org TRT we received
22 + * an official approval for including i-frames in the theme's WP Admin setting's
23 + * page tab (the SDK will never add any i-frames on the sitefront). i-frames
24 + * were never against the guidelines, but we wanted to get the team's blessings
25 + * before we move forward. For the record, I got the final approval from
26 + * Ulrich Pogson (@grapplerulrich), a team lead at the TRT during WordCamp
27 + * Europe 2017 (June 16th, 2017).
28 + *
29 + * If you have any questions or need clarifications, please don't hesitate
30 + * pinging me on slack, my username is @svovaf.
31 + *
32 + * @author Vova Feldman (@svovaf)
33 + * @since 1.2.2
34 + */
35 +
36 + if ( ! defined( 'ABSPATH' ) ) {
37 + exit;
38 + }
39 +
40 + wp_enqueue_script( 'jquery' );
41 + wp_enqueue_script( 'json2' );
42 + fs_enqueue_local_script( 'postmessage', 'nojquery.ba-postmessage.min.js' );
43 + fs_enqueue_local_script( 'fs-postmessage', 'postmessage.js' );
44 + fs_enqueue_local_style( 'fs_common', '/admin/common.css' );
45 +
46 + /**
47 + * @var array $VARS
48 + * @var Freemius $fs
49 + */
50 + $fs = freemius( $VARS['id'] );
51 + $slug = $fs->get_slug();
52 + $timestamp = time();
53 +
54 + $context_params = array(
55 + 'plugin_id' => $fs->get_id(),
56 + 'plugin_public_key' => $fs->get_public_key(),
57 + 'plugin_version' => $fs->get_plugin_version(),
58 + );
59 +
60 + $bundle_id = $fs->get_bundle_id();
61 + if ( ! is_null( $bundle_id ) ) {
62 + $context_params['bundle_id'] = $bundle_id;
63 + }
64 +
65 + // Get site context secure params.
66 + if ( $fs->is_registered() ) {
67 + $context_params = array_merge( $context_params, FS_Security::instance()->get_context_params(
68 + $fs->get_site(),
69 + $timestamp,
70 + 'upgrade'
71 + ) );
72 + } else {
73 + $context_params['home_url'] = home_url();
74 + }
75 +
76 + if ( $fs->is_payments_sandbox() ) // Append plugin secure token for sandbox mode authentication.)
77 + {
78 + $context_params['sandbox'] = FS_Security::instance()->get_secure_token(
79 + $fs->get_plugin(),
80 + $timestamp,
81 + 'checkout'
82 + );
83 + }
84 +
85 + $query_params = array_merge( $context_params, $_GET, array(
86 + 'next' => $fs->_get_sync_license_url( false, false ),
87 + 'plugin_version' => $fs->get_plugin_version(),
88 + // Billing cycle.
89 + 'billing_cycle' => fs_request_get( 'billing_cycle', WP_FS__PERIOD_ANNUALLY ),
90 + 'is_network_admin' => fs_is_network_admin() ? 'true' : 'false',
91 + 'currency' => $fs->apply_filters( 'default_currency', 'usd' ),
92 + 'discounts_model' => $fs->apply_filters( 'pricing/discounts_model', 'absolute' ),
93 + ) );
94 +
95 + $use_external_pricing = $fs->should_use_external_pricing();
96 +
97 + if ( ! $use_external_pricing ) {
98 + $pricing_js_url = fs_asset_url( $fs->get_pricing_js_path() );
99 + wp_enqueue_script( 'freemius-pricing', $pricing_js_url );
100 + } else {
101 + if ( ! $fs->is_registered() ) {
102 + $template_data = array(
103 + 'id' => $fs->get_id(),
104 + );
105 + fs_require_template( 'forms/trial-start.php', $template_data);
106 + }
107 +
108 + $view_params = array(
109 + 'id' => $VARS['id'],
110 + 'page' => strtolower( $fs->get_text_x_inline( 'Pricing', 'noun', 'pricing' ) ),
111 + );
112 + fs_require_once_template('secure-https-header.php', $view_params);
113 + }
114 +
115 + $has_tabs = $fs->_add_tabs_before_content();
116 +
117 + if ( $has_tabs ) {
118 + $query_params['tabs'] = 'true';
119 + }
120 +?>
121 + <div id="fs_pricing" class="wrap fs-section fs-full-size-wrapper">
122 + <?php if ( ! $use_external_pricing ) : ?>
123 + <div id="fs_pricing_wrapper" data-public-url="<?php echo trailingslashit( dirname( $pricing_js_url ) ) ?>"></div>
124 + <?php
125 + $pricing_config = array_merge( array(
126 + 'contact_url' => $fs->contact_url(),
127 + 'is_production' => ( defined( 'WP_FS__IS_PRODUCTION_MODE' ) ? WP_FS__IS_PRODUCTION_MODE : null ),
128 + 'menu_slug' => $fs->get_menu_slug(),
129 + 'mode' => 'dashboard',
130 + 'fs_wp_endpoint_url' => WP_FS__ADDRESS,
131 + 'request_handler_url' => admin_url(
132 + 'admin-ajax.php?' . http_build_query( array(
133 + 'module_id' => $fs->get_id(),
134 + 'action' => $fs->get_ajax_action( 'pricing_ajax_action' ),
135 + 'security' => $fs->get_ajax_security( 'pricing_ajax_action' )
136 + ) )
137 + ),
138 + 'selector' => '#fs_pricing_wrapper',
139 + 'unique_affix' => $fs->get_unique_affix(),
140 + 'show_annual_in_monthly' => $fs->apply_filters( 'pricing/show_annual_in_monthly', true ),
141 + ), $query_params );
142 +
143 + wp_add_inline_script( 'freemius-pricing', 'Freemius.pricing.new( ' . json_encode( $pricing_config ) . ' )' );
144 + ?>
145 + <?php else : ?>
146 + <div id="fs_frame"></div>
147 + <form action="" method="POST">
148 + <input type="hidden" name="user_id"/>
149 + <input type="hidden" name="user_email"/>
150 + <input type="hidden" name="site_id"/>
151 + <input type="hidden" name="public_key"/>
152 + <input type="hidden" name="secret_key"/>
153 + <input type="hidden" name="action" value="account"/>
154 + </form>
155 +
156 + <script type="text/javascript">
157 + (function ($, undef) {
158 + $(function () {
159 + var
160 + // Keep track of the i-frame height.
161 + frame_height = 800,
162 + base_url = '<?php echo WP_FS__ADDRESS ?>',
163 + // Pass the parent page URL into the i-frame in a meaningful way (this URL could be
164 + // passed via query string or hard coded into the child page, it depends on your needs).
165 + src = base_url + '/pricing/?<?php echo http_build_query( $query_params ) ?>#' + encodeURIComponent(document.location.href),
166 +
167 + // Append the I-frame into the DOM.
168 + frame = $('<i' + 'frame " src="' + src + '" width="100%" height="' + frame_height + 'px" scrolling="no" frameborder="0" style="background: transparent; width: 1px; min-width: 100%;"><\/i' + 'frame>')
169 + .appendTo('#fs_frame');
170 +
171 + FS.PostMessage.init(base_url, [frame[0]]);
172 +
173 + FS.PostMessage.receive('height', function (data) {
174 + var h = data.height;
175 + if (!isNaN(h) && h > 0 && h != frame_height) {
176 + frame_height = h;
177 + frame.height(frame_height + 'px');
178 +
179 + FS.PostMessage.postScroll(frame[0]);
180 + }
181 + });
182 +
183 + FS.PostMessage.receive('get_dimensions', function (data) {
184 + FS.PostMessage.post('dimensions', {
185 + height : $(document.body).height(),
186 + scrollTop: $(document).scrollTop()
187 + }, frame[0]);
188 + });
189 +
190 + FS.PostMessage.receive('start_trial', function (data) {
191 + openTrialConfirmationModal(data);
192 + });
193 + });
194 + })(jQuery);
195 + </script>
196 + <?php endif ?>
197 + </div>
198 +<?php
199 + if ( $has_tabs ) {
200 + $fs->_add_tabs_after_content();
201 + }
202 +
203 + $params = array(
204 + 'page' => 'pricing',
205 + 'module_id' => $fs->get_id(),
206 + 'module_type' => $fs->get_module_type(),
207 + 'module_slug' => $slug,
208 + 'module_version' => $fs->get_plugin_version(),
209 + );
210 + fs_require_template( 'powered-by.php', $params );