PluginProbe
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages / 2.3.7
Kit (formerly ConvertKit) – Email Newsletter, Email Marketing, Membership, Subscribers and Landing Pages v2.3.7
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 2.3.2 All 195 releases
convertkit / includes / class-convertkit-settings-broadcasts.php

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

237 lines 4.3 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * ConvertKit Broadcasts Settings class.
4 *
5 * @package ConvertKit
6 * @author ConvertKit
7 */
8
9 /**
10 * Class to read ConvertKit Broadcasts Settings.
11 *
12 * @since 2.2.9
13 */
14 class ConvertKit_Settings_Broadcasts {
15
16 /**
17 * Holds the Settings Key that stores site wide ConvertKit settings
18 *
19 * @var string
20 *
21 * @since 2.2.9
22 */
23 const SETTINGS_NAME = '_wp_convertkit_settings_broadcasts';
24
25 /**
26 * Holds the Settings
27 *
28 * @var array
29 *
30 * @since 2.2.9
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.2.9
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.2.9
58 *
59 * @return array
60 */
61 public function get() {
62
63 return $this->settings;
64
65 }
66
67 /**
68 * Returns whether Broadcasts are enabled in the Plugin settings.
69 *
70 * @since 2.2.9
71 *
72 * @return bool
73 */
74 public function enabled() {
75
76 return ( $this->settings['enabled'] === 'on' ? true : false );
77
78 }
79
80 /**
81 * Returns the WordPress Author ID to assign imported Broadcasts to.
82 *
83 * @since 2.2.9
84 *
85 * @return int
86 */
87 public function author_id() {
88
89 return $this->settings['author_id'];
90
91 }
92
93 /**
94 * Returns the WordPress Post Status to assign to Posts created from imported Broadcasts.
95 *
96 * @since 2.3.4
97 *
98 * @return string
99 */
100 public function post_status() {
101
102 return $this->settings['post_status'];
103
104 }
105
106 /**
107 * Returns the WordPress Category ID to assign imported Broadcasts to.
108 *
109 * @since 2.2.9
110 *
111 * @return int
112 */
113 public function category_id() {
114
115 return $this->settings['category_id'];
116
117 }
118
119 /**
120 * Returns the earliest date that Broadcasts should be imported,
121 * based on their published_at date.
122 *
123 * @since 2.2.9
124 *
125 * @return string Date (yyyy-mm-dd)
126 */
127 public function published_at_min_date() {
128
129 return $this->settings['published_at_min_date'];
130
131 }
132
133 /**
134 * Returns whether exporting Posts to Broadcasts is enabled in the Plugin settings.
135 *
136 * @since 2.4.0
137 *
138 * @return bool
139 */
140 public function enabled_export() {
141
142 return ( $this->settings['enabled_export'] === 'on' ? true : false );
143
144 }
145
146 /**
147 * Returns whether Broadcasts should have their styles imported.
148 *
149 * @since 2.2.9
150 *
151 * @return bool
152 */
153 public function no_styles() {
154
155 return ( $this->settings['no_styles'] === 'on' ? true : false );
156
157 }
158
159 /**
160 * Returns whether imported Broadcasts should have their Restrict Content
161 * setting defined, if the Broadcast is marked as paid.
162 *
163 * @since 2.2.9
164 *
165 * @return bool
166 */
167 public function restrict_content_enabled() {
168
169 return ! empty( $this->settings['restrict_content'] );
170
171 }
172
173 /**
174 * Returns the Restrict Content setting to assign to imported Broadcasts
175 *
176 * @since 2.2.9
177 *
178 * @return string
179 */
180 public function restrict_content() {
181
182 return $this->settings['restrict_content'];
183
184 }
185
186 /**
187 * The default settings, used when the ConvertKit Broadcasts Settings haven't been saved
188 * e.g. on a new installation.
189 *
190 * @since 2.2.9
191 *
192 * @return array
193 */
194 public function get_defaults() {
195
196 $defaults = array(
197 'enabled' => '',
198 'author_id' => get_current_user_id(),
199 'post_status' => 'publish',
200 'category_id' => '',
201
202 // By default, only import Broadcasts as Posts for the last 30 days.
203 'published_at_min_date' => gmdate( 'Y-m-d', strtotime( '-30 days' ) ),
204
205 'enabled_export' => '',
206 'no_styles' => '',
207 );
208
209 /**
210 * The default settings, used when the ConvertKit Broadcasts Settings haven't been saved
211 * e.g. on a new installation.
212 *
213 * @since 2.2.9
214 *
215 * @param array $defaults
216 */
217 $defaults = apply_filters( 'convertkit_settings_broadcasts_get_defaults', $defaults );
218
219 return $defaults;
220
221 }
222
223 /**
224 * Saves the given array of settings to the WordPress options table.
225 *
226 * @since 2.2.9
227 *
228 * @param array $settings Settings.
229 */
230 public function save( $settings ) {
231
232 update_option( self::SETTINGS_NAME, array_merge( $this->get(), $settings ) );
233
234 }
235
236 }
237