PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / 2.4.1
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages v2.4.1
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 2.3.2 2.3.3 All 194 releases
convertkit / includes / class-convertkit-settings-restrict-content.php

class-convertkit-settings-restrict-content.php in Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages 2.4.1, at includes/class-convertkit-settings-restrict-content.php

150 lines 3.8 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * ConvertKit Restrict Content Settings class.
4 *
5 * @package ConvertKit
6 * @author ConvertKit
7 */
8
9 /**
10 * Class to read ConvertKit Restrict Content Settings.
11 *
12 * @since 2.1.0
13 */
14 class ConvertKit_Settings_Restrict_Content {
15
16 /**
17 * Holds the Settings Key that stores site wide ConvertKit settings
18 *
19 * @var string
20 *
21 * @since 2.1.0
22 */
23 const SETTINGS_NAME = '_wp_convertkit_settings_restrict_content';
24
25 /**
26 * Holds the Settings
27 *
28 * @var array
29 *
30 * @since 2.1.0
31 */
32 private $settings = array();
33
34 /**
35 * Constructor. Reads settings from options table, falling back to defaults
36 * if no settings exist.
37 *
38 * @since 2.1.0
39 */
40 public function __construct() {
41
42 // Get Settings.
43 $settings = get_option( self::SETTINGS_NAME );
44
45 // If no Settings exist, falback to default settings.
46 if ( ! $settings ) {
47 $this->settings = $this->get_defaults();
48 } else {
49 $this->settings = array_merge( $this->get_defaults(), $settings );
50 }
51
52 }
53
54 /**
55 * Returns Plugin settings.
56 *
57 * @since 2.1.0
58 *
59 * @return array
60 */
61 public function get() {
62
63 return $this->settings;
64
65 }
66
67 /**
68 * Returns Restrict Content settings value for the given key.
69 *
70 * @since 2.1.0
71 *
72 * @param string $key Setting Key.
73 * @return string Value
74 */
75 public function get_by_key( $key ) {
76
77 // If the setting doesn't exist, bail.
78 if ( ! array_key_exists( $key, $this->settings ) ) {
79 return '';
80 }
81
82 // If the setting is empty, fallback to the default.
83 if ( empty( $this->settings[ $key ] ) ) {
84 $defaults = $this->get_defaults();
85 return $defaults[ $key ];
86 }
87
88 return $this->settings[ $key ];
89
90 }
91
92 /**
93 * The default settings, used when the ConvertKit Restrict Content Settings haven't been saved
94 * e.g. on a new installation.
95 *
96 * @since 2.1.0
97 *
98 * @return array
99 */
100 public function get_defaults() {
101
102 $defaults = array(
103 // Restrict by Product.
104 'subscribe_heading' => __( 'Read this post with a premium subscription', 'convertkit' ),
105 'subscribe_text' => __( 'This post is only available to premium subscribers. Join today to get access to all posts.', 'convertkit' ),
106
107 // Restrict by Tag.
108 'subscribe_heading_tag' => __( 'Subscribe to keep reading', 'convertkit' ),
109 'subscribe_text_tag' => __( 'This post is free to read but only available to subscribers. Join today to get access to all posts.', 'convertkit' ),
110
111 // All.
112 'subscribe_button_label' => __( 'Subscribe', 'convertkit' ),
113 'email_text' => __( 'Already subscribed?', 'convertkit' ),
114 'email_button_label' => __( 'Log in', 'convertkit' ),
115 'email_heading' => __( 'Log in to read this post', 'convertkit' ),
116 'email_description_text' => __( 'We\'ll email you a magic code to log you in without a password.', 'convertkit' ),
117 'email_check_heading' => __( 'We just emailed you a log in code', 'convertkit' ),
118 'email_check_text' => __( 'Enter the code below to finish logging in', 'convertkit' ),
119 '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' ),
120 );
121
122 /**
123 * The default settings, used when the ConvertKit Restrict Content Settings haven't been saved
124 * e.g. on a new installation.
125 *
126 * @since 2.1.0
127 *
128 * @param array $defaults
129 */
130 $defaults = apply_filters( 'convertkit_settings_restrict_content_get_defaults', $defaults );
131
132 return $defaults;
133
134 }
135
136 /**
137 * Saves the given array of settings to the WordPress options table.
138 *
139 * @since 2.1.0
140 *
141 * @param array $settings Settings.
142 */
143 public function save( $settings ) {
144
145 update_option( self::SETTINGS_NAME, array_merge( $this->get(), $settings ) );
146
147 }
148
149 }
150