PluginProbe ʕ •ᴥ•ʔ
Nested Pages / 3.2.15
Nested Pages v3.2.15
3.2.15 3.2.14 3.1.8 3.1.9 3.2.0 3.2.1 3.2.10 3.2.11 3.2.12 3.2.13 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 trunk 1.0 1.1 1.1.1 1.1.2 1.1.3 1.1.4 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 1.2.0 1.2.1 1.3.0 1.3.1 1.3.10 1.3.11 1.3.12 1.3.13 1.3.14 1.3.15 1.3.2 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.6.0 1.6.1 1.6.2 1.6.3 1.6.3.1 1.6.3.2 1.6.4 1.6.5 1.6.5.1 1.6.5.2 1.6.6 1.6.7 1.6.8 1.7.0 1.7.1 2.0.1 2.0.2 2.0.3 2.0.4 3.0.1 3.0.10 3.0.11 3.0.2 3.0.3 3.0.4 3.0.5 3.0.6 3.0.7 3.0.8 3.0.9 3.1.0 3.1.1 3.1.10 3.1.11 3.1.12 3.1.13 3.1.14 3.1.15 3.1.16 3.1.17 3.1.18 3.1.19 3.1.2 3.1.20 3.1.21 3.1.22 3.1.3 3.1.4 3.1.5 3.1.6 3.1.7
wp-nested-pages / app / Activation / Updates / Updates.php
wp-nested-pages / app / Activation / Updates Last commit date
CustomFieldsToHidden.php 8 years ago Updates.php 3 years ago
Updates.php
146 lines
1 <?php
2 namespace NestedPages\Activation\Updates;
3
4 use NestedPages\Entities\NavMenu\NavMenuRepository;
5 use NestedPages\Entities\NavMenu\NavMenuSyncListing;
6 use NestedPages\Activation\Updates\CustomFieldsToHidden;
7
8 /**
9 * Required Version Upgrades
10 */
11 class Updates
12 {
13 /**
14 * New Version
15 */
16 private $new_version;
17
18 /**
19 * Current Version
20 */
21 private $current_version;
22
23 /**
24 * Nav Menu Repository
25 */
26 private $nav_menu_repo;
27
28 /**
29 * Run the Updates
30 * @var string
31 */
32 public function run($new_version)
33 {
34 $this->new_version = $new_version;
35 $this->nav_menu_repo = new NavMenuRepository;
36 $this->setCurrentVersion();
37 $this->clearMenu();
38 $this->addMenu();
39 $this->convertMenuToID();
40 $this->enablePagePostType();
41 $this->enabledDatepicker();
42 $this->convertCustomFieldsToHidden();
43 }
44
45 /**
46 * Set the plugin version
47 */
48 private function setCurrentVersion()
49 {
50 $this->current_version = ( get_option('nestedpages_version') )
51 ? get_option('nestedpages_version') : $this->new_version;
52 }
53
54 /**
55 * Add an empty Nested Pages menu if there isn't one
56 * @since 1.1.5
57 */
58 private function addMenu()
59 {
60 if ( get_option('nestedpages_menusync') !== 'sync' ) return;
61 if ( get_option('nestedpages_disable_menu') == 'true' ) return;
62
63 if ( !get_option('nestedpages_menu') ){
64 $menu_id = $this->nav_menu_repo->getMenuIDFromTitle('Nested Pages');
65 if ( !$menu_id ) $menu_id = wp_create_nav_menu('Nested Pages');
66 update_option('nestedpages_menu', $menu_id);
67 }
68 }
69
70 /**
71 * Convert existing nestedpages_menu option to menu ID rather than string/name
72 * @since 1.1.5
73 */
74 private function convertMenuToID()
75 {
76 if ( version_compare( $this->current_version, '1.1.5', '<' ) ){
77 $menu_option = get_option('nestedpages_menu');
78 $menu = get_term_by('name', $menu_option, 'nav_menu');
79 if ( $menu ){
80 delete_option('nestedpages_menu');
81 update_option('nestedpages_menu', $menu->term_id);
82 } else {
83 delete_option('nestedpages_menu');
84 $menu_id = wp_create_nav_menu('Nested Pages');
85 update_option('nestedpages_menu', $menu_id);
86 }
87 }
88 }
89
90 /**
91 * Make Page Post Type Enabled by Default
92 * Option can be blank, using get_option returns false if blank
93 * @since 1.3.5
94 */
95 private function enablePagePostType()
96 {
97 global $wpdb;
98 $options_table = $wpdb->prefix . 'options';
99 $sql = "SELECT * FROM $options_table WHERE option_name = 'nestedpages_posttypes'";
100 $results = $wpdb->get_results($sql);
101 if ( $results ) return;
102 update_option('nestedpages_posttypes', array(
103 'page' => array(
104 'replace_menu' => true
105 )
106 ));
107 }
108
109 /**
110 * Enable the Datepicker
111 */
112 private function enabledDatepicker()
113 {
114 if ( version_compare( $this->current_version, '1.3.1', '<' ) ){
115 $enabled = get_option('nestedpages_ui', false);
116 $default = [
117 'datepicker' => 'true'
118 ];
119 if ( !$enabled ) update_option('nestedpages_ui', $default);
120 }
121 }
122
123 /**
124 * Regenerate the synced menu
125 */
126 private function clearMenu()
127 {
128 if ( version_compare( $this->current_version, '1.5.2', '<' ) ){
129 $menu_id = $this->nav_menu_repo->getMenuID();
130 if ( $menu_id ) $this->nav_menu_repo->clearMenu($menu_id);
131 if ( get_option('nestedpages_menusync') !== 'sync' ) return;
132 $syncer = new NavMenuSyncListing;
133 $syncer->sync();
134 }
135 }
136
137 /**
138 * Convert the Nested Pages custom fields to hidden fields
139 */
140 private function convertCustomFieldsToHidden()
141 {
142 if ( version_compare( $this->current_version, '1.7.0', '<=' ) ){
143 new CustomFieldsToHidden;
144 }
145 }
146 }