コード例 #1
0
ファイル: class-issuepress.php プロジェクト: seb86/IssuePress
 /**
  * Register all of the hooks related to the dashboard functionality
  * of the plugin.
  *
  * @since    1.0.0
  * @access   private
  */
 private function define_admin_hooks()
 {
     $ip_admin = new IssuePress_Admin($this->get_plugin_name(), $this->get_version(), $this);
     $this->loader->add_action('admin_notices', $ip_admin, 'deferred_admin_notices');
     $this->loader->add_action('admin_enqueue_scripts', $ip_admin, 'enqueue_styles');
     $this->loader->add_action('admin_enqueue_scripts', $ip_admin, 'enqueue_scripts');
     $this->loader->add_action('admin_init', $ip_admin, 'register_ip_settings');
     $this->loader->add_action('admin_init', $ip_admin, 'register_general_section');
     $this->loader->add_action('admin_init', $ip_admin, 'register_extensions_section');
     $this->loader->add_filter('manage_' . get_ip_support_request_post_type() . '_posts_columns', $ip_admin, 'add_status_column');
     $this->loader->add_action('manage_' . get_ip_support_request_post_type() . '_posts_custom_column', $ip_admin, 'add_status_column_data', 10, 2);
     $this->loader->add_filter('manage_edit-' . get_ip_support_request_post_type() . '_sortable_columns', $ip_admin, 'sortable_status_column');
     $this->loader->add_filter('request', $ip_admin, 'status_column_orderby');
     $this->loader->add_action('add_meta_boxes', $ip_admin, 'add_meta_boxes');
     $this->loader->add_action('add_meta_boxes_' . get_ip_support_request_post_type(), $ip_admin, 'remove_sections_metabox');
     $this->loader->add_action('save_post_' . get_ip_support_request_post_type(), $ip_admin, 'save_support_request_meta');
     $this->loader->add_action('admin_menu', $ip_admin, 'register_admin_menu');
     $this->loader->add_filter('plugin_action_links_' . $this->plugin_basename, $ip_admin, 'add_action_links');
     $this->loader->add_filter('plugin_row_meta', $ip_admin, 'add_meta_links', 10, 2);
     $this->loader->add_action('wp_ajax_ip-create-page', $ip_admin, 'ajax_create_page');
     $this->loader->add_action('template_redirect', $ip_admin, 'ip_template_redirect', 8);
     $this->loader->add_action('ip_template_redirect', $ip_admin, 'ip_post_request');
     $this->loader->add_action('ip_post_request', $ip_admin, 'ip_new_support_request_handler');
 }
コード例 #2
0
 /**
  * Filter the_content for IssuePress Support Requests
  *
  * @since			1.0.0
  */
 public function filter_the_content($content)
 {
     global $post;
     $ip_meta = '';
     if ($post->post_type == get_ip_support_request_post_type()) {
         $template_loader = $this->plugin->get_template_loader();
         $template_loader->get_template_part('support', 'meta');
     }
     return $content;
 }
コード例 #3
0
 /**
  * Handles support request form submissions
  *
  * @since			1.0.0
  */
 public function ip_new_support_request_handler($action = '')
 {
     // Bail if action is not ip-create-support-request
     if ($action !== 'ip-create-support-request') {
         return;
     }
     // Nonce check
     if (!wp_verify_nonce($_REQUEST['_wpnonce'], $action)) {
         return;
     }
     $request_author = get_current_user_id();
     $request_content = $request_title = '';
     if (!empty($_POST['ip-support-description'])) {
         $request_content = esc_attr(strip_tags($_POST['ip-support-description']));
     } else {
         ip_add_error('ip_support_content', __('<strong>ERROR</strong>: Support Requests require a description.', $this->name));
     }
     if (!empty($_POST['ip-support-title'])) {
         $request_title = esc_attr(strip_tags($_POST['ip-support-title']));
     } else {
         ip_add_error('ip_support_title', __('<strong>ERROR</strong>: Support Requests require a title.', $this->name));
     }
     if (!empty($_POST['ip-support-section'])) {
         $request_section = $_POST['ip-support-section'];
     } else {
         $request_section = get_ip_default_section();
     }
     if (ip_has_errors()) {
         return;
     }
     $post_status = $this->plugin->get_plugin_setting_by_key('ip_default_post_status');
     $support_request_data = apply_filters('ip_new_support_request_pre_insert', array('post_author' => $request_author, 'post_title' => $request_title, 'post_content' => $request_content, 'post_type' => get_ip_support_request_post_type(), 'post_status' => $post_status ? $post_status : 'draft', 'comment_status' => 'open', 'ping_status' => 'closed'));
     $support_request_id = wp_insert_post($support_request_data);
     if (!empty($support_request_id)) {
         update_post_meta($support_request_id, 'status', 'open');
         wp_set_post_terms($support_request_id, $request_section, get_ip_support_section_taxonomy());
         do_action('ip_new_support_request_post_insert', $support_request_id);
     }
 }
コード例 #4
0
ファイル: functions.php プロジェクト: seb86/IssuePress
/**
 * Get array of support requests based on status in a given section
 *
 * @since			1.0.0
 * @param			$status	(String) 'open', 'closed', 'all'. Defaults to 'all'.
 * @param			$section	(Int) Optional. The Section Term ID to look in
 * @return		Array
 */
function ip_get_support_requests_by_status($status = 'all', $section = '')
{
    $status = strtolower($status);
    $args = array('posts_per_page' => -1, 'post_type' => get_ip_support_request_post_type());
    if (!$status != "all") {
        $args['meta_key'] = 'status';
    }
    if ($status == "open") {
        $args['meta_value'] = 'open';
    }
    if ($status == "closed") {
        $args['meta_value'] = 'closed';
    }
    if (!empty($section)) {
        $args['tax_query'] = array(array('taxonomy' => get_ip_support_section_taxonomy(), 'terms' => $section->term_id));
    }
    return $support_requests = get_posts($args);
}