PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / 3.4.3
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages v3.4.3
3.4.3 3.4.2 3.4.1 3.4.0 3.3.9 3.3.8 3.3.7 3.3.6 3.3.5 3.3.4 3.3.3 3.3.2 3.3.1 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.2.7 2.2.8 2.2.9 2.3.0 2.3.1 All 196 releases
← All changes | includes/class-convertkit-settings-restrict-content.php +183 -12 2.2.63.4.3 View file →
@@ -64,8 +64,21 @@
64 64
65 65 }
66 66
67 67 /**
68 + * Returns whether crawlers are permitted to index Member Content in the Plugin settings.
69 + *
70 + * @since 2.4.1
71 + *
72 + * @return bool
73 + */
74 + public function permit_crawlers() {
75 +
76 + return ( $this->settings['permit_crawlers'] === 'on' ? true : false );
77 +
78 + }
79 +
80 + /**
68 81 * Returns Restrict Content settings value for the given key.
69 82 *
70 83 * @since 2.1.0
71 84 *
@@ -89,21 +102,140 @@
89 102
90 103 }
91 104
92 105 /**
93 - * Returns whether Restrict Content is enabled in the Plugin settings.
106 + * Returns this settings group's programmatic name.
94 107 *
95 - * @since 2.1.0
108 + * @since 3.4.0
96 109 *
97 - * @return bool
110 + * @return string
98 111 */
99 - public function enabled() {
112 + public function get_name() {
100 113
101 - return ( $this->settings['enabled'] === 'on' ? true : false );
114 + return 'restrict-content';
102 115
103 116 }
104 117
105 118 /**
119 + * Returns the title of this settings group.
120 + *
121 + * @since 3.4.0
122 + *
123 + * @return string
124 + */
125 + public function get_title() {
126 +
127 + return __( 'Member Content Settings', 'convertkit' );
128 +
129 + }
130 +
131 + /**
132 + * Returns the keys in this settings group that hold credentials or other
133 + * sensitive values.
134 + *
135 + * Member Content settings hold no secrets; returned for interface
136 + * consistency.
137 + *
138 + * @since 3.4.0
139 + *
140 + * @return string[]
141 + */
142 + public function get_secret_keys() {
143 +
144 + return array();
145 +
146 + }
147 +
148 + /**
149 + * Returns the JSON Schema describing this settings group, in the shape
150 + * stored by save() / returned by get(), excluding secret keys.
151 + *
152 + * @since 3.4.0
153 + *
154 + * @return array
155 + */
156 + public function get_schema() {
157 +
158 + return array(
159 + 'type' => 'object',
160 + 'additionalProperties' => false,
161 + 'properties' => array(
162 + 'permit_crawlers' => array(
163 + 'type' => 'string',
164 + 'enum' => array( '', 'on' ),
165 + 'description' => __( 'Whether search engine crawlers are permitted to index Member Content.', 'convertkit' ),
166 + ),
167 + 'no_access_text_form' => array(
168 + 'type' => 'string',
169 + 'description' => __( 'Message shown to a visitor without access when content is restricted by Form.', 'convertkit' ),
170 + ),
171 + 'subscribe_heading' => array(
172 + 'type' => 'string',
173 + 'description' => __( 'Heading shown above the subscribe call-to-action when content is restricted by Product.', 'convertkit' ),
174 + ),
175 + 'subscribe_text' => array(
176 + 'type' => 'string',
177 + 'description' => __( 'Body text shown alongside the subscribe call-to-action when content is restricted by Product.', 'convertkit' ),
178 + ),
179 + 'no_access_text' => array(
180 + 'type' => 'string',
181 + 'description' => __( 'Message shown to a visitor without access when content is restricted by Product.', 'convertkit' ),
182 + ),
183 + 'subscribe_heading_tag' => array(
184 + 'type' => 'string',
185 + 'description' => __( 'Heading shown above the subscribe call-to-action when content is restricted by Tag.', 'convertkit' ),
186 + ),
187 + 'subscribe_text_tag' => array(
188 + 'type' => 'string',
189 + 'description' => __( 'Body text shown alongside the subscribe call-to-action when content is restricted by Tag.', 'convertkit' ),
190 + ),
191 + 'require_tag_login' => array(
192 + 'type' => 'string',
193 + 'enum' => array( '', 'on' ),
194 + 'description' => __( 'Whether visitors must log in by email to access Member Content restricted by Tag.', 'convertkit' ),
195 + ),
196 + 'no_access_text_tag' => array(
197 + 'type' => 'string',
198 + 'description' => __( 'Message shown to a visitor without access when content is restricted by Tag.', 'convertkit' ),
199 + ),
200 + 'subscribe_button_label' => array(
201 + 'type' => 'string',
202 + 'description' => __( 'Label for the Subscribe button.', 'convertkit' ),
203 + ),
204 + 'email_text' => array(
205 + 'type' => 'string',
206 + 'description' => __( 'Body text shown above the email log-in form.', 'convertkit' ),
207 + ),
208 + 'email_button_label' => array(
209 + 'type' => 'string',
210 + 'description' => __( 'Label for the email log-in button.', 'convertkit' ),
211 + ),
212 + 'email_heading' => array(
213 + 'type' => 'string',
214 + 'description' => __( 'Heading shown above the email log-in form.', 'convertkit' ),
215 + ),
216 + 'email_description_text' => array(
217 + 'type' => 'string',
218 + 'description' => __( 'Description shown beneath the email log-in heading.', 'convertkit' ),
219 + ),
220 + 'email_check_heading' => array(
221 + 'type' => 'string',
222 + 'description' => __( 'Heading shown after the visitor requests a magic log-in code.', 'convertkit' ),
223 + ),
224 + 'email_check_text' => array(
225 + 'type' => 'string',
226 + 'description' => __( 'Body text shown after the visitor requests a magic log-in code.', 'convertkit' ),
227 + ),
228 + 'container_css_classes' => array(
229 + 'type' => 'string',
230 + 'description' => __( 'Additional CSS classes appended to the Restrict Content container element.', 'convertkit' ),
231 + ),
232 + ),
233 + );
234 +
235 + }
236 +
237 + /**
106 238 * The default settings, used when the ConvertKit Restrict Content Settings haven't been saved
107 239 * e.g. on a new installation.
108 240 *
109 241 * @since 2.1.0
@@ -112,15 +244,33 @@
112 244 */
113 245 public function get_defaults() {
114 246
115 247 $defaults = array(
116 - 'enabled' => '',
117 - 'subscribe_text' => __( 'This content is only available to premium subscribers', 'convertkit' ),
248 + // Permit Crawlers.
249 + 'permit_crawlers' => '',
250 +
251 + // Restrict by Form.
252 + 'no_access_text_form' => __( 'Your account does not have access to this content. Please use the form above to subscribe.', 'convertkit' ),
253 +
254 + // Restrict by Product.
255 + 'subscribe_heading' => __( 'Read this post with a premium subscription', 'convertkit' ),
256 + 'subscribe_text' => __( 'This post is only available to premium subscribers. Join today to get access to all posts.', 'convertkit' ),
257 + 'no_access_text' => __( 'Your account does not have access to this content. Please use the button above to purchase, or enter the email address you used to purchase the product.', 'convertkit' ),
258 +
259 + // Restrict by Tag.
260 + 'subscribe_heading_tag' => __( 'Subscribe to keep reading', 'convertkit' ),
261 + 'subscribe_text_tag' => __( 'This post is free to read but only available to subscribers. Join today to get access to all posts.', 'convertkit' ),
262 + 'no_access_text_tag' => __( 'Your account does not have access to this content. Please use the form above to subscribe.', 'convertkit' ),
263 +
264 + // All.
118 265 'subscribe_button_label' => __( 'Subscribe', 'convertkit' ),
119 - 'email_text' => __( 'Already a premium subscriber? Enter the email address used when purchasing below, to receive a login link to access.', 'convertkit' ),
120 - 'email_button_label' => __( 'Send email', 'convertkit' ),
121 - 'email_check_text' => __( 'Check your email and click the link to login, or enter the code from the email below.', 'convertkit' ),
122 - 'no_access_text' => __( 'Your account does not have access to this content. Please use the button below to purchase, or enter the email address you used to purchase the product.', 'convertkit' ),
266 + 'email_text' => __( 'Already subscribed?', 'convertkit' ),
267 + 'email_button_label' => __( 'Log in', 'convertkit' ),
268 + 'email_heading' => __( 'Log in to read this post', 'convertkit' ),
269 + 'email_description_text' => __( 'We\'ll email you a magic code to log you in without a password.', 'convertkit' ),
270 + 'email_check_heading' => __( 'We just emailed you a log in code', 'convertkit' ),
271 + 'email_check_text' => __( 'Enter the code below to finish logging in', 'convertkit' ),
272 + 'container_css_classes' => '',
123 273 );
124 274
125 275 /**
126 276 * The default settings, used when the ConvertKit Restrict Content Settings haven't been saved
@@ -127,9 +277,9 @@
127 277 * e.g. on a new installation.
128 278 *
129 279 * @since 2.1.0
130 280 *
131 - * @param array $defaults
281 + * @param array $defaults Default settings.
132 282 */
133 283 $defaults = apply_filters( 'convertkit_settings_restrict_content_get_defaults', $defaults );
134 284
135 285 return $defaults;
@@ -145,8 +295,29 @@
145 295 */
146 296 public function save( $settings ) {
147 297
148 298 update_option( self::SETTINGS_NAME, array_merge( $this->get(), $settings ) );
299 +
300 + // Reload settings in class, to reflect changes.
301 + $this->refresh_settings();
302 +
303 + }
304 +
305 + /**
306 + * Reloads settings from the options table so this instance has the latest values.
307 + *
308 + * @since 3.3.5
309 + */
310 + private function refresh_settings() {
311 +
312 + $settings = get_option( self::SETTINGS_NAME );
313 +
314 + if ( ! $settings ) {
315 + $this->settings = $this->get_defaults();
316 + return;
317 + }
318 +
319 + $this->settings = array_merge( $this->get_defaults(), $settings );
149 320
150 321 }
151 322
152 323 }