/** * @group get_forms_using_database */ public function test_get_forms_using_database() { $forms = array(); $_forms = $this->Admin->get_forms(); foreach ($_forms as $form) { $Setting = new MW_WP_Form_Setting($form->ID); if (!$Setting->get('usedb')) { continue; } $forms[] = $form; } $forms_using_database = $this->Admin->get_forms_using_database(); $this->assertEquals(1, count($forms_using_database)); $this->assertEquals(count($forms), count($forms_using_database)); }
/** * 管理画面(カスタム投稿タイプ)の設定 */ public function register_post_type() { if (!current_user_can(MWF_Config::CAPABILITY) && is_admin()) { return; } // MW WP Form のフォーム設定を管理する投稿タイプ register_post_type(MWF_Config::NAME, array('label' => 'MW WP Form', 'labels' => array('name' => 'MW WP Form', 'singular_name' => 'MW WP Form', 'add_new_item' => __('Add New Form', MWF_Config::DOMAIN), 'edit_item' => __('Edit Form', MWF_Config::DOMAIN), 'new_item' => __('New Form', MWF_Config::DOMAIN), 'view_item' => __('View Form', MWF_Config::DOMAIN), 'search_items' => __('Search Forms', MWF_Config::DOMAIN), 'not_found' => __('No Forms found', MWF_Config::DOMAIN), 'not_found_in_trash' => __('No Forms found in Trash', MWF_Config::DOMAIN)), 'capability_type' => 'page', 'public' => false, 'show_ui' => true)); // MW WP Form のデータベースに保存される問い合わせデータを管理する投稿タイプ $Admin = new MW_WP_Form_Admin(); $forms = $Admin->get_forms_using_database(); foreach ($forms as $form) { $post_type = MWF_Functions::get_contact_data_post_type_from_form_id($form->ID); register_post_type($post_type, array('label' => $form->post_title, 'labels' => array('name' => $form->post_title, 'singular_name' => $form->post_title, 'edit_item' => __('Edit ', MWF_Config::DOMAIN) . ':' . $form->post_title, 'view_item' => __('View', MWF_Config::DOMAIN) . ':' . $form->post_title, 'search_items' => __('Search', MWF_Config::DOMAIN) . ':' . $form->post_title, 'not_found' => __('No data found', MWF_Config::DOMAIN), 'not_found_in_trash' => __('No data found in Trash', MWF_Config::DOMAIN)), 'capability_type' => 'page', 'public' => false, 'show_ui' => true, 'show_in_menu' => false, 'supports' => array('title'))); } }
/** * データベースに保存に設定されているフォーム(投稿)を取得 * * @return array */ public static function get_posts() { if (self::$contact_data_post_types !== null) { return self::$contact_data_post_types; } $contact_data_post_types = array(); $Admin = new MW_WP_Form_Admin(); $forms = $Admin->get_forms_using_database(); foreach ($forms as $form) { $post_type = MWF_Functions::get_contact_data_post_type_from_form_id($form->ID); $contact_data_post_types[] = $post_type; } $raw_post_types = $contact_data_post_types; $new_post_types = array(); $contact_data_post_types = apply_filters('mwform_contact_data_post_types', $contact_data_post_types); // もともとの配列に含まれていない値は削除する foreach ($contact_data_post_types as $post_type) { if (in_array($post_type, $raw_post_types)) { $new_post_types[] = $post_type; } } self::$contact_data_post_types = $new_post_types; return self::$contact_data_post_types; }