public function restore_missing_pages()
 {
     $shortcodes = awpcp_pages();
     $missing_pages = $this->missing_pages_finder->find_missing_pages();
     $pages_to_restore = array_merge($missing_pages['not-found'], $missing_pages['not-referenced']);
     $page_refs = awpcp_get_properties($pages_to_restore, 'page');
     // If we are restoring the main page, let's do it first!
     if (($p = array_search('main-page-name', $page_refs)) !== FALSE) {
         // put the main page as the first page to restore
         array_splice($pages_to_restore, 0, 0, array($pages_to_restore[$p]));
         array_splice($pages_to_restore, $p + 1, 1);
     }
     $restored_pages = array();
     foreach ($pages_to_restore as $page) {
         $refname = $page->page;
         $name = get_awpcp_option($refname);
         if (strcmp($refname, 'main-page-name') == 0) {
             awpcp_create_pages($name, $subpages = false);
         } else {
             awpcp_create_subpage($refname, $name, $shortcodes[$refname][1]);
         }
         $restored_pages[] = $page;
     }
     update_option('awpcp-flush-rewrite-rules', true);
     return $restored_pages;
 }
Example #2
0
 private function upgrade_to_2_0_5($version)
 {
     global $wpdb, $awpcp;
     $translations = array('userpagename' => 'main-page-name', 'showadspagename' => 'show-ads-page-name', 'placeadpagename' => 'place-ad-page-name', 'editadpagename' => 'edit-ad-page-name', 'page-name-renew-ad' => 'renew-ad-page-name', 'replytoadpagename' => 'reply-to-ad-page-name', 'browseadspagename' => 'browse-ads-page-name', 'searchadspagename' => 'search-ads-page-name', 'browsecatspagename' => 'browse-categories-page-name', 'categoriesviewpagename' => 'view-categories-page-name', 'paymentthankyoupagename' => 'payment-thankyou-page-name', 'paymentcancelpagename' => 'payment-cancel-page-name');
     // Users who upgraded from 1.8.9.4 to 2.0.4 have an installation
     // with no AWPCP pages. The pages exist, but are not recognized
     // by the plugin.
     foreach ($translations as $old => $new) {
         $page_id = awpcp_get_page_id_by_ref($new);
         if ($page_id > 0) {
             continue;
         }
         // Let's try to find the pages using the old AND new names
         foreach (array($old, $new) as $option) {
             // The setting doesn't exist. Nothing to do.
             $name = $awpcp->settings->get_option($option, null);
             if ($name == null) {
                 continue;
             }
             $sanitized = sanitize_title($name);
             $sql = "SELECT ID FROM {$wpdb->posts} WHERE post_name = %s AND post_type = 'page'";
             $id = intval($wpdb->get_var($wpdb->prepare($sql, $sanitized)));
             $id = $id > 0 ? $id : -1;
             awpcp_update_plugin_page_id($new, $id);
             if ($id > 0) {
                 $awpcp->settings->update_option($new, $name, true);
                 break;
             }
         }
     }
     // Since pages automatic creation is not enabled, we need to create the
     // Renew Ad page manually.
     awpcp_create_subpage('renew-ad-page-name', $awpcp->settings->get_option('renew-ad-page-name'), '[AWPCP-RENEW-AD]');
 }
Example #3
0
function awpcp_create_subpages($awpcp_page_id)
{
    $pages = awpcp_subpages();
    foreach ($pages as $key => $page) {
        awpcp_create_subpage($key, $page[0], $page[1], $awpcp_page_id);
    }
    do_action('awpcp_create_subpage');
}