Exemplo n.º 1
0
    /**
     * Add custom post types
     * 
     * @access public
     * @return void
     */
    public function add_custom_post_types()
    {
        /**
         * SUBSCRIPTION
         */

        // Define labels
        $labels = array(
            'name'               => __('Subscriptions', 'subscriptio'),
            'singular_name'      => __('Subscription', 'subscriptio'),
            'add_new'            => __('Add Subscription', 'subscriptio'),
            'add_new_item'       => __('Add New Subscription', 'subscriptio'),
            'edit_item'          => __('Edit Subscription', 'subscriptio'),
            'new_item'           => __('New Subscription', 'subscriptio'),
            'all_items'          => __('Subscriptions', 'subscriptio'),
            'view_item'          => __('View Subscription', 'subscriptio'),
            'search_items'       => __('Search Subscriptions', 'subscriptio'),
            'not_found'          => __('No Subscriptions Found', 'subscriptio'),
            'not_found_in_trash' => __('No Subscriptions Found In Trash', 'subscriptio'),
            'parent_item_colon'  => '',
            'menu_name'          => __('Subscriptions', 'subscriptio'),
        );

        // Define settings
        $args = array(
            'labels'               => $labels,
            'description'          => __('WooCommerce Subscriptions', 'subscriptio'),
            'public'               => false,
            'show_ui'              => true,
            'menu_position'        => 56,
            'capability_type'      => 'post',
            'capabilities'         => array(
                'create_posts'     => false,
            ),
            'map_meta_cap'         => true,
            'supports'             => array(''),
            'register_meta_box_cb' => array($this, 'add_subscription_meta_box'),
        );

        // Register new post type
        register_post_type('subscription', $args);

        // Register custom taxonomy (subscription status)
        register_taxonomy('subscription_status', 'subscription', array(
            'label'             => __('Status', 'subscriptio'),
            'labels'            => array(
                'name'          => __('Status', 'subscriptio'),
                'singular_name' => __('Status', 'subscriptio'),
            ),
            'public'            => false,
            'show_admin_column' => true,
            'query_var'         => true,
        ));

        // Register custom terms - subscription status
        foreach (Subscriptio_Subscription::get_statuses() as $status_key => $status) {
            if (!term_exists($status_key, 'subscription_status')) {
                wp_insert_term($status['title'], 'subscription_status', array(
                    'slug' => $status_key,
                ));
            }
        }

        /**
         * SUBSCRIPTION TRANSACTION
         */

        // Define labels
        $labels = array(
            'name'               => __('Transactions', 'subscriptio'),
            'singular_name'      => __('Transaction', 'subscriptio'),
            'add_new'            => __('Add Transaction', 'subscriptio'),
            'add_new_item'       => __('Add New Transaction', 'subscriptio'),
            'edit_item'          => __('Edit Transaction', 'subscriptio'),
            'new_item'           => __('New Transaction', 'subscriptio'),
            'all_items'          => __('Transactions', 'subscriptio'),
            'view_item'          => __('View Transaction', 'subscriptio'),
            'search_items'       => __('Search Transactions', 'subscriptio'),
            'not_found'          => __('No Transactions Found', 'subscriptio'),
            'not_found_in_trash' => __('No Transactions Found In Trash', 'subscriptio'),
            'parent_item_colon'  => '',
            'menu_name'          => __('Transactions', 'subscriptio'),
        );

        // Define settings
        $args = array(
            'labels'               => $labels,
            'description'          => __('WooCommerce Subscriptions', 'subscriptio'),
            'public'               => false,
            'show_ui'              => true,
            'show_in_menu'         => 'edit.php?post_type=subscription',
            'menu_position'        => 59,
            'capability_type'      => 'post',
            'capabilities'         => array(
                'create_posts'     => false,
            ),
            'map_meta_cap'         => true,
            'supports'             => array('title'),
        );

        // Register new post type
        register_post_type('sub_transaction', $args);

        // Edit this custom post type a bit
        add_filter('post_row_actions', array($this, 'sub_transaction_remove_actions'));

        // Register custom taxonomy (transaction action)
        register_taxonomy('sub_transaction_action', 'sub_transaction', array(
            'label'             => __('Action', 'subscriptio'),
            'labels'            => array(
                'name'          => __('Action', 'subscriptio'),
                'singular_name' => __('Action', 'subscriptio'),
            ),
            'public'            => false,
            'show_admin_column' => true,
            'query_var'         => true,
        ));

        // Register custom taxonomy (transaction result)
        register_taxonomy('sub_transaction_result', 'sub_transaction', array(
            'label'             => __('Result', 'subscriptio'),
            'labels'            => array(
                'name'          => __('Result', 'subscriptio'),
                'singular_name' => __('Result', 'subscriptio'),
            ),
            'public'            => false,
            'show_admin_column' => true,
            'query_var'         => true,
        ));

        // Register custom terms - action
        foreach (Subscriptio_Transaction::get_actions() as $action_key => $action) {
            if (!term_exists($action_key, 'sub_transaction_action')) {
                wp_insert_term($action['title'], 'sub_transaction_action', array(
                    'slug' => $action_key,
                ));
            }
        }

        // Register custom terms - result
        foreach (Subscriptio_Transaction::get_results() as $result_key => $result) {
            if (!term_exists($result_key, 'sub_transaction_result')) {
                wp_insert_term($result['title'], 'sub_transaction_result', array(
                    'slug' => $result_key,
                ));
            }
        }
    }