コード例 #1
0
ファイル: menu.php プロジェクト: ryanshoover/wp-cli
 /**
  * Delete one or more menus
  *
  * <menu>...
  * : The name, slug, or term ID for the menu(s)
  *
  * ## EXAMPLES
  *
  *     wp menu delete "My Menu"
  */
 public function delete($args, $_)
 {
     foreach ($args as $arg) {
         $ret = wp_delete_nav_menu($arg);
         if (!$ret || is_wp_error($ret)) {
             WP_CLI::warning("Error deleting menu.");
         }
     }
     WP_CLI::success("Menu(s) deleted.");
 }
コード例 #2
0
ファイル: menu.php プロジェクト: wp-cli/wp-cli
 /**
  * Delete one or more menus.
  *
  * ## OPTIONS
  *
  * <menu>...
  * : The name, slug, or term ID for the menu(s).
  *
  * ## EXAMPLES
  *
  *     $ wp menu delete "My Menu"
  *     Success: 1 menu deleted.
  */
 public function delete($args, $_)
 {
     $count = $errors = 0;
     foreach ($args as $arg) {
         $ret = wp_delete_nav_menu($arg);
         if (!$ret || is_wp_error($ret)) {
             WP_CLI::warning("Couldn't delete menu '{$arg}'.");
             $errors++;
         } else {
             WP_CLI::log("Deleted menu '{$arg}'.");
             $count++;
         }
     }
     Utils\report_batch_operation_results('menu', 'delete', count($args), $count, $errors);
 }
コード例 #3
0
ファイル: menu-customize-ajax.php プロジェクト: dauidus/woof
/**
 * Ajax handler for deleting a menu.
 *
 * @since Menu Customizer 0.0.
 */
function menu_customizer_delete_menu_ajax()
{
    check_ajax_referer('customize-menus', 'customize-nav-menu-nonce');
    if (!current_user_can('edit_theme_options')) {
        wp_die(-1);
    }
    $menu_id = absint($_POST['menu_id']);
    if (is_nav_menu($menu_id)) {
        $deletion = wp_delete_nav_menu($menu_id);
        if (is_wp_error($deletion)) {
            echo $deletion->message();
        }
    } else {
        echo __('Error: invalid menu to delete.');
    }
    wp_die();
}
コード例 #4
0
ファイル: td_demo_site.php プロジェクト: Vatia13/wordpress
 /**
  * creates the menu
  * @param $menu_name
  */
 function create_menu($menu_name)
 {
     $current_menu = wp_get_nav_menu_object($menu_name);
     if (!$current_menu) {
         $this->last_menu_id = wp_create_nav_menu($menu_name);
         $this->log("create_menu({$menu_name})", 'ID:' . $this->last_menu_id);
     } else {
         wp_delete_nav_menu($menu_name);
         $this->last_menu_id = wp_create_nav_menu($menu_name);
         $this->log("create_menu({$menu_name})", 'Menu recreated ID:' . $this->last_menu_id);
         /*
         if (!empty($current_menu->term_id)) {
             $this->last_menu_id = $current_menu->term_id;
             $this->log("create_menu($menu_name)", 'menu already exists ID: ' . $this->last_menu_id);
         }
         */
     }
 }
コード例 #5
0
ファイル: ajax.php プロジェクト: BenjaminCool/client-dash
 /**
  * Resets ALL Client Dash settings by deleting them.
  *
  * @since Client Dash 1.6
  */
 public function reset_all_settings()
 {
     global $ClientDash, $ClientDash_Core_Page_Settings_Tab_Widgets;
     // Cycle through all option defaults and delete them
     foreach ($ClientDash->option_defaults as $name => $value) {
         delete_option("cd_{$name}");
     }
     // Remove all modified admin menus
     foreach (get_editable_roles() as $role_ID => $role) {
         // Get the menu object
         $menu_object = wp_get_nav_menu_object("cd_admin_menu_{$role_ID}");
         // If it doesn't exist, it returns false. So skip
         if (!$menu_object) {
             continue;
         }
         wp_delete_nav_menu("cd_admin_menu_{$role_ID}");
         // Delete the nav menu
         delete_transient("cd_adminmenu_output_{$menu_object->term_id}");
         // Cached menu info
         delete_option("{$menu_object->name}_modified");
         // Menu output
         delete_option("cd_adminmenu_disabled_{$menu_object->term_id}");
         // Menu disable option
     }
     // Remove all of the widgets
     // Prevent widget syncing
     add_filter('cd_sync_widgets', '__return_false');
     // This forces the widgets to be reset
     delete_option('cd_populate_dashboard_widgets');
     // Remove each CD sidebar settings
     $sidebars = get_option('sidebars_widgets');
     foreach ($ClientDash_Core_Page_Settings_Tab_Widgets->sidebars as $sidebar) {
         unset($sidebars[$sidebar['id']]);
     }
     update_option('sidebars_widgets', $sidebars);
     // Remove individual widget settings
     foreach (ClientDash::$_cd_widgets as $widget_ID => $widget) {
         delete_option("widget_{$widget_ID}");
     }
     echo 'Settings successfully reset!';
     die;
 }
コード例 #6
0
 function callback($path = '', $site = 0, $menu_id = 0)
 {
     $site_id = $this->switch_to_blog_and_validate_user($this->api->get_blog_id($site));
     if (is_wp_error($site_id)) {
         return $site_id;
     }
     if ($menu_id <= 0) {
         return new WP_Error('menu-id', 'Menu ID must be greater than 0.', 400);
     }
     $result = wp_delete_nav_menu($menu_id);
     if (!is_wp_error($result)) {
         $result = array('deleted' => $result);
     }
     return $result;
 }
コード例 #7
0
	/**
	 * Create/update the nav_menu term for this setting.
	 *
	 * Any created menus will have their assigned term IDs exported to the client
	 * via the customize_save_response filter. Likewise, any errors will be exported
	 * to the client via the customize_save_response() filter.
	 *
	 * To delete a menu, the client can send false as the value.
	 *
	 * @since 4.3.0
	 *
	 * @see wp_update_nav_menu_object()
	 *
	 * @param array|false $value {
	 *     The value to update. Note that slug cannot be updated via wp_update_nav_menu_object().
	 *     If false, then the menu will be deleted entirely.
	 *
	 *     @type string $name        The name of the menu to save.
	 *     @type string $description The term description. Default empty string.
	 *     @type int    $parent      The id of the parent term. Default 0.
	 *     @type bool   $auto_add    Whether pages will auto_add to this menu. Default false.
	 * }
	 * @return void
	 */
	protected function update( $value ) {
		if ( $this->is_updated ) {
			return;
		}

		$this->is_updated = true;
		$is_placeholder   = ( $this->term_id < 0 );
		$is_delete        = ( false === $value );

		add_filter( 'customize_save_response', array( $this, 'amend_customize_save_response' ) );

		$auto_add = null;
		if ( $is_delete ) {
			// If the current setting term is a placeholder, a delete request is a no-op.
			if ( $is_placeholder ) {
				$this->update_status = 'deleted';
			} else {
				$r = wp_delete_nav_menu( $this->term_id );

				if ( is_wp_error( $r ) ) {
					$this->update_status = 'error';
					$this->update_error  = $r;
				} else {
					$this->update_status = 'deleted';
					$auto_add = false;
				}
			}
		} else {
			// Insert or update menu.
			$menu_data = wp_array_slice_assoc( $value, array( 'description', 'parent' ) );
			if ( isset( $value['name'] ) ) {
				$menu_data['menu-name'] = $value['name'];
			}

			$r = wp_update_nav_menu_object( $is_placeholder ? 0 : $this->term_id, $menu_data );
			if ( is_wp_error( $r ) ) {
				$this->update_status = 'error';
				$this->update_error  = $r;
			} else {
				if ( $is_placeholder ) {
					$this->previous_term_id = $this->term_id;
					$this->term_id          = $r;
					$this->update_status    = 'inserted';
				} else {
					$this->update_status = 'updated';
				}

				$auto_add = $value['auto_add'];
			}
		}

		if ( null !== $auto_add ) {
			$nav_menu_options = $this->filter_nav_menu_options_value(
				(array) get_option( 'nav_menu_options', array() ),
				$this->term_id,
				$auto_add
			);
			update_option( 'nav_menu_options', $nav_menu_options );
		}

		// Make sure that new menus assigned to nav menu locations use their new IDs.
		if ( 'inserted' === $this->update_status ) {
			foreach ( $this->manager->settings() as $setting ) {
				if ( ! preg_match( '/^nav_menu_locations\[/', $setting->id ) ) {
					continue;
				}

				$post_value = $setting->post_value( null );
				if ( ! is_null( $post_value ) && $this->previous_term_id === intval( $post_value ) ) {
					$this->manager->set_post_value( $setting->id, $this->term_id );
					$setting->save();
				}
			}
		}
	}
コード例 #8
0
 public function remove_item($item)
 {
     $remove_success = false;
     switch ($item->type) {
         case 'nav_menu':
             $remove_success = !is_wp_error(wp_delete_nav_menu($item->id));
             break;
         case 'nav_menu_item':
             // should be picked up by remove nav menu ^
             $remove_success = true;
             break;
         case 'attachment':
             $remove_success = wp_delete_attachment($item->id, true) !== false;
             break;
         case 'revslider':
             if (class_exists('RevSlider')) {
                 $revslider = new RevSlider();
                 $data = array('sliderid' => $item->id);
                 try {
                     $remove_success = $revslider->deleteSliderFromData($data);
                 } catch (Exception $e) {
                     $remove_success = false;
                 }
             }
             break;
         case 'widget':
             // remove widget from sidebar
             $sidebars_widgets = get_option('sidebars_widgets');
             if (isset($sidebars_widgets[$item->id['widget_area']])) {
                 foreach ($sidebars_widgets[$item->id['widget_area']] as $count => $widget_id) {
                     if ($widget_id === $item->id['widget_id']) {
                         unset($sidebars_widgets[$item->id['widget_area']][$count]);
                     }
                 }
             }
             update_option('sidebars_widgets', $sidebars_widgets);
             // remove widget
             $widget_options = get_option('widget_' . $item->id['type']);
             unset($widget_options[$item->id['count']]);
             update_option('widget_' . $item->id['type'], $widget_options);
             $remove_success = true;
             break;
         default:
             $remove_success = wp_delete_post($item->id, true) !== false;
             break;
     }
     return $remove_success;
 }
 /**
  * Destroy auto menu object (currently not used).
  *
  * @since  1.0.0
  */
 public function destroy_auto_menu()
 {
     // Generate menu title.
     $menu_name = $this->plugin->get('menu_name');
     // Create new menu if it doesn't already exist.
     $menu_exists = wp_get_nav_menu_object($menu_name);
     if ($menu_exists) {
         wp_delete_nav_menu($menu_name);
     }
 }
             }
         }
     }
     break;
 case 'delete-menu-item':
     $menu_item_id = (int) $_REQUEST['menu-item'];
     check_admin_referer('delete-menu_item_' . $menu_item_id);
     if (is_nav_menu_item($menu_item_id) && wp_delete_post($menu_item_id, true)) {
         $messages[] = '<div id="message" class="updated"><p>' . __('The menu item has been successfully deleted.') . '</p></div>';
     }
     break;
 case 'delete':
     check_admin_referer('delete-nav_menu-' . $nav_menu_selected_id);
     if (is_nav_menu($nav_menu_selected_id)) {
         $deleted_nav_menu = wp_get_nav_menu_object($nav_menu_selected_id);
         $delete_nav_menu = wp_delete_nav_menu($nav_menu_selected_id);
         if (is_wp_error($delete_nav_menu)) {
             $messages[] = '<div id="message" class="error"><p>' . $delete_nav_menu->get_error_message() . '</p></div>';
         } else {
             // Remove this menu from any locations.
             $locations = get_theme_mod('nav_menu_locations');
             foreach ((array) $locations as $location => $menu_id) {
                 if ($menu_id == $nav_menu_selected_id) {
                     $locations[$location] = 0;
                 }
             }
             set_theme_mod('nav_menu_locations', $locations);
             $messages[] = '<div id="message" class="updated"><p>' . __('The menu has been successfully deleted.') . '</p></div>';
             // Select the next available menu
             $nav_menu_selected_id = 0;
             $_nav_menus = wp_get_nav_menus(array('orderby' => 'name'));
コード例 #11
0
function theme_content_start_import()
{
    check_ajax_referer('theme_content_importer');
    if ($sample_data = get_option('theme_sample_data')) {
        foreach ($sample_data['posts'] as $post_id) {
            wp_delete_post($post_id, true);
        }
        foreach ($sample_data['pages'] as $page_id) {
            wp_delete_post($page_id, true);
        }
        foreach ($sample_data['widgets'] as $widget_id) {
            theme_delete_widget($widget_id, true);
        }
        foreach ($sample_data['menu'] as $menu_id) {
            wp_delete_nav_menu($menu_id);
        }
    }
    $theme_content_importer = new Theme_Content_Import();
    $theme_content_importer->go();
    update_option('theme_content_import', true);
    die;
}
コード例 #12
0
ファイル: setup.php プロジェクト: bitflipper1/ghcontracting
        if (x_demo_content_blog_page()) {
            update_option('page_for_posts', x_demo_content_blog_page());
        }
    }
    x_demo_content_set_stage_completed('set-page-options');
}
// Create Menu
// =============================================================================
if (x_demo_content_stage_not_completed('create-menu')) {
    //
    // Check if the menu exists and delete it if it does.
    //
    $menu_name = 'X Demo Menu';
    $menu_exists = wp_get_nav_menu_object($menu_name);
    if ($menu_exists) {
        wp_delete_nav_menu($menu_name);
    }
    //
    // Create a new demo menu.
    //
    $new_menu_id = wp_create_nav_menu($menu_name);
    x_demo_content_create_nav_menu($new_menu_id, $front_page_is_page, $front_page_is_blog, $front_page_is_portfolio, $include_posts, $include_portfolio_items);
    //
    // Assign new menu to all available locations.
    //
    $menu_locations = get_theme_mod('nav_menu_locations');
    $menu_locations['primary'] = $new_menu_id;
    $menu_locations['footer'] = $new_menu_id;
    set_theme_mod('nav_menu_locations', $menu_locations);
    x_demo_content_set_stage_completed('create-menu');
}
コード例 #13
0
ファイル: utility.php プロジェクト: acamboy/kutetheme-wp
function kt_remove_menu()
{
    global $menus_id;
    if (is_array($menus_id) && count($menus_id) > 0) {
        foreach ($menus_id as $menu) {
            wp_delete_nav_menu($menu);
        }
        delete_option('kt_demo_menus');
        $menus_id = array();
    }
}
コード例 #14
0
ファイル: import-content.php プロジェクト: ntnvu/tcb_online
function jeg_prepare_import()
{
    // prevent double menu
    $termarray = array();
    $termarray[0] = get_term_by('name', 'Bottom Menu', 'nav_menu');
    $termarray[1] = get_term_by('name', 'Main Menu', 'nav_menu');
    foreach ($termarray as $term) {
        if (is_object($term)) {
            wp_delete_nav_menu($term->term_id);
        }
    }
}
コード例 #15
0
 /**
  * Create/update the nav_menu term for this setting.
  *
  * Any created menus will have their assigned term IDs exported to the client
  * via the customize_save_response filter. Likewise, any errors will be exported
  * to the client via the customize_save_response() filter.
  *
  * To delete a menu, the client can send false as the value.
  *
  * @since 4.3.0
  * @access protected
  *
  * @see wp_update_nav_menu_object()
  *
  * @param array|false $value {
  *     The value to update. Note that slug cannot be updated via wp_update_nav_menu_object().
  *     If false, then the menu will be deleted entirely.
  *
  *     @type string $name        The name of the menu to save.
  *     @type string $description The term description. Default empty string.
  *     @type int    $parent      The id of the parent term. Default 0.
  *     @type bool   $auto_add    Whether pages will auto_add to this menu. Default false.
  * }
  * @return null|void
  */
 protected function update($value)
 {
     if ($this->is_updated) {
         return;
     }
     $this->is_updated = true;
     $is_placeholder = $this->term_id < 0;
     $is_delete = false === $value;
     add_filter('customize_save_response', array($this, 'amend_customize_save_response'));
     $auto_add = null;
     if ($is_delete) {
         // If the current setting term is a placeholder, a delete request is a no-op.
         if ($is_placeholder) {
             $this->update_status = 'deleted';
         } else {
             $r = wp_delete_nav_menu($this->term_id);
             if (is_wp_error($r)) {
                 $this->update_status = 'error';
                 $this->update_error = $r;
             } else {
                 $this->update_status = 'deleted';
                 $auto_add = false;
             }
         }
     } else {
         // Insert or update menu.
         $menu_data = wp_array_slice_assoc($value, array('description', 'parent'));
         $menu_data['menu-name'] = $value['name'];
         $menu_id = $is_placeholder ? 0 : $this->term_id;
         $r = wp_update_nav_menu_object($menu_id, wp_slash($menu_data));
         $original_name = $menu_data['menu-name'];
         $name_conflict_suffix = 1;
         while (is_wp_error($r) && 'menu_exists' === $r->get_error_code()) {
             $name_conflict_suffix += 1;
             /* translators: 1: original menu name, 2: duplicate count */
             $menu_data['menu-name'] = sprintf(__('%1$s (%2$d)'), $original_name, $name_conflict_suffix);
             $r = wp_update_nav_menu_object($menu_id, wp_slash($menu_data));
         }
         if (is_wp_error($r)) {
             $this->update_status = 'error';
             $this->update_error = $r;
         } else {
             if ($is_placeholder) {
                 $this->previous_term_id = $this->term_id;
                 $this->term_id = $r;
                 $this->update_status = 'inserted';
             } else {
                 $this->update_status = 'updated';
             }
             $auto_add = $value['auto_add'];
         }
     }
     if (null !== $auto_add) {
         $nav_menu_options = $this->filter_nav_menu_options_value((array) get_option('nav_menu_options', array()), $this->term_id, $auto_add);
         update_option('nav_menu_options', $nav_menu_options);
     }
     if ('inserted' === $this->update_status) {
         // Make sure that new menus assigned to nav menu locations use their new IDs.
         foreach ($this->manager->settings() as $setting) {
             if (!preg_match('/^nav_menu_locations\\[/', $setting->id)) {
                 continue;
             }
             $post_value = $setting->post_value(null);
             if (!is_null($post_value) && $this->previous_term_id === intval($post_value)) {
                 $this->manager->set_post_value($setting->id, $this->term_id);
                 $setting->save();
             }
         }
         // Make sure that any nav_menu widgets referencing the placeholder nav menu get updated and sent back to client.
         foreach (array_keys($this->manager->unsanitized_post_values()) as $setting_id) {
             $nav_menu_widget_setting = $this->manager->get_setting($setting_id);
             if (!$nav_menu_widget_setting || !preg_match('/^widget_nav_menu\\[/', $nav_menu_widget_setting->id)) {
                 continue;
             }
             $widget_instance = $nav_menu_widget_setting->post_value();
             // Note that this calls WP_Customize_Widgets::sanitize_widget_instance().
             if (empty($widget_instance['nav_menu']) || intval($widget_instance['nav_menu']) !== $this->previous_term_id) {
                 continue;
             }
             $widget_instance['nav_menu'] = $this->term_id;
             $updated_widget_instance = $this->manager->widgets->sanitize_widget_js_instance($widget_instance);
             $this->manager->set_post_value($nav_menu_widget_setting->id, $updated_widget_instance);
             $nav_menu_widget_setting->save();
             $this->_widget_nav_menu_updates[$nav_menu_widget_setting->id] = $updated_widget_instance;
         }
     }
 }
コード例 #16
0
 protected function create_nav_menu()
 {
     if (!function_exists('wp_create_nav_menu')) {
         require_once ABSPATH . 'wp-admin/includes/nav-menu.php';
     }
     $nav_menu_locations = array();
     foreach (wpsw_get_config('register.nav_menus') as $menu_key => $menu_name) {
         wp_delete_nav_menu($menu_name);
         $items = array_get($this->menus, $menu_key, array());
         $menu_items = array();
         foreach ($items as $key => $item) {
             $data = array();
             $data['menu-item-title'] = $item['title'];
             $data['menu-item-position'] = $key + 1;
             if (isset($item['class'])) {
                 $data['menu-item-classes'] = explode(' ', $item['class']);
             }
             if (isset($item['link'])) {
                 $src = preg_replace('/\\.html$/i', '.md', $item['link']);
                 $id = wpsw_get_alias_id($src);
                 $post = get_post($id);
                 if ($post) {
                     $data['menu-item-type'] = 'post_type';
                     $data['menu-item-object'] = $post->post_type;
                     $data['menu-item-object-id'] = $id;
                 } else {
                     $data['menu-item-url'] = $item['link'];
                 }
             }
             $menu_item = $this->perpare_nav_item_data($data);
             $menu_item_db_id = $this->add_nav_menu_item($menu_name, $menu_item);
             pc($menu_item_db_id, 'menu_item_db_id');
             foreach (array_get($item, 'sub_menu', array()) as $index => $sub_item) {
                 $data = array();
                 $data['menu-item-title'] = $sub_item['title'];
                 $data['menu-item-position'] = $index + 1;
                 $data['menu-item-parent-id'] = $menu_item_db_id;
                 if (isset($sub_item['class'])) {
                     $data['menu-item-classes'] = explode(' ', $sub_item['class']);
                 }
                 if (isset($sub_item['link'])) {
                     $src = preg_replace('/\\.html$/i', '.md', $sub_item['link']);
                     $id = wpsw_get_alias_id($src);
                     $post = get_post($id);
                     if ($post) {
                         $data['menu-item-type'] = 'post_type';
                         $data['menu-item-object'] = $post->post_type;
                         $data['menu-item-object-id'] = $id;
                     } else {
                         $data['menu-item-url'] = $sub_item['link'];
                     }
                 }
                 $sub_menu_item = $this->perpare_nav_item_data($data);
                 $sub_menu_item_db_id = $this->add_nav_menu_item($menu_name, $sub_menu_item);
             }
         }
         // items loop
         $menu = wp_get_nav_menu_object($menu_name);
         $nav_menu_locations[$menu_key] = $menu->term_id;
     }
     // register.nav_menus loop
     $theme_mods = array(false, 'nav_menu_locations' => $nav_menu_locations);
     $theme = get_option('stylesheet');
     if (get_option("theme_mods_{$theme}")) {
         update_option("theme_mods_{$theme}", $theme_mods);
     } else {
         add_option("theme_mods_{$theme}", $theme_mods);
     }
 }
コード例 #17
0
 public function recreate_default_navigation_menu()
 {
     $menu_name = 'cuar_main_menu';
     $menu = null;
     $locations = get_nav_menu_locations();
     if (isset($locations[$menu_name]) && $locations[$menu_name] > 0) {
         $menu = wp_get_nav_menu_object($locations[$menu_name]);
         if ($menu != false) {
             $menu_items = wp_get_nav_menu_items($menu->term_id);
             // Delete existing menu items
             foreach ($menu_items as $item) {
                 wp_delete_post($item->ID, true);
             }
         }
     }
     // Create new menu if not existing already
     if ($menu == null) {
         wp_delete_nav_menu(_x('wp-customer-area-menu', 'Localised slug for the main navigation menu (small caps version of the "WP Customer Area Menu" translation)', 'cuar'));
         $menu = wp_create_nav_menu(__('WP Customer Area Menu', 'cuar'));
     }
     if (is_wp_error($menu)) {
         $this->plugin->add_admin_notice(sprintf(__('Could not create the menu. %s', 'cuar'), $menu->get_error_message()));
         return;
     } else {
         $menu = wp_get_nav_menu_object($menu);
     }
     // Place the menu at the right location
     $locations[$menu_name] = $menu->term_id;
     set_theme_mod('nav_menu_locations', $locations);
     // Now add all default menu items
     $pages = $this->get_customer_area_pages();
     $menu_items = array();
     foreach ($pages as $slug => $page) {
         // Ignore home on purpose
         if ($slug == 'customer-home') {
             continue;
         }
         // Exclude pages that are made to be seen when not logged-in
         $exclude = false;
         if ($page->hide_if_logged_in() || $page->hide_in_menu()) {
             $exclude = true;
         }
         if ($page->always_include_in_menu()) {
             $exclude = false;
         }
         if ($exclude) {
             continue;
         }
         $args = array('menu-item-object-id' => $page->get_page_id(), 'menu-item-object' => 'page', 'menu-item-type' => 'post_type', 'menu-item-status' => 'publish');
         // Find parent if any
         $parent_slug = $page->get_parent_slug();
         if (!empty($parent_slug) && isset($menu_items[$parent_slug])) {
             $args['menu-item-parent-id'] = $menu_items[$parent_slug];
         }
         $item_id = wp_update_nav_menu_item($menu->term_id, 0, $args);
         if (!is_wp_error($item_id)) {
             // Remember the slug for parent ownership
             $menu_items[$slug] = $item_id;
         }
     }
     $this->plugin->clear_attention_needed('nav-menu-needs-sync');
     $this->plugin->add_admin_notice(sprintf(__('The menu has been created: <a href="%s">view menu</a>', 'cuar'), admin_url('nav-menus.php?menu=') . $menu->term_id), 'updated');
 }
コード例 #18
0
 public function importMenu($menu)
 {
     wp_delete_nav_menu($menu['menu-name']);
     $newMenu = wp_update_nav_menu_object(0, $menu);
     if (is_wp_error($newTerm)) {
         return $newTerm;
     }
     $this->registry->set('term', $menu['id'], (int) $newMenu);
     foreach ($menu['items'] as $menuItem) {
         $existing = $this->registry->get('post', $menuItem['id']);
         if (is_nav_menu_item($existing)) {
             wp_delete_post($existing, true);
         }
         if ('taxonomy' == $menuItem['menu-item-type']) {
             $menuItem['menu-item-object-id'] = $this->registry->get('term', $menuItem['menu-item-object-id']);
         } elseif ('post_type' == $menuItem['menu-item-type']) {
             $menuItem['menu-item-object-id'] = $this->registry->get('post', $menuItem['menu-item-object-id']);
         }
         if (0 != (int) $menuItem['menu-item-parent-id']) {
             $menuItem['menu-item-parent-id'] = $this->registry->get('post', $menuItem['menu-item-parent-id']);
             if (is_null($menuItem['menu-item-parent-id'])) {
                 continue;
             }
         }
         $newMenuItem = wp_update_nav_menu_item($newMenu, 0, $menuItem);
         if (is_wp_error($newMenuItem)) {
             return $newMenuItem;
         }
         $this->registry->set('post', $menuItem['id'], (int) $newMenuItem);
     }
     $this->message = sprintf(__('Creating menus...', '__x__'), $menu['menu-name']);
     return true;
 }
コード例 #19
0
 /**
  * This function removes all alternative menus. Useful when cleaning and
  * deactivating the plugin.
  */
 public static function clean_all_alternative_menus()
 {
     $aux = self::get_instance();
     $aux->begin();
     $alt_menus = array();
     foreach ($aux->menus_in_exps as $menu => $exp) {
         wp_delete_nav_menu($menu);
     }
     $aux->rollback();
 }
コード例 #20
0
 /**
  * Delete menu when agency is deleted.
  */
 public function delete_agency_menu($post_id)
 {
     $menu = get_post_meta($post_id, 'post_menu');
     wp_delete_nav_menu($menu);
 }
コード例 #21
0
 private function remove_menu($params)
 {
     $inserted_install = get_theme_mod('exclusive_install_posts', '');
     if (isset($inserted_install[$params['spec_id']])) {
         $sucsses = wp_delete_nav_menu($inserted_install[$params['spec_id']]);
         if ($sucsses) {
             foreach ($params['menu_item'] as $menu_item) {
                 if (isset($inserted_install[$menu_item])) {
                     unset($inserted_install[$menu_item]);
                 }
             }
             unset($inserted_install[$params['spec_id']]);
             set_theme_mod('exclusive_install_posts', $inserted_install);
             return 1;
         } else {
             if (wp_get_nav_menu_items($inserted_install[$params['spec_id']])) {
                 return '<div class="error_text">Error Remove</div>';
             } else {
                 unset($inserted_install[$params['spec_id']]);
                 foreach ($params['menu_item'] as $menu_item) {
                     if (isset($inserted_install[$menu_item])) {
                         unset($inserted_install[$menu_item]);
                     }
                 }
                 set_theme_mod('exclusive_install_posts', $inserted_install);
                 return '<div class="notification_text">Not Found</div>';
             }
         }
     } else {
         return '<div class="notification_text">Not Found</div>';
     }
 }
コード例 #22
0
function sas_deactivation()
{
    $menu_name = 'Sign Up/Sign In/Sign Out';
    $menu_exists = wp_get_nav_menu_object($menu_name);
    wp_delete_nav_menu($menu_name);
    $page_definitions = array('sas-login' => array('title' => __('Sign In', 'simple-account-system'), 'content' => '[sas-login-form]'), 'sas-password-lost' => array('title' => __('Forgot Your Password?', 'simple-account-system'), 'content' => '[sas-password-lost-form]'), 'sas-password-reset' => array('title' => __('Pick a New Password', 'simple-account-system'), 'content' => '[sas-password-reset-form]'), 'sas-register' => array('title' => __('Sign Up', 'simple-account-system'), 'content' => '[sas-register-form]'), 'sas-account' => array('title' => __('Your Account', 'simple-account-system'), 'content' => '[sas-user-profile-form]'));
    foreach ($page_definitions as $slug => $page) {
        // Check that the page doesn't exist already
        $query = new WP_Query('pagename=' . $slug);
        if ($query->have_posts()) {
            while ($query->have_posts()) {
                $query->the_post();
                wp_delete_post(get_the_ID(), true);
            }
        }
    }
    // Clear the permalinks to remove our post type's rules
    flush_rewrite_rules();
}
コード例 #23
0
ファイル: importer.php プロジェクト: phupx/genco
function hb_importer()
{
    global $wpdb;
    if (current_user_can('manage_options') && isset($_GET['import_content_data'])) {
        if (!defined('WP_LOAD_IMPORTERS')) {
            define('WP_LOAD_IMPORTERS', true);
        }
        // we are loading importers
        if (!class_exists('WP_Importer')) {
            // if main importer class doesn't exist
            $wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php';
            include $wp_importer;
        }
        if (!class_exists('WP_Import')) {
            // if WP importer doesn't exist
            $wp_import = get_template_directory() . '/includes/plugins/importer/wordpress-importer.php';
            include $wp_import;
        }
        if (class_exists('WP_Importer') && class_exists('WP_Import')) {
            // check for main import class and wp import class
            $importer = new WP_Import();
            $hb_import_attachments = true;
            if (isset($_GET['light_import']) && $_GET['light_import'] == 'yes') {
                $hb_import_attachments = false;
            }
            /* Delete menus to prevent menu duplication */
            wp_delete_nav_menu('Main Menu');
            wp_delete_nav_menu('Footer Menu');
            wp_delete_nav_menu('One Page Menu');
            wp_delete_nav_menu('Shortcodes Menu');
            wp_delete_nav_menu('Sidebar Navigation1');
            /* First Import Posts, Pages, Portfolio Content, FAQ, Images, Menus */
            $theme_xml = get_template_directory() . '/includes/plugins/importer/data/highend.xml.gz';
            $importer->fetch_attachments = $hb_import_attachments;
            ob_start();
            $importer->import($theme_xml);
            ob_end_clean();
            /* Import Woocommerce if WooCommerce Exists 
            			if( class_exists('Woocommerce') ) {
            				$importer = new WP_Import();
            				$theme_xml = get_template_directory() . '/includes/plugins/importer/data/wooproducts.xml.gz';
            				$importer->fetch_attachments = true;
            				ob_start();
            				$importer->import($theme_xml);
            				ob_end_clean();
            
            				// Set pages
            				$woopages = array(
            					'woocommerce_shop_page_id' => 'Shop',
            					'woocommerce_cart_page_id' => 'Cart',
            					'woocommerce_checkout_page_id' => 'Checkout',
            					'woocommerce_pay_page_id' => 'Checkout &#8594; Pay',
            					'woocommerce_thanks_page_id' => 'Order Received',
            					'woocommerce_myaccount_page_id' => 'My Account',
            					'woocommerce_edit_address_page_id' => 'Edit My Address',
            					'woocommerce_view_order_page_id' => 'View Order',
            					'woocommerce_change_password_page_id' => 'Change Password',
            					'woocommerce_logout_page_id' => 'Logout',
            					'woocommerce_lost_password_page_id' => 'Lost Password'
            				);
            				foreach($woopages as $woo_page_name => $woo_page_title) {
            					$woopage = get_page_by_title( $woo_page_title );
            					if($woopage->ID) {
            						update_option($woo_page_name, $woopage->ID); // Front Page
            					}
            				}
            
            				// We no longer need to install pages
            				delete_option( '_wc_needs_pages' );
            				delete_transient( '_wc_activation_redirect' );
            
            				// Flush rules after install
            				flush_rewrite_rules();
            			}
            */
            // Set imported menus to registered theme locations
            $locations = get_theme_mod('nav_menu_locations');
            // registered menu locations in theme
            $menus = wp_get_nav_menus();
            // registered menus
            if ($menus) {
                foreach ($menus as $menu) {
                    // assign menus to theme locations
                    if ($menu->name == 'Main Menu') {
                        $locations['main-menu'] = $menu->term_id;
                        $locations['mobile-menu'] = $menu->term_id;
                    } else {
                        if ($menu->name == 'Footer Menu') {
                            $locations['footer-menu'] = $menu->term_id;
                        } else {
                            if ($menu->name == 'One Page Menu') {
                                $locations['one-page-menu'] = $menu->term_id;
                            }
                        }
                    }
                }
            }
            set_theme_mod('nav_menu_locations', $locations);
            // set menus to locations
            // Set reading options
            $homepage = get_page_by_title('Home');
            if ($homepage != null && $homepage->ID) {
                update_option('show_on_front', 'page');
                update_option('page_on_front', $homepage->ID);
                // Front Page
            }
            if (class_exists('Woocommerce')) {
                // Add sidebar widget areas
                $sidebars = array('ShopWidget1' => 'Show Widget 1', 'ShopWidget2' => 'Show Widget 2', 'ShopWidget3' => 'Show Widget 3', 'ShopWidget4' => 'Show Widget 4', 'DefaultPageSidebar' => 'Default Page Sidebar', 'SidebarNavigation1' => 'Sidebar Navigation 1', 'PortfolioSingleSidebar' => 'Portfolio Single Sidebar', 'ShortcodesSidebar' => 'Shortcodes Sidebar', 'ShopSidebar' => 'Shop Sidebar');
            } else {
                // Add sidebar widget areas
                $sidebars = array('DefaultPageSidebar' => 'Default Page Sidebar', 'SidebarNavigation1' => 'Sidebar Navigation 1', 'PortfolioSingleSidebar' => 'Portfolio Single Sidebar', 'ShortcodesSidebar' => 'Shortcodes Sidebar');
            }
            update_option('sbg_sidebars', $sidebars);
            foreach ($sidebars as $sidebar) {
                $sidebar_class = hb_name_to_class($sidebar);
                register_sidebar(array('name' => $sidebar, 'id' => 'hb-custom-sidebar-' . strtolower($sidebar_class), 'before_widget' => '<div id="%1$s" class="widget-item %2$s">', 'after_widget' => '</div>', 'before_title' => '<h4>', 'after_title' => '</h4>'));
            }
            // Add data to widgets
            $widgets_json = get_template_directory_uri() . '/includes/plugins/importer/data/widgets.json';
            // widgets data file
            $widgets_json = wp_remote_get($widgets_json);
            $widget_data = $widgets_json['body'];
            $import_widgets = hb_import_widget_data($widget_data);
            /* Import Layerslider
                        if( function_exists( 'layerslider_import_sample_slider' ) && $hb_import_attachments == true ) { // if layerslider is activated
                            // Get importUtil
                            include WP_PLUGIN_DIR . '/LayerSlider/classes/class.ls.importutil.php';
                            $layer_directory = get_template_directory() . '/includes/plugins/importer/data/layersliders/'; // layerslider data dir
            
                            foreach( glob( $layer_directory . '*.zip' ) as $filename ) { // get all files from revsliders data dir
                                $filename = basename($filename);
                                $layer_files[] = get_template_directory() . '/includes/plugins/importer/data/layersliders/' . $filename ;
            
                            }
            
                            foreach( $layer_files as $layer_file ) { // finally import layer slider
                                $import = new LS_ImportUtil($layer_file);
                            }
            
                            // Get all sliders
                            // Table name
                            $table_name = $wpdb->prefix . "layerslider";
            
                            // Get sliders
                            $sliders = $wpdb->get_results( "SELECT * FROM $table_name
                                                                WHERE flag_hidden = '0' AND flag_deleted = '0'
                                                                ORDER BY date_c ASC" );
            
                            if(!empty($sliders)):
                            foreach($sliders as $key => $item):
                                $slides[$item->id] = $item->name;
                            endforeach;
                            endif;
            
                            if($slides){
                                foreach($slides as $key => $val){
                                    $slides_array[$val] = $key;
                                }
                            }
                        }*/
            // Import Revslider
            if (class_exists('UniteFunctionsRev') && $hb_import_attachments == true) {
                // if revslider is activated
                // Download Rev Sliders imports to local
                $url = get_template_directory() . '/includes/plugins/importer/data/revsliders/jobs-slider.zip';
                if (!file_exists($url)) {
                    $d_url = 'http://hb-themes.com/repository/import/highend/revsliders/jobs-slider.zip';
                    $src = fopen($d_url, 'r');
                    $dest = fopen($url, 'w');
                    stream_copy_to_stream($src, $dest);
                    fclose($d_url);
                    fclose($url);
                }
                $url = get_template_directory() . '/includes/plugins/importer/data/revsliders/boxed-corporate-slider.zip';
                if (!file_exists($url)) {
                    $d_url = 'http://hb-themes.com/repository/import/highend/revsliders/boxed-corporate-slider.zip';
                    $src = fopen($d_url, 'r');
                    $dest = fopen($url, 'w');
                    stream_copy_to_stream($src, $dest);
                    fclose($d_url);
                    fclose($url);
                }
                $url = get_template_directory() . '/includes/plugins/importer/data/revsliders/corporate-slider.zip';
                if (!file_exists($url)) {
                    $d_url = 'http://hb-themes.com/repository/import/highend/revsliders/corporate-slider.zip';
                    $src = fopen($d_url, 'r');
                    $dest = fopen($url, 'w');
                    stream_copy_to_stream($src, $dest);
                    fclose($d_url);
                    fclose($url);
                }
                $url = get_template_directory() . '/includes/plugins/importer/data/revsliders/home-classic-slider.zip';
                if (!file_exists($url)) {
                    $d_url = 'http://hb-themes.com/repository/import/highend/revsliders/home-classic-slider.zip';
                    $src = fopen($d_url, 'r');
                    $dest = fopen($url, 'w');
                    stream_copy_to_stream($src, $dest);
                    fclose($d_url);
                    fclose($url);
                }
                $url = get_template_directory() . '/includes/plugins/importer/data/revsliders/home-default-slider.zip';
                if (!file_exists($url)) {
                    $d_url = 'http://hb-themes.com/repository/import/highend/revsliders/home-default-slider.zip';
                    $src = fopen($d_url, 'r');
                    $dest = fopen($url, 'w');
                    stream_copy_to_stream($src, $dest);
                    fclose($d_url);
                    fclose($url);
                }
                $url = get_template_directory() . '/includes/plugins/importer/data/revsliders/home-special-slider.zip';
                if (!file_exists($url)) {
                    $d_url = 'http://hb-themes.com/repository/import/highend/revsliders/home-special-slider.zip';
                    $src = fopen($d_url, 'r');
                    $dest = fopen($url, 'w');
                    stream_copy_to_stream($src, $dest);
                    fclose($d_url);
                    fclose($url);
                }
                $url = get_template_directory() . '/includes/plugins/importer/data/revsliders/one-page-slider.zip';
                if (!file_exists($url)) {
                    $d_url = 'http://hb-themes.com/repository/import/highend/revsliders/one-page-slider.zip';
                    $src = fopen($d_url, 'r');
                    $dest = fopen($url, 'w');
                    stream_copy_to_stream($src, $dest);
                    fclose($d_url);
                    fclose($url);
                }
                $url = get_template_directory() . '/includes/plugins/importer/data/revsliders/shop-slider.zip';
                if (!file_exists($url)) {
                    $d_url = 'http://hb-themes.com/repository/import/highend/revsliders/shop-slider.zip';
                    $src = fopen($d_url, 'r');
                    $dest = fopen($url, 'w');
                    stream_copy_to_stream($src, $dest);
                    fclose($d_url);
                    fclose($url);
                }
                // END REV SLIDER IMPORTS
                $rev_directory = get_template_directory() . '/includes/plugins/importer/data/revsliders/';
                // layerslider data dir
                foreach (glob($rev_directory . '*.zip') as $filename) {
                    // get all files from revsliders data dir
                    $filename = basename($filename);
                    $rev_files[] = get_template_directory() . '/includes/plugins/importer/data/revsliders/' . $filename;
                }
                foreach ($rev_files as $rev_file) {
                    // finally import rev slider data files
                    $filepath = $rev_file;
                    //if(file_exists($filepath) == false)
                    //UniteFunctionsRev::throwError("Import file not found!!!");
                    //check if zip file or fallback to old, if zip, check if all files exist
                    $zip = new ZipArchive();
                    $importZip = $zip->open($filepath, ZIPARCHIVE::CREATE);
                    if ($importZip === true) {
                        //true or integer. If integer, its not a correct zip file
                        //check if files all exist in zip
                        $slider_export = $zip->getStream('slider_export.txt');
                        $custom_animations = $zip->getStream('custom_animations.txt');
                        $dynamic_captions = $zip->getStream('dynamic-captions.css');
                        $static_captions = $zip->getStream('static-captions.css');
                        //if(!$slider_export)  UniteFunctionsRev::throwError("slider_export.txt does not exist!");
                        //if(!$custom_animations)  UniteFunctionsRev::throwError("custom_animations.txt does not exist!");
                        //if(!$dynamic_captions) UniteFunctionsRev::throwError("dynamic-captions.css does not exist!");
                        //if(!$static_captions)  UniteFunctionsRev::throwError("static-captions.css does not exist!");
                        $content = '';
                        $animations = '';
                        $dynamic = '';
                        $static = '';
                        while (!feof($slider_export)) {
                            $content .= fread($slider_export, 1024);
                        }
                        if ($custom_animations) {
                            while (!feof($custom_animations)) {
                                $animations .= fread($custom_animations, 1024);
                            }
                        }
                        if ($dynamic_captions) {
                            while (!feof($dynamic_captions)) {
                                $dynamic .= fread($dynamic_captions, 1024);
                            }
                        }
                        if ($static_captions) {
                            while (!feof($static_captions)) {
                                $static .= fread($static_captions, 1024);
                            }
                        }
                        fclose($slider_export);
                        if ($custom_animations) {
                            fclose($custom_animations);
                        }
                        if ($dynamic_captions) {
                            fclose($dynamic_captions);
                        }
                        if ($static_captions) {
                            fclose($static_captions);
                        }
                        //check for images!
                    } else {
                        //check if fallback
                        //get content array
                        $content = @file_get_contents($filepath);
                    }
                    if ($importZip === true) {
                        //we have a zip
                        $db = new UniteDBRev();
                        //update/insert custom animations
                        $animations = @unserialize($animations);
                        if (!empty($animations)) {
                            foreach ($animations as $key => $animation) {
                                //$animation['id'], $animation['handle'], $animation['params']
                                $exist = $db->fetch(GlobalsRevSlider::$table_layer_anims, "handle = '" . $animation['handle'] . "'");
                                if (!empty($exist)) {
                                    //update the animation, get the ID
                                    if ($updateAnim == "true") {
                                        //overwrite animation if exists
                                        $arrUpdate = array();
                                        $arrUpdate['params'] = stripslashes(json_encode(str_replace("'", '"', $animation['params'])));
                                        $db->update(GlobalsRevSlider::$table_layer_anims, $arrUpdate, array('handle' => $animation['handle']));
                                        $id = $exist['0']['id'];
                                    } else {
                                        //insert with new handle
                                        $arrInsert = array();
                                        $arrInsert["handle"] = 'copy_' . $animation['handle'];
                                        $arrInsert["params"] = stripslashes(json_encode(str_replace("'", '"', $animation['params'])));
                                        $id = $db->insert(GlobalsRevSlider::$table_layer_anims, $arrInsert);
                                    }
                                } else {
                                    //insert the animation, get the ID
                                    $arrInsert = array();
                                    $arrInsert["handle"] = $animation['handle'];
                                    $arrInsert["params"] = stripslashes(json_encode(str_replace("'", '"', $animation['params'])));
                                    $id = $db->insert(GlobalsRevSlider::$table_layer_anims, $arrInsert);
                                }
                                //and set the current customin-oldID and customout-oldID in slider params to new ID from $id
                                $content = str_replace(array('customin-' . $animation['id'], 'customout-' . $animation['id']), array('customin-' . $id, 'customout-' . $id), $content);
                            }
                            //dmp(__("animations imported!",REVSLIDER_TEXTDOMAIN));
                        } else {
                            //dmp(__("no custom animations found, if slider uses custom animations, the provided export may be broken...",REVSLIDER_TEXTDOMAIN));
                        }
                        //overwrite/append static-captions.css
                        if (!empty($static)) {
                            if ($updateStatic == "true") {
                                //overwrite file
                                RevOperations::updateStaticCss($static);
                            } else {
                                //append
                                $static_cur = RevOperations::getStaticCss();
                                $static = $static_cur . "\n" . $static;
                                RevOperations::updateStaticCss($static);
                            }
                        }
                        //overwrite/create dynamic-captions.css
                        //parse css to classes
                        $dynamicCss = UniteCssParserRev::parseCssToArray($dynamic);
                        if (is_array($dynamicCss) && $dynamicCss !== false && count($dynamicCss) > 0) {
                            foreach ($dynamicCss as $class => $styles) {
                                //check if static style or dynamic style
                                $class = trim($class);
                                if (strpos($class, ':hover') === false && strpos($class, ':') !== false || strpos($class, " ") !== false || strpos($class, ".tp-caption") === false || (strpos($class, ".") === false || strpos($class, "#") !== false) || strpos($class, ">") !== false) {
                                    //.tp-caption>.imageclass or .tp-caption.imageclass>img or .tp-caption.imageclass .img
                                    continue;
                                }
                                //is a dynamic style
                                if (strpos($class, ':hover') !== false) {
                                    $class = trim(str_replace(':hover', '', $class));
                                    $arrInsert = array();
                                    $arrInsert["hover"] = json_encode($styles);
                                    $arrInsert["settings"] = json_encode(array('hover' => 'true'));
                                } else {
                                    $arrInsert = array();
                                    $arrInsert["params"] = json_encode($styles);
                                }
                                //check if class exists
                                $result = $db->fetch(GlobalsRevSlider::$table_css, "handle = '" . $class . "'");
                                if (!empty($result)) {
                                    //update
                                    $db->update(GlobalsRevSlider::$table_css, $arrInsert, array('handle' => $class));
                                } else {
                                    //insert
                                    $arrInsert["handle"] = $class;
                                    $db->insert(GlobalsRevSlider::$table_css, $arrInsert);
                                }
                            }
                            //dmp(__("dynamic styles imported!",REVSLIDER_TEXTDOMAIN));
                        } else {
                            //dmp(__("no dynamic styles found, if slider uses dynamic styles, the provided export may be broken...",REVSLIDER_TEXTDOMAIN));
                        }
                    }
                    $content = preg_replace('!s:(\\d+):"(.*?)";!e', "'s:'.strlen('\$2').':\"\$2\";'", $content);
                    //clear errors in string
                    $arrSlider = @unserialize($content);
                    $sliderParams = $arrSlider["params"];
                    if (isset($sliderParams["background_image"])) {
                        $sliderParams["background_image"] = UniteFunctionsWPRev::getImageUrlFromPath($sliderParams["background_image"]);
                    }
                    $json_params = json_encode($sliderParams);
                    //new slider
                    $arrInsert = array();
                    $arrInsert["params"] = $json_params;
                    $arrInsert["title"] = UniteFunctionsRev::getVal($sliderParams, "title", "Slider1");
                    $arrInsert["alias"] = UniteFunctionsRev::getVal($sliderParams, "alias", "slider1");
                    $sliderID = $wpdb->insert(GlobalsRevSlider::$table_sliders, $arrInsert);
                    $sliderID = $wpdb->insert_id;
                    //-------- Slides Handle -----------
                    //create all slides
                    $arrSlides = $arrSlider["slides"];
                    $alreadyImported = array();
                    foreach ($arrSlides as $slide) {
                        $params = $slide["params"];
                        $layers = $slide["layers"];
                        //convert params images:
                        if (isset($params["image"])) {
                            //import if exists in zip folder
                            if (trim($params["image"]) !== '') {
                                if ($importZip === true) {
                                    //we have a zip, check if exists
                                    $image = $zip->getStream('images/' . $params["image"]);
                                    if (!$image) {
                                        echo $params["image"] . ' not found!<br>';
                                    } else {
                                        if (!isset($alreadyImported['zip://' . $filepath . "#" . 'images/' . $params["image"]])) {
                                            $importImage = UniteFunctionsWPRev::import_media('zip://' . $filepath . "#" . 'images/' . $params["image"], $sliderParams["alias"] . '/');
                                            if ($importImage !== false) {
                                                $alreadyImported['zip://' . $filepath . "#" . 'images/' . $params["image"]] = $importImage['path'];
                                                $params["image"] = $importImage['path'];
                                            }
                                        } else {
                                            $params["image"] = $alreadyImported['zip://' . $filepath . "#" . 'images/' . $params["image"]];
                                        }
                                    }
                                }
                            }
                            $params["image"] = UniteFunctionsWPRev::getImageUrlFromPath($params["image"]);
                        }
                        //convert layers images:
                        foreach ($layers as $key => $layer) {
                            if (isset($layer["image_url"])) {
                                //import if exists in zip folder
                                if (trim($layer["image_url"]) !== '') {
                                    if ($importZip === true) {
                                        //we have a zip, check if exists
                                        $image_url = $zip->getStream('images/' . $layer["image_url"]);
                                        if (!$image_url) {
                                            echo $layer["image_url"] . ' not found!<br>';
                                        } else {
                                            if (!isset($alreadyImported['zip://' . $filepath . "#" . 'images/' . $layer["image_url"]])) {
                                                $importImage = UniteFunctionsWPRev::import_media('zip://' . $filepath . "#" . 'images/' . $layer["image_url"], $sliderParams["alias"] . '/');
                                                if ($importImage !== false) {
                                                    $alreadyImported['zip://' . $filepath . "#" . 'images/' . $layer["image_url"]] = $importImage['path'];
                                                    $layer["image_url"] = $importImage['path'];
                                                }
                                            } else {
                                                $layer["image_url"] = $alreadyImported['zip://' . $filepath . "#" . 'images/' . $layer["image_url"]];
                                            }
                                        }
                                    }
                                }
                                $layer["image_url"] = UniteFunctionsWPRev::getImageUrlFromPath($layer["image_url"]);
                                $layers[$key] = $layer;
                            }
                        }
                        //create new slide
                        $arrCreate = array();
                        $arrCreate["slider_id"] = $sliderID;
                        $arrCreate["slide_order"] = $slide["slide_order"];
                        $arrCreate["layers"] = json_encode($layers);
                        $arrCreate["params"] = json_encode($params);
                        $wpdb->insert(GlobalsRevSlider::$table_slides, $arrCreate);
                        //}
                    }
                }
            }
            // finally redirect to success page
            wp_redirect(admin_url('themes.php?page=highend_options&imported=success#_hb_general_settings'));
        }
    }
}
コード例 #24
0
 public function updateMenu($menuData)
 {
     $menu = wp_get_nav_menu_object($menuData['name']);
     if ($menu !== false) {
         return;
         wp_delete_nav_menu($menuData['name']);
     }
     $menuId = wp_create_nav_menu($menuData['name']);
     $menu = wp_get_nav_menu_object($menuData['name']);
     $position = 1;
     foreach ($menuData['items'] as $menuItem) {
         $this->addItemToMenu($menu, $menuItem, $position);
         $position++;
     }
     return $menuId;
 }
コード例 #25
0
ファイル: update.php プロジェクト: GaryJones/Largo
function largo_transition_nav_menus()
{
    $locations = get_nav_menu_locations();
    $main_nav = wp_get_nav_menu_object('Main Navigation');
    if (!$main_nav) {
        $main_nav_id = wp_create_nav_menu('Main Navigation');
        $locations['main-nav'] = $main_nav_id;
    } else {
        $locations['main-nav'] = $main_nav->term_id;
    }
    // Get the menu items for each menu
    $existing_items = array();
    foreach ($locations as $location => $id) {
        $existing_items[$location] = wp_get_nav_menu_items($id);
    }
    // These nav menu locations/menus get folded into main-nav menu
    $transition = array('navbar-categories', 'navbar-supplemental', 'sticky-nav');
    // Move all the category, supplemental items to main-nav.
    // Remove category and supplemental navs.
    foreach ($transition as $location_slug) {
        if (isset($existing_items[$location_slug])) {
            $items = $existing_items[$location_slug];
            if ($items) {
                foreach ($items as $idx => $item) {
                    $meta = get_metadata('post', $item->ID);
                    $attrs = array('menu-item-type' => $meta['_menu_item_type'][0], 'menu-item-menu-item-parent' => $meta['_menu_item_menu_item_parent'][0], 'menu-item-parent-id' => $meta['_menu_item_menu_item_parent'][0], 'menu-item-object-id' => $meta['_menu_item_object_id'][0], 'menu-item-object' => $meta['_menu_item_object'][0], 'menu-item-target' => $meta['_menu_item_target'][0], 'menu-item-classes' => $meta['_menu_item_classes'][0], 'menu-item-xfn' => $meta['_menu_item_xfn'][0], 'menu-item-url' => $meta['_menu_item_url'][0], 'menu-item-title' => $item->post_title, 'menu-item-attr-title' => $item->post_excerpt);
                    wp_update_nav_menu_item($locations['main-nav'], $item->ID, $attrs);
                }
            }
            // Get rid of the menu
            wp_delete_nav_menu($locations[$location_slug]);
            unset($locations[$location_slug]);
        }
    }
    set_theme_mod('nav_menu_locations', $locations);
}
コード例 #26
0
ファイル: td_demo_util.php プロジェクト: Che234/andreatelo
 /**
  * removes all the menus
  */
 static function remove()
 {
     foreach (self::$allowed_menu_names as $menu_name) {
         wp_delete_nav_menu($menu_name);
     }
 }
コード例 #27
0
     if (!isset($deletion)) {
         break;
     }
     if (is_wp_error($deletion)) {
         $messages[] = '<div id="message" class="error"><p>' . $deletion->get_error_message() . '</p></div>';
     } else {
         $messages[] = '<div id="message" class="updated"><p>' . __('The menu has been successfully deleted.') . '</p></div>';
     }
     break;
 case 'delete_menus':
     check_admin_referer('nav_menus_bulk_actions');
     foreach ($_REQUEST['delete_menus'] as $menu_id_to_delete) {
         if (!is_nav_menu($menu_id_to_delete)) {
             continue;
         }
         $deletion = wp_delete_nav_menu($menu_id_to_delete);
         if (is_wp_error($deletion)) {
             $messages[] = '<div id="message" class="error"><p>' . $deletion->get_error_message() . '</p></div>';
             $deletion_error = true;
         }
     }
     if (empty($deletion_error)) {
         $messages[] = '<div id="message" class="updated"><p>' . __('Selected menus have been successfully deleted.') . '</p></div>';
     }
     break;
 case 'update':
     check_admin_referer('update-nav_menu', 'update-nav-menu-nonce');
     // Remove menu locations that have been unchecked
     foreach ($locations as $location => $description) {
         if ((empty($_POST['menu-locations']) || empty($_POST['menu-locations'][$location])) && isset($menu_locations[$location]) && $menu_locations[$location] == $nav_menu_selected_id) {
             unset($menu_locations[$location]);
コード例 #28
0
 protected function rollback_menus($menus)
 {
     $success = true;
     foreach ($menus as $menu_id => $menu) {
         if ($menu == 'new') {
             $_menu = new cfd_menu($menu_id);
             wp_delete_nav_menu($_menu->menu->term_id);
         } else {
             if ($this->import_menu($menu) == false) {
                 $success = false;
             }
         }
     }
     return $success;
 }
コード例 #29
0
ファイル: tb_dummy.php プロジェクト: BearsTheme/leonard
 function tbDummyData()
 {
     /* init */
     global $wp_filesystem;
     if (empty($wp_filesystem)) {
         require_once ABSPATH . '/wp-admin/includes/file.php';
         WP_Filesystem();
     }
     define('WP_LOAD_IMPORTERS', true);
     /* init importer */
     require_once ABSPATH . 'wp-admin/includes/import.php';
     $importer_error = false;
     if (!class_exists('WP_Importer')) {
         $class_wp_importer = ABSPATH . 'wp-admin/includes/class-wp-importer.php';
         if (file_exists($class_wp_importer)) {
             require_once $class_wp_importer;
         } else {
             $importer_error = true;
         }
     }
     if (!class_exists('WP_Import')) {
         $class_wp_import = TB_INCLUDES . 'wordpress-importer/wordpress-importer.php';
         if (file_exists($class_wp_import)) {
             require_once $class_wp_import;
         } else {
             $importer_error = true;
         }
     }
     if ($importer_error) {
         die("Import error! Please unninstall WP importer plugin and try again");
     }
     $wp_import = new WP_Import();
     /* attachments */
     $wp_import->fetch_attachments = true;
     /* init post query */
     $theme = isset($_POST['theme']) ? $_POST['theme'] : 'tbtheme';
     $current_data = isset($_POST['current_data']) ? $_POST['current_data'] : '';
     /* tb used theme */
     update_option('tb-theme-primary', $theme);
     ob_start();
     /* import slider, ess grid and widget setting */
     switch ($current_data) {
         case 'options':
             $options_json = get_template_directory_uri() . '/inc/dummy/' . $theme . '/options.json';
             $options = $wp_filesystem->get_contents($options_json);
             if ($options) {
                 tbImportThemeOptions($options);
             } else {
                 die('<br />Your server don\'t have permission read options file. Theme options isn\'t imported<br />');
             }
             break;
         case 'slider':
             if (!tbImportRevSlider($theme)) {
                 $msg = '<br />You haven\'t install Rev Slider plugin. Slider isn\'t imported<br />';
             }
             die($msg);
             break;
         case 'grid':
             if (!tbImportEssGrid($theme)) {
                 $msg = '<br />You haven\'t install Ess Grid plugin. Ess data isn\'t imported<br />';
             }
             die($msg);
             break;
         case 'widget':
             $widgets_json = get_template_directory_uri() . '/inc/dummy/' . $theme . '/widget_data.json';
             $widgets = $wp_filesystem->get_contents($widgets_json);
             if ($widgets) {
                 $msg = '';
                 tbImportWidgetSetting($widgets);
             } else {
                 $msg = '<br />Your server don\'t have permission read widgets setting file. Widgets setting isn\'t imported<br />';
             }
             die($msg);
             break;
         default:
             if ($current_data == 15) {
                 if (function_exists('cptui_create_custom_post_types')) {
                     if (file_exists(get_template_directory() . '/inc/dummy/' . $theme . '/posttypes/post.json')) {
                         $posttypes = $wp_filesystem->get_contents(get_template_directory_uri() . '/inc/dummy/' . $theme . '/posttypes/post.json');
                         update_option('cptui_post_types', json_decode($posttypes, true));
                     }
                     if (file_exists(get_template_directory() . '/inc/dummy/' . $theme . '/posttypes/tax.json')) {
                         $tax = $wp_filesystem->get_contents(get_template_directory_uri() . '/inc/dummy/' . $theme . '/posttypes/tax.json');
                         update_option('cptui_taxonomies', json_decode($tax, true));
                     }
                     flush_rewrite_rules();
                 }
             }
             if ($current_data == 16) {
                 /*delete old menu and import new.*/
                 foreach (get_terms('nav_menu') as $nav) {
                     wp_delete_nav_menu($nav->slug);
                 }
             }
             if (file_exists(get_template_directory() . '/inc/dummy/' . $theme . '/data/sample' . $current_data . '.xml')) {
                 $wp_import->import(get_template_directory() . '/inc/dummy/' . $theme . '/data/sample' . $current_data . '.xml');
             }
             break;
     }
     ob_end_clean();
     /* Done */
     if ($current_data == 16) {
         die('<br />Import is finished.');
     }
 }
コード例 #30
0
function create_new_nav_menu($menu_name)
{
    // Check if the menu exists
    $menu_exists = wp_get_nav_menu_object($menu_name);
    // If it doesn't exist, let's create it.
    $menu_id = -1;
    if (!$menu_exists) {
        $menu_id = wp_create_nav_menu($menu_name);
    } else {
        wp_delete_nav_menu($menu_name);
        $menu_id = wp_create_nav_menu($menu_name);
    }
    return $menu_id;
}