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; }
public function init() { // load resources always required $facebook_cache_helper = awpcp_facebook_cache_helper(); add_action('awpcp-clear-ad-facebook-cache', array($facebook_cache_helper, 'handle_clear_cache_event_hook'), 10, 1); $send_new_listings_to_facebook_helper = awpcp_send_listing_to_facebook_helper(); add_action('awpcp-listing-facebook-cache-cleared', array($send_new_listings_to_facebook_helper, 'schedule_listing_if_necessary')); add_action('awpcp-send-listing-to-facebook', array($send_new_listings_to_facebook_helper, 'send_listing_to_facebook')); add_action('awpcp-place-ad', array($this, 'clear_categories_list_cache')); add_action('awpcp_approve_ad', array($this, 'clear_categories_list_cache')); add_action('awpcp_edit_ad', array($this, 'clear_categories_list_cache')); add_action('awpcp_disable_ad', array($this, 'clear_categories_list_cache')); add_action('awpcp_delete_ad', array($this, 'clear_categories_list_cache')); add_action('awpcp-category-added', array($this, 'clear_categories_list_cache')); add_action('awpcp-category-edited', array($this, 'clear_categories_list_cache')); add_action('awpcp-category-deleted', array($this, 'clear_categories_list_cache')); add_action('awpcp-pages-updated', array($this, 'clear_categories_list_cache')); add_action('awpcp-listings-imported', array($this, 'clear_categories_list_cache')); add_filter('awpcp-listing-actions', array($this, 'register_listing_actions'), 10, 2); // load resources required both in front end and admin screens, but not during ajax calls. if (!defined('DOING_AJAX') || !DOING_AJAX) { $listing_payment_transaction_handler = awpcp_listing_payment_transaction_handler(); add_action('awpcp-transaction-status-updated', array($listing_payment_transaction_handler, 'transaction_status_updated'), 10, 2); add_filter('awpcp-process-payment-transaction', array($listing_payment_transaction_handler, 'process_payment_transaction')); add_action('awpcp-place-ad', array($facebook_cache_helper, 'on_place_ad')); add_action('awpcp_approve_ad', array($facebook_cache_helper, 'on_approve_ad')); add_action('awpcp_edit_ad', array($facebook_cache_helper, 'on_edit_ad')); } if (defined('DOING_CRON') && DOING_CRON) { $task_queue = awpcp_task_queue(); add_action('awpcp-task-queue-event', array($task_queue, 'task_queue_event')); add_action('awpcp-task-queue-cron', array($task_queue, 'task_queue_event')); } else { if (defined('DOING_AJAX') && DOING_AJAX) { $this->ajax_setup(); } else { if (is_admin()) { // load resources required in admin screens only $controller = awpcp_user_profile_contact_information_controller(); add_action('show_user_profile', array($controller, 'show_contact_information_fields')); add_action('edit_user_profile', array($controller, 'show_contact_information_fields')); add_action('personal_options_update', array($controller, 'save_contact_information')); add_action('edit_user_profile_update', array($controller, 'save_contact_information')); $monitor = awpcp_page_name_monitor(); add_action('post_updated', array($monitor, 'flush_rewrite_rules_if_plugin_pages_name_changes'), 10, 3); $pointers_manager = awpcp_pointers_manager(); add_action('admin_enqueue_scripts', array($pointers_manager, 'register_pointers')); add_action('admin_enqueue_scripts', array($pointers_manager, 'setup_pointers')); if (awpcp_current_user_is_admin()) { // load resources required in admin screens only, visible to admin users only. add_action('admin_notices', array(awpcp_fee_payment_terms_notices(), 'dispatch')); add_action('admin_notices', array(awpcp_credit_plans_notices(), 'dispatch')); $handler = awpcp_update_license_status_request_handler(); add_action('admin_init', array($handler, 'dispatch')); } else { // load resources required in admin screens only, visible to non-admin users only. } } else { // load resources required in frontend screens only. add_action('template_redirect', array(new AWPCP_SecureURLRedirectionHandler(), 'dispatch')); } } } add_filter('awpcp-content-placeholders', array($this, 'register_content_placeholders')); $listing_form_fields = awpcp_listing_form_fields(); add_filter('awpcp-form-fields', array($listing_form_fields, 'register_listing_form_fields'), 5, 1); if (!get_option('awpcp_installationcomplete', 0)) { update_option('awpcp_installationcomplete', 1); awpcp_create_pages(__('AWPCP', 'AWPCP')); $this->flush_rewrite_rules = true; } if (get_option('awpcp-enable-fix-media-mime-type-upgrde')) { awpcp_fix_empty_media_mime_type_upgrade_routine()->run(); } if ($this->flush_rewrite_rules || get_option('awpcp-flush-rewrite-rules')) { add_action('wp_loaded', 'flush_rewrite_rules'); update_option('awpcp-flush-rewrite-rules', false); } if (get_option('awpcp-installed-or-upgraded')) { $roles_and_capabilities = awpcp_roles_and_capabilities(); add_action('wp_loaded', array($roles_and_capabilities, 'setup_roles_capabilities')); delete_option('awpcp-installed-or-upgraded'); } $this->register_scripts(); $this->register_notification_handlers(); }