PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / 3.4.5
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages v3.4.5
3.4.5 3.4.4 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 All 198 releases
← All changes | includes/class-convertkit-settings-restrict-content.php +148 -14 3.3.2 → 3.4.5 View file →
@@ -77,21 +77,8 @@
77 77
78 78 }
79 79
80 80 /**
81 - * Returns whether login by email is required for Member Content by Tag functionality.
82 - *
83 - * @since 2.7.2
84 - *
85 - * @return bool
86 - */
87 - public function require_tag_login() {
88 -
89 - return ( $this->settings['require_tag_login'] === 'on' ? true : false );
90 -
91 - }
92 -
93 - /**
94 81 * Returns Restrict Content settings value for the given key.
95 82 *
96 83 * @since 2.1.0
97 84 *
@@ -115,8 +102,135 @@
115 102
116 103 }
117 104
118 105 /**
106 + * Returns this settings group's programmatic name.
107 + *
108 + * @since 3.4.0
109 + *
110 + * @return string
111 + */
112 + public function get_name() {
113 +
114 + return 'restrict-content';
115 +
116 + }
117 +
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 + 'no_access_text_tag' => array(
192 + 'type' => 'string',
193 + 'description' => __( 'Message shown to a visitor without access when content is restricted by Tag.', 'convertkit' ),
194 + ),
195 + 'subscribe_button_label' => array(
196 + 'type' => 'string',
197 + 'description' => __( 'Label for the Subscribe button.', 'convertkit' ),
198 + ),
199 + 'email_text' => array(
200 + 'type' => 'string',
201 + 'description' => __( 'Body text shown above the email log-in form.', 'convertkit' ),
202 + ),
203 + 'email_button_label' => array(
204 + 'type' => 'string',
205 + 'description' => __( 'Label for the email log-in button.', 'convertkit' ),
206 + ),
207 + 'email_heading' => array(
208 + 'type' => 'string',
209 + 'description' => __( 'Heading shown above the email log-in form.', 'convertkit' ),
210 + ),
211 + 'email_description_text' => array(
212 + 'type' => 'string',
213 + 'description' => __( 'Description shown beneath the email log-in heading.', 'convertkit' ),
214 + ),
215 + 'email_check_heading' => array(
216 + 'type' => 'string',
217 + 'description' => __( 'Heading shown after the visitor requests a magic log-in code.', 'convertkit' ),
218 + ),
219 + 'email_check_text' => array(
220 + 'type' => 'string',
221 + 'description' => __( 'Body text shown after the visitor requests a magic log-in code.', 'convertkit' ),
222 + ),
223 + 'container_css_classes' => array(
224 + 'type' => 'string',
225 + 'description' => __( 'Additional CSS classes appended to the Restrict Content container element.', 'convertkit' ),
226 + ),
227 + ),
228 + );
229 +
230 + }
231 +
232 + /**
119 233 * The default settings, used when the ConvertKit Restrict Content Settings haven't been saved
120 234 * e.g. on a new installation.
121 235 *
122 236 * @since 2.1.0
@@ -139,9 +253,8 @@
139 253
140 254 // Restrict by Tag.
141 255 'subscribe_heading_tag' => __( 'Subscribe to keep reading', 'convertkit' ),
142 256 'subscribe_text_tag' => __( 'This post is free to read but only available to subscribers. Join today to get access to all posts.', 'convertkit' ),
143 - 'require_tag_login' => '', // blank|on.
144 257 'no_access_text_tag' => __( 'Your account does not have access to this content. Please use the form above to subscribe.', 'convertkit' ),
145 258
146 259 // All.
147 260 'subscribe_button_label' => __( 'Subscribe', 'convertkit' ),
@@ -177,8 +290,29 @@
177 290 */
178 291 public function save( $settings ) {
179 292
180 293 update_option( self::SETTINGS_NAME, array_merge( $this->get(), $settings ) );
294 +
295 + // Reload settings in class, to reflect changes.
296 + $this->refresh_settings();
297 +
298 + }
299 +
300 + /**
301 + * Reloads settings from the options table so this instance has the latest values.
302 + *
303 + * @since 3.3.5
304 + */
305 + private function refresh_settings() {
306 +
307 + $settings = get_option( self::SETTINGS_NAME );
308 +
309 + if ( ! $settings ) {
310 + $this->settings = $this->get_defaults();
311 + return;
312 + }
313 +
314 + $this->settings = array_merge( $this->get_defaults(), $settings );
181 315
182 316 }
183 317
184 318 }