PluginProbe ʕ •ᴥ•ʔ
Jetpack – WP Security, Backup, Speed, & Growth / 15.9-a.7
Jetpack – WP Security, Backup, Speed, & Growth v15.9-a.7
16.0-a.5 15.9.1 16.0-a.3 16.0-a.1 15.9 15.9-beta 15.9-a.7 15.9-a.5 15.9-a.3 15.9-a.1 15.8 15.8-beta 15.8-a.7 15.8-a.5 5.2.5 5.3.4 5.4.4 5.5.5 5.6.5 5.7.5 5.8.4 5.9.4 6.0.4 6.1 6.1.1 6.1.2 6.1.3 6.1.4 6.1.5 6.2 6.2.1 6.2.2 6.2.3 6.2.4 6.2.5 6.3 6.3.1 6.3.2 6.3.3 6.3.4 6.3.5 6.3.6 6.3.7 6.4 6.4.1 6.4.2 6.4.3 6.4.4 6.4.5 6.4.6 6.5 6.5.1 6.5.2 6.5.3 6.5.4 6.6 6.6.1 6.6.2 6.6.3 6.6.4 6.6.5 6.7 6.7.1 6.7.2 6.7.3 6.7.4 6.8 6.8.1 6.8.2 6.8.3 6.8.4 6.8.5 6.9 6.9.1 6.9.2 6.9.3 6.9.4 7.0 7.0.1 7.0.2 7.0.3 7.0.4 7.0.5 7.1 7.1.1 7.1.2 7.1.3 7.1.4 7.1.5 7.2 7.2.1 7.2.1.1 7.2.2 7.2.3 7.2.4 7.2.5 7.3 7.3.0.1 7.3.1 7.3.1.1 7.3.2 7.3.3 7.3.4 7.3.5 7.4 7.4.1 7.4.2 7.4.3 7.4.4 7.4.5 7.5 7.5.0.1 7.5.1 7.5.2 7.5.3 7.5.4 7.5.5 7.5.6 7.5.7 7.6 7.6.1 7.6.2 7.6.3 7.6.4 7.7 7.7.1 7.7.2 7.7.3 7.7.4 7.7.5 7.7.6 7.8 7.8.1 7.8.2 7.8.3 7.8.4 7.9 7.9.1 7.9.2 7.9.3 7.9.4 8.0 8.0.1 8.0.2 8.0.3 8.1 8.1.1 8.1.2 8.1.3 8.1.4 8.2 8.2.0.1 8.2.1 8.2.2 8.2.3 8.2.4 8.2.5 8.2.6 8.3 8.3.1 8.3.2 8.3.3 8.4 8.4.1 8.4.2 8.4.3 8.4.4 8.4.5 8.5 8.5.1 8.5.2 8.5.3 8.6 8.6.1 8.6.2 8.6.3 8.6.4 8.7 8.7.0.1 8.7.1 8.7.2 8.7.3 8.7.4 8.8 8.8.1 8.8.2 8.8.3 8.8.4 8.8.5 8.9 8.9.1 8.9.2 8.9.3 8.9.4 9.0 9.0.1 9.0.2 9.0.3 9.0.4 9.0.5 9.1 9.1.1 9.1.2 9.1.3 9.2 9.2.1 9.2.2 9.2.3 9.2.4 9.3 9.3.1 9.3.2 9.3.3 9.3.4 9.3.5 9.4 9.4.1 9.4.2 9.4.3 9.4.4 9.5 9.5.1 9.5.2 9.5.3 9.5.4 9.5.5 9.6 9.6.1 9.6.2 9.6.3 9.6.4 9.7 9.7.1 9.7.2 15.7-beta.2 9.7.3 15.7.1 9.8 15.8-a.1 9.8.1 15.8-a.3 9.8.2 2.0.9 9.8.3 2.1.7 9.9 2.2.10 9.9.1 2.3.10 9.9.2 2.4.7 9.9.3 2.5.5 2.6.6 2.7.5 2.8.5 2.9.6 3.0.6 3.1.5 3.2.5 3.3.6 3.4.6 3.5.6 3.6.4 3.7.5 3.8.5 3.9.10 4.0.7 4.1.4 4.2.5 4.3.5 4.4.5 4.5.3 4.6.3 4.7.4 4.8.5 4.9.3 5.0.3 5.1.4 trunk 10.0 10.0.1 10.0.2 10.1 10.1.1 10.1.2 10.2 10.2.1 10.2.2 10.2.3 10.3 10.3.1 10.3.2 10.4 10.4.1 10.4.2 10.5 10.5.1 10.5.2 10.5.3 10.6 10.6.1 10.6.2 10.7 10.7.1 10.7.2 10.8 10.8.1 10.8.2 10.9 10.9.1 10.9.2 10.9.3 11.0 11.0.1 11.0.2 11.1 11.1.1 11.1.2 11.1.3 11.1.4 11.2 11.2.1 11.2.2 11.3 11.3.1 11.3.2 11.3.3 11.3.4 11.4 11.4.1 11.4.2 11.5 11.5.1 11.5.2 11.5.3 11.6 11.6.1 11.6.2 11.7 11.7.1 11.7.2 11.7.3 11.8 11.8.3 11.8.4 11.8.5 11.8.6 11.9 11.9.1 11.9.2 11.9.3 12.0 12.0.1 12.0.2 12.1 12.1.1 12.1.2 12.2 12.2.1 12.2.2 12.3 12.3.1 12.4 12.4.1 12.5 12.5.1 12.6 12.6.1 12.6.2 12.6.3 12.7 12.7.1 12.7.2 12.8 12.8.1 12.8.2 12.9 12.9.1 12.9.2 12.9.3 12.9.4 13.0 13.0.1 13.1 13.1.1 13.1.2 13.1.3 13.1.4 13.2 13.2.1 13.2.2 13.2.3 13.3 13.3.1 13.3.2 13.4 13.4.1 13.4.2 13.4.3 13.4.4 13.5 13.5.1 13.6 13.6.1 13.7 13.7.1 13.8 13.8.1 13.8.2 13.9 13.9.1 14.0 14.1 14.2 14.2.1 14.3 14.4 14.4.1 14.5 14.6 14.7 14.8 14.9 14.9.1 15.0 15.0.1 15.0.2 15.1 15.1.1 15.2 15.3 15.3.1 15.4 15.5 15.6 15.7 15.7-a.1 15.7-a.3 15.7-a.5 15.7-a.7 15.7-beta
jetpack / _inc / lib / class-jetpack-newsletter-category-helper.php
jetpack / _inc / lib Last commit date
admin-pages 4 weeks ago core-api 4 weeks ago debugger 4 weeks ago markdown 7 months ago class-jetpack-ai-helper.php 4 months ago class-jetpack-application-password-extras.php 3 months ago class-jetpack-blog-stats-helper.php 7 months ago class-jetpack-currencies.php 1 year ago class-jetpack-instagram-gallery-helper.php 4 weeks ago class-jetpack-mapbox-helper.php 3 years ago class-jetpack-newsletter-category-helper.php 7 months ago class-jetpack-podcast-feed-locator.php 4 weeks ago class-jetpack-podcast-helper.php 4 months ago class-jetpack-recommendations.php 1 month ago class-jetpack-spinner.php 1 month ago class-jetpack-top-posts-helper.php 4 weeks ago class.color.php 1 year ago class.core-rest-api-endpoints.php 4 weeks ago class.jetpack-automatic-install-skin.php 2 years ago class.jetpack-iframe-embed.php 3 years ago class.jetpack-password-checker.php 7 months ago class.jetpack-search-performance-logger.php 4 years ago class.media-extractor.php 1 month ago class.media-summary.php 1 month ago class.media.php 7 months ago components.php 7 months ago debugger.php 4 weeks ago icalendar-reader.php 1 month ago markdown.php 7 months ago plans.php 4 years ago plugins.php 4 years ago tonesque.php 7 months ago widgets.php 2 months ago
class-jetpack-newsletter-category-helper.php
91 lines
1 <?php
2 /**
3 * Contains utilities related to the Jetpack Newsletter Categories.
4 *
5 * @package automattic/jetpack
6 */
7
8 /**
9 * Jetpack_Newsletter_Category_Helper class
10 */
11 class Jetpack_Newsletter_Category_Helper {
12
13 const NEWSLETTER_CATEGORIES_OPTION = 'wpcom_newsletter_categories';
14
15 /**
16 * Return category ID's
17 *
18 * @return array An array of integers
19 */
20 public static function get_category_ids() {
21 $newsletter_categories = maybe_unserialize( get_option( 'wpcom_newsletter_categories', array() ) );
22
23 if ( ! is_array( $newsletter_categories ) || empty( $newsletter_categories ) ) {
24 return array();
25 }
26
27 // Check if it is an array of integers.
28 // [123, 456]
29 if ( isset( $newsletter_categories[0] ) && is_int( $newsletter_categories[0] ) ) {
30 return $newsletter_categories;
31 }
32
33 // Check if it is an array of arrays with term_id keys.
34 // [{term_id: 123}, {term_id: 456}]
35 if ( isset( $newsletter_categories[0] ) && is_array( $newsletter_categories[0] ) && isset( $newsletter_categories[0]['term_id'] ) ) {
36 $ids = array();
37 foreach ( $newsletter_categories as $category ) {
38 if ( isset( $category['term_id'] ) && is_numeric( $category['term_id'] ) ) {
39 $ids[] = (int) $category['term_id'];
40 }
41 }
42 return $ids;
43 }
44
45 return array();
46 }
47
48 /**
49 * Handles category ID's ready to be saved as an option
50 *
51 * @param array $newsletter_categories An array of id's that could be in a few different forms.
52 * @return array|bool An associated array with term_id keys on success, or the boolean result from update_option.
53 * [{term_id: 123}, {term_id: 456}]
54 */
55 public static function save_category_ids( $newsletter_categories ) {
56 if ( ! is_array( $newsletter_categories ) || empty( $newsletter_categories ) ) {
57 return false;
58 }
59
60 $formatted_categories = array();
61
62 // Check if it is an array of integers.
63 // [123, 456]
64 if ( isset( $newsletter_categories[0] ) && is_numeric( $newsletter_categories[0] ) ) {
65 foreach ( $newsletter_categories as $id ) {
66 if ( is_numeric( $id ) ) {
67 $formatted_categories[] = array( 'term_id' => (int) $id );
68 }
69 }
70 }
71
72 // Check if it is an array of arrays with term_id keys.
73 // [{term_id: 123}, {term_id: 456}]
74 if ( isset( $newsletter_categories[0] ) && is_array( $newsletter_categories[0] ) && isset( $newsletter_categories[0]['term_id'] ) ) {
75 foreach ( $newsletter_categories as $category ) {
76 if ( isset( $category['term_id'] ) && is_numeric( $category['term_id'] ) ) {
77 $formatted_categories[] = array( 'term_id' => (int) $category['term_id'] );
78 }
79 }
80 }
81
82 if ( empty( $formatted_categories ) ) {
83 return false;
84 }
85
86 return update_option( self::NEWSLETTER_CATEGORIES_OPTION, $formatted_categories )
87 ? $formatted_categories
88 : false;
89 }
90 }
91