PluginProbe ʕ •ᴥ•ʔ
Nested Pages / 2.0.1
Nested Pages v2.0.1
3.3.1 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 9 years ago Updates.php 9 years ago
Updates.php
143 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_menu') ){
61 $menu_id = $this->nav_menu_repo->getMenuIDFromTitle('Nested Pages');
62 if ( !$menu_id ) $menu_id = wp_create_nav_menu('Nested Pages');
63 update_option('nestedpages_menu', $menu_id);
64 }
65 }
66
67 /**
68 * Convert existing nestedpages_menu option to menu ID rather than string/name
69 * @since 1.1.5
70 */
71 private function convertMenuToID()
72 {
73 if ( version_compare( $this->current_version, '1.1.5', '<' ) ){
74 $menu_option = get_option('nestedpages_menu');
75 $menu = get_term_by('name', $menu_option, 'nav_menu');
76 if ( $menu ){
77 delete_option('nestedpages_menu');
78 update_option('nestedpages_menu', $menu->term_id);
79 } else {
80 delete_option('nestedpages_menu');
81 $menu_id = wp_create_nav_menu('Nested Pages');
82 update_option('nestedpages_menu', $menu_id);
83 }
84 }
85 }
86
87 /**
88 * Make Page Post Type Enabled by Default
89 * Option can be blank, using get_option returns false if blank
90 * @since 1.3.5
91 */
92 private function enablePagePostType()
93 {
94 global $wpdb;
95 $options_table = $wpdb->prefix . 'options';
96 $sql = "SELECT * FROM $options_table WHERE option_name = 'nestedpages_posttypes'";
97 $results = $wpdb->get_results($sql);
98 if ( $results ) return;
99 update_option('nestedpages_posttypes', array(
100 'page' => array(
101 'replace_menu' => true
102 )
103 ));
104 }
105
106 /**
107 * Enable the Datepicker
108 */
109 private function enabledDatepicker()
110 {
111 if ( version_compare( $this->current_version, '1.3.1', '<' ) ){
112 $enabled = get_option('nestedpages_ui', false);
113 $default = array(
114 'datepicker' => 'true'
115 );
116 if ( !$enabled ) update_option('nestedpages_ui', $default);
117 }
118 }
119
120 /**
121 * Regenerate the synced menu
122 */
123 private function clearMenu()
124 {
125 if ( version_compare( $this->current_version, '1.5.2', '<' ) ){
126 $menu_id = $this->nav_menu_repo->getMenuID();
127 if ( $menu_id ) $this->nav_menu_repo->clearMenu($menu_id);
128 if ( get_option('nestedpages_menusync') !== 'sync' ) return;
129 $syncer = new NavMenuSyncListing;
130 $syncer->sync();
131 }
132 }
133
134 /**
135 * Convert the Nested Pages custom fields to hidden fields
136 */
137 private function convertCustomFieldsToHidden()
138 {
139 if ( version_compare( $this->current_version, '1.7.0', '<=' ) ){
140 new CustomFieldsToHidden;
141 }
142 }
143 }