A framework for wp plugin development
Just download this plugin and activate it. That's it ! Then, create your own plugin or theme code and use the following features the way it is shown below.
You can use Laravel Eloquent ORM. The documentation is here: https://github.com/as247/wp-eloquent
\WP_Plugin_Framework::metabox_manager()->add_metabox( 'test', [ 'title' => 'Test metabox', 'screen' => 'page', 'context' => 'normal', 'priority' => 'default', 'fields' => [ 'field_name_1' => [ 'name' => 'field_name_1', 'type' => 'text', 'title' => 'First name', 'desc' => 'This is first name', 'value' => '' ] ] ] );
\WP_Plugin_Framework::settings_manager()->add_settings_menu( [ 'title' => 'Settings API', 'menu_title' => 'Settings API', 'capability' => 'manage_options', 'slug' => 'settings_api_test', 'parent_slug' => null, //if given, it will be submenu 'type' => 'menu', //options: theme_option, settings 'sections' => [ [ 'id' => 'wppf_basics', 'title' => __( 'Basic Settings', 'wppf' ) ], [ 'id' => 'wppf_advanced', 'title' => __( 'Advanced Settings', 'wppf' ) ], ], 'fields' => array( 'wppf_basics' => array( array( 'name' => 'text_val', 'label' => __( 'Text Input', 'wppf' ), 'desc' => __( 'Text input description', 'wppf' ), 'placeholder' => __( 'Text Input placeholder', 'wppf' ), 'type' => 'text', 'default' => 'Title', 'sanitize_callback' => 'sanitize_text_field' ), array( 'name' => 'number_input', 'label' => __( 'Number Input', 'wppf' ), 'desc' => __( 'Number field with validation callback `floatval`', 'wppf' ), 'placeholder' => __( '1.99', 'wppf' ), 'min' => 0, 'max' => 100, 'step' => '0.01', 'type' => 'number', 'default' => 'Title', 'sanitize_callback' => 'floatval' ), array( 'name' => 'textarea', 'label' => __( 'Textarea Input', 'wppf' ), 'desc' => __( 'Textarea description', 'wppf' ), 'placeholder' => __( 'Textarea placeholder', 'wppf' ), 'type' => 'textarea' ), array( 'name' => 'html', 'desc' => __( 'HTML area description. You can use any <strong>bold</strong> or other HTML elements.', 'wppf' ), 'type' => 'html' ), array( 'name' => 'checkbox', 'label' => __( 'Checkbox', 'wppf' ), 'desc' => __( 'Checkbox Label', 'wppf' ), 'type' => 'checkbox' ), array( 'name' => 'radio', 'label' => __( 'Radio Button', 'wppf' ), 'desc' => __( 'A radio button', 'wppf' ), 'type' => 'radio', 'options' => array( 'yes' => 'Yes', 'no' => 'No' ) ), array( 'name' => 'selectbox', 'label' => __( 'A Dropdown', 'wppf' ), 'desc' => __( 'Dropdown description', 'wppf' ), 'type' => 'select', 'default' => 'no', 'options' => array( 'yes' => 'Yes', 'no' => 'No' ) ), array( 'name' => 'password', 'label' => __( 'Password', 'wppf' ), 'desc' => __( 'Password description', 'wppf' ), 'type' => 'password', 'default' => '' ), array( 'name' => 'file', 'label' => __( 'File', 'wppf' ), 'desc' => __( 'File description', 'wppf' ), 'type' => 'file', 'default' => '', 'options' => array( 'button_label' => 'Choose Image' ) ) ), 'wppf_advanced' => array( array( 'name' => 'color', 'label' => __( 'Color', 'wppf' ), 'desc' => __( 'Color description', 'wppf' ), 'type' => 'color', 'default' => '' ), array( 'name' => 'password', 'label' => __( 'Password', 'wppf' ), 'desc' => __( 'Password description', 'wppf' ), 'type' => 'password', 'default' => '' ), array( 'name' => 'wysiwyg', 'label' => __( 'Advanced Editor', 'wppf' ), 'desc' => __( 'WP_Editor description', 'wppf' ), 'type' => 'wysiwyg', 'default' => '' ), array( 'name' => 'multicheck', 'label' => __( 'Multile checkbox', 'wppf' ), 'desc' => __( 'Multi checkbox description', 'wppf' ), 'type' => 'multicheck', 'default' => array('one' => 'one', 'four' => 'four'), 'options' => array( 'one' => 'One', 'two' => 'Two', 'three' => 'Three', 'four' => 'Four' ) ), ) ) ] );
\WP_Plugin_Framework::admin_menu_manager()->add_menu( [ 'title' => 'WPPF Admin Menu', 'menu_title' => 'WPPF Admin Menu Page', 'capability' => 'manage_options', 'slug' => 'settings_api_test', 'callback' => function() {}, 'parent_slug' => null, //if given, it will be submenu 'type' => 'menu', //options: theme_option, settings ] );
More is coming.... :)
Upcoming features: