PluginProbe
Tiered Pricing Table for WooCommerce / 2.3.0
Tiered Pricing Table for WooCommerce v2.3.0
7.1.7 7.1.5 7.1.4 7.1.1 6.5.0 6.4.0 6.1.0 trunk 1.0 1.1 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.2.0 2.2.1 2.2.2 2.2.3 2.3.0 2.3.1 2.3.2 2.3.3 2.3.4 All 90 releases
tier-pricing-table / freemius / templates / pricing.php

pricing.php in Tiered Pricing Table for WooCommerce 2.3.0, at freemius/templates/pricing.php

176 lines 5.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
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 ) );
92
93 if ( ! $fs->is_registered() ) {
94 $template_data = array(
95 'id' => $fs->get_id(),
96 );
97 fs_require_template( 'forms/trial-start.php', $template_data);
98 }
99
100 $view_params = array(
101 'id' => $VARS['id'],
102 'page' => strtolower( $fs->get_text_x_inline( 'Pricing', 'noun', 'pricing' ) ),
103 );
104 fs_require_once_template('secure-https-header.php', $view_params);
105
106 $has_tabs = $fs->_add_tabs_before_content();
107
108 if ( $has_tabs ) {
109 $query_params['tabs'] = 'true';
110 }
111 ?>
112 <div id="fs_pricing" class="wrap fs-section fs-full-size-wrapper">
113 <div id="fs_frame"></div>
114 <form action="" method="POST">
115 <input type="hidden" name="user_id"/>
116 <input type="hidden" name="user_email"/>
117 <input type="hidden" name="site_id"/>
118 <input type="hidden" name="public_key"/>
119 <input type="hidden" name="secret_key"/>
120 <input type="hidden" name="action" value="account"/>
121 </form>
122
123 <script type="text/javascript">
124 (function ($, undef) {
125 $(function () {
126 var
127 // Keep track of the i-frame height.
128 frame_height = 800,
129 base_url = '<?php echo WP_FS__ADDRESS ?>',
130 // Pass the parent page URL into the i-frame in a meaningful way (this URL could be
131 // passed via query string or hard coded into the child page, it depends on your needs).
132 src = base_url + '/pricing/?<?php echo http_build_query( $query_params ) ?>#' + encodeURIComponent(document.location.href),
133
134 // Append the I-frame into the DOM.
135 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>')
136 .appendTo('#fs_frame');
137
138 FS.PostMessage.init(base_url, [frame[0]]);
139
140 FS.PostMessage.receive('height', function (data) {
141 var h = data.height;
142 if (!isNaN(h) && h > 0 && h != frame_height) {
143 frame_height = h;
144 frame.height(frame_height + 'px');
145
146 FS.PostMessage.postScroll(frame[0]);
147 }
148 });
149
150 FS.PostMessage.receive('get_dimensions', function (data) {
151 FS.PostMessage.post('dimensions', {
152 height : $(document.body).height(),
153 scrollTop: $(document).scrollTop()
154 }, frame[0]);
155 });
156
157 FS.PostMessage.receive('start_trial', function (data) {
158 openTrialConfirmationModal(data);
159 });
160 });
161 })(jQuery);
162 </script>
163 </div>
164 <?php
165 if ( $has_tabs ) {
166 $fs->_add_tabs_after_content();
167 }
168
169 $params = array(
170 'page' => 'pricing',
171 'module_id' => $fs->get_id(),
172 'module_type' => $fs->get_module_type(),
173 'module_slug' => $slug,
174 'module_version' => $fs->get_plugin_version(),
175 );
176 fs_require_template( 'powered-by.php', $params );