aumsrini
Forum Replies Created
-
Forum: Plugins
In reply to: [Pricing Table] Custom Styles not workingclear your cache in browser and try.If problem continues then mail you login details to [email protected].
Forum: Plugins
In reply to: [Pricing Table] Adjust Width of Price TableHi
Thank you for your feedback.You need to set your custom width in css file.File path is bee-pricing-table/public/css/bee-pricing-table-public.css on line 50 class name is .bee-pricing-tableForum: Plugins
In reply to: [Layer Slider] Changes to Slider don’t show up on webpagesend you login details to [email protected] and let me check.
Forum: Reviews
In reply to: [Layer Slider] CrapHello
No any other plugins are best in this earth.Can i know what problems found in my plugin?.also you planned to down my plugin .thats y you are posting bad reviews.you know already my plugin have more than 500 active installs.Forum: Reviews
In reply to: [Layer Slider] offHello
Can i know which WordPress version that you used now?Forum: Reviews
In reply to: [Layer Slider] i can’t upload your pluginHello
Kindly send your error.I can solve for you.Forum: Reviews
In reply to: [Image Gallery] This plugin doesn’t workI found some errors in gallery image limits.Now i resolved and updated the plugin.You can download now.
Forum: Reviews
In reply to: [Image Gallery] This plugin doesn’t workCan i know what error you are getting?.kindly send the error to solve.it is very helpful to others.
Forum: Plugins
In reply to: [CMB2] Custom taxonomy relationship not save from front endhi thank you for your support. Finally i solved the issue by adding below code for front end submission.
`$beecat=$_POST[‘bee_listing_category’];//Select value
$new_submission_id = wp_insert_post( $post_data, true );
wp_set_object_terms( $new_submission_id , $beecat, ‘listingcat’);`listingcat is my taxonomy
Forum: Plugins
In reply to: [CMB2] Select option not save from front end`<?php
function cmb2_validation_script_post_type( $pagearg ) {
global $post;// check if we are on custom post edit or add new page
wp_enqueue_script( ‘gen_validatorv4-js’,plugin_dir_url( __FILE__ ) .’public/js/gen_validatorv4.js’ );
wp_enqueue_script( ‘custom-js’, plugin_dir_url( __FILE__ ) .’public/js/bee_validation.js’ );}
add_action( ‘admin_enqueue_scripts’, ‘cmb2_validation_script_post_type’, 10, 1 );///Require Metabox
require_once plugin_dir_path( __FILE__ ) .’includes/CMB2-master/init.php’;
function beeclassi_taxonomy() {
// Add new taxonomy, make it hierarchical like categories
//first do the translations part for GUI$labels = array(
‘name’ => _x( ‘Listing Category’, ‘listing category’ ),
‘singular_name’ => _x( ‘Listing Category’, ‘listing category’ ),
‘search_items’ => __( ‘Search Listing Category’ ),
‘all_items’ => __( ‘All Listing Categories’ ),
‘parent_item’ => __( ‘Parent Listing Category’ ),
‘parent_item_colon’ => __( ‘Parent Category:’ ),
‘edit_item’ => __( ‘Edit Listing Category’ ),
‘update_item’ => __( ‘Update Listing Category’ ),
‘add_new_item’ => __( ‘Add New Listing Category’ ),
‘new_item_name’ => __( ‘New Listing Category Name’ ),
‘menu_name’ => __( ‘Listing Categories’ ),
);// Now register the taxonomy
register_taxonomy(‘listing_categories’,array(‘beeclassifieds’), array(
‘hierarchical’ => true,
‘labels’ => $labels,
‘show_ui’ => true,
‘show_admin_column’ => true,
‘query_var’ => true,
‘rewrite’ => array( ‘slug’ => ‘listing_category’ ),
));}
add_action( ‘init’, ‘beeclassi_taxonomy’);
add_action( ‘init’, ‘custom_post_type’, 0 );
function custom_post_type() {$labels = array(
‘name’ => _x( ‘Listings’, ‘Post Type General Name’, ‘text_domain’ ),
‘singular_name’ => _x( ‘Listing’, ‘Post Type Singular Name’, ‘text_domain’ ),
‘menu_name’ => __( ‘Bee Classi’, ‘text_domain’ ),
‘name_admin_bar’ => __( ‘Bee Classi’, ‘text_domain’ ),
‘archives’ => __( ‘Listing Archives’, ‘text_domain’ ),
‘parent_item_colon’ => __( ‘Parent Listing:’, ‘text_domain’ ),
‘all_items’ => __( ‘All Listings’, ‘text_domain’ ),
‘add_new_item’ => __( ‘Add New Listing’, ‘text_domain’ ),
‘add_new’ => __( ‘Add Listing’, ‘text_domain’ ),
‘new_item’ => __( ‘New Listing’, ‘text_domain’ ),
‘edit_item’ => __( ‘Edit Listing’, ‘text_domain’ ),
‘update_item’ => __( ‘Update Listing’, ‘text_domain’ ),
‘view_item’ => __( ‘View Listing’, ‘text_domain’ ),
‘search_items’ => __( ‘Search Listing’, ‘text_domain’ ),
‘not_found’ => __( ‘Not found’, ‘text_domain’ ),
‘not_found_in_trash’ => __( ‘Not found in Trash’, ‘text_domain’ ),
‘featured_image’ => __( ‘Featured Image’, ‘text_domain’ ),
‘set_featured_image’ => __( ‘Set featured image’, ‘text_domain’ ),
‘remove_featured_image’ => __( ‘Remove featured image’, ‘text_domain’ ),
‘use_featured_image’ => __( ‘Use as featured image’, ‘text_domain’ ),
‘insert_into_item’ => __( ‘Insert into Listing’, ‘text_domain’ ),
‘uploaded_to_this_item’ => __( ‘Uploaded to this Listing’, ‘text_domain’ ),
‘items_list’ => __( ‘Listings list’, ‘text_domain’ ),
‘items_list_navigation’ => __( ‘Listings list navigation’, ‘text_domain’ ),
‘filter_items_list’ => __( ‘Filter Listings list’, ‘text_domain’ ),
);
$args = array(
‘label’ => __( ‘Listing’, ‘text_domain’ ),
‘description’ => __( ‘Add Your Listings’, ‘text_domain’ ),
‘labels’ => $labels,
‘supports’ => array( ‘title’,’listing_categories’),
‘hierarchical’ => TRUE,
‘public’ => true,
‘show_ui’ => true,
‘show_in_menu’ => true,
‘menu_position’ => 5,
‘show_in_admin_bar’ => true,
‘show_in_nav_menus’ => true,
‘can_export’ => true,
‘has_archive’ => true,
‘exclude_from_search’ => false,
‘publicly_queryable’ => true,
‘capability_type’ => ‘post’,
);
register_post_type( ‘beeclassifieds’, $args );}
add_action( ‘cmb2_admin_init’, ‘beeclassi_metaboxes’ );
/**
* Define the metabox and field configurations.
*/
function beeclassi_metaboxes() {// Start with an underscore to hide fields from custom fields list
$prefix = ‘bee_’;/**
* Initiate the metabox
*/$cmb = new_cmb2_box( array(
‘id’ => ‘test_metabox’,
‘title’ => __( ‘Listing Info’, ‘cmb2’ ),
‘object_types’ => array( ‘beeclassifieds’, ), // Post type
‘context’ => ‘normal’,
‘priority’ => ‘high’,
‘show_names’ => true, // Show field names on the left
// ‘cmb_styles’ => false, // false to disable the CMB stylesheet
// ‘closed’ => true, // Keep the metabox closed by default
) );$cmb->add_field( array(
‘name’ => __( ‘Listing Description’, ‘cmb2’ ),
‘id’ => ‘bee_listing_description’,
‘type’ => ‘textarea_small’,
‘attributes’ => array(
‘required’ => ‘required’,
),) );
$cmb->add_field( array(
‘name’ => __( ‘Listing Category’, ‘cmb2’ ),
‘desc’ => ‘Selct your listing category’,
‘id’ => ‘bee_listing_category’,
‘taxonomy’ => ‘listing_categories’, //Enter Taxonomy Slug
‘type’ => ‘taxonomy_select’,
) );
// Decription Field
$cmb->add_field( array(
‘name’ => __( ‘Listing Description’, ‘cmb2’ ),
‘desc’ => __( ‘field description (optional)’, ‘cmb2’ ),
‘id’ => $prefix . ‘listing_description’,
‘type’ => ‘textarea_small’,
‘show_on_cb’ => ‘cmb2_hide_if_no_cats’, // function should return a bool value
// ‘sanitization_cb’ => ‘my_custom_sanitization’, // custom sanitization callback parameter
// ‘escape_cb’ => ‘my_custom_escaping’, // custom escaping callback parameter
// ‘on_front’ => false, // Optionally designate a field to wp-admin only
// ‘repeatable’ => true,
) );// Listing Price
$cmb->add_field( array(
‘name’ => ‘Price’,
‘desc’ => ‘if your listing item for sale then type the price’,
‘id’ => $prefix . ‘listing_price’,
‘type’ => ‘text’
) );// Listing Images
$cmb->add_field( array(
‘name’ => ‘Listing Images’,
‘desc’ => ‘upload your listing images’,
‘id’ => $prefix . ‘listing_images’,
‘type’ => ‘file_list’,
// ‘preview_size’ => array( 100, 100 ), // Default: array( 50, 50 )
) );
// Listing Address
$cmb->add_field( array(
‘name’ => __( ‘Contact Address ‘, ‘cmb2’ ),
‘desc’ => __( ‘field description (optional)’, ‘cmb2’ ),
‘id’ => $prefix . ‘listing_address’,
‘type’ => ‘textarea_small’,
‘show_on_cb’ => ‘cmb2_hide_if_no_cats’, // function should return a bool value
// ‘sanitization_cb’ => ‘my_custom_sanitization’, // custom sanitization callback parameter
// ‘escape_cb’ => ‘my_custom_escaping’, // custom escaping callback parameter
// ‘on_front’ => false, // Optionally designate a field to wp-admin only
// ‘repeatable’ => true,
) );
// Website URL
$cmb->add_field( array(
‘name’ => __( ‘Website URL’, ‘cmb2’ ),
‘desc’ => __( ‘Enter Your Website url(optional)’, ‘cmb2’ ),
‘id’ => $prefix . ‘listing_url’,
‘type’ => ‘text_url’,
// ‘protocols’ => array(‘http’, ‘https’, ‘ftp’, ‘ftps’, ‘mailto’, ‘news’, ‘irc’, ‘gopher’, ‘nntp’, ‘feed’, ‘telnet’), // Array of allowed protocols
// ‘repeatable’ => true,
) );// Listing Email
$cmb->add_field( array(
‘name’ => __( ‘Email’, ‘cmb2’ ),
‘desc’ => __( ‘Enter your email’, ‘cmb2’ ),
‘id’ => $prefix . ‘listing_email’,
‘type’ => ‘text_email’,// ‘repeatable’ => true,
) );// Add other metaboxes as needed
}
//FRONT AD POSTING FUNCTION//////////////////
function cmb2_get_term_options() {
$listing_categories = get_terms( array(
‘post_type’ => ‘beeclassifieds’,
‘taxonomy’ => ‘listing_categories’,
‘hide_empty’ => false,
) );foreach($listing_categories as $listing_category){
$cnames= $listing_category->name;
}
return $cnames;}
function wds_frontend_form_register() {
$cmb = new_cmb2_box( array(
‘id’ => ‘front-end-post-form’,
‘object_types’ => array( ‘beeclassifieds’ ),
‘hookup’ => true,
‘save_fields’ => true,) );
$cmb->add_field( array(
‘name’ => __( ‘New Listing Title’, ‘wds-post-submit’ ),
‘id’ => ‘bee_listing_title’,
‘type’ => ‘text’,‘attributes’ => array(
‘required’ => ‘required’,
),
) );$cmb->add_field( array(
‘name’ => __(‘Category’,’cmb2′),
‘desc’ => ‘Select category’,
‘id’ => ‘bee_listing_category’,
‘taxonomy’ => ‘listing_categories’, //Enter Taxonomy Slug
‘type’ => ‘taxonomy_select’,
) );$cmb->add_field( array(
‘name’ => __( ‘Listing Description’, ‘wds-post-submit’ ),
‘id’ => ‘bee_listing_description’,
‘type’ => ‘textarea_small’,
‘attributes’ => array(
‘required’ => ‘required’,
),) );
$cmb->add_field( array(
‘name’ => __( ‘Price’, ‘wds-post-submit’ ),
‘desc’ => __( ‘If your listing item for sale then enter your price’, ‘wds-post-submit’ ),
‘id’ => ‘bee_listing_price’,
‘type’ => ‘text’,
) );$cmb->add_field( array(
‘name’ => __( ‘Upload Images’, ‘wds-post-submit’ ),
‘desc’ => __( ‘Upload your listing images’, ‘wds-post-submit’ ),
‘id’ => ‘bee_listing_images’,
‘type’ => ‘file_list’,
) );$cmb->add_field( array(
‘name’ => __( ‘Contact Address’, ‘wds-post-submit’ ),
‘desc’ => __( ‘Enter your contact address’, ‘wds-post-submit’ ),
‘id’ => ‘bee_listing_address’,
‘type’ => ‘textarea_small’,
‘attributes’ => array(
‘required’ => ‘required’,
),
) );$cmb->add_field( array(
‘name’ => __( ‘Website Url’, ‘wds-post-submit’ ),
‘desc’ => __( ‘Enter your website url’, ‘wds-post-submit’ ),
‘id’ => ‘bee_listing_url’,
‘type’ => ‘text_url’,
) );
$cmb->add_field( array(
‘name’ => __( ‘Your Email’, ‘wds-post-submit’ ),
‘desc’ => __( ‘Please enter your email so we can contact you if we use your post.’, ‘wds-post-submit’ ),
‘id’ => ‘bee_listing_email’,
‘type’ => ‘text_email’,
‘attributes’ => array(
‘required’ => ‘required’,
),
) );
}
add_action( ‘cmb2_init’, ‘wds_frontend_form_register’ );
/**
* Gets the front-end-post-form cmb instance
*
* @return CMB2 object
*/
function wds_frontend_cmb2_get() {
// Use ID of metabox in wds_frontend_form_register
$metabox_id = ‘front-end-post-form’;
// Post/object ID is not applicable since we’re using this form for submission
$object_id = ‘fake-oject-id’;
// Get CMB2 metabox object
return cmb2_get_metabox( $metabox_id, $object_id );
}
/**
* Handle the cmb-frontend-form shortcode
*
* @param array $atts Array of shortcode attributes
* @return string Form html
*/
function wds_do_frontend_form_submission_shortcode( $atts = array() ) {
// Get CMB2 metabox object
$cmb = wds_frontend_cmb2_get();
// Get $cmb object_types
$post_types = $cmb->prop( ‘object_types’ );
// Current user
$user_id = get_current_user_id();
// Parse attributes
$atts = shortcode_atts( array(
‘post_author’ => $user_id ? $user_id : 1, // Current user, or admin
‘post_status’ => ‘pending’,
‘post_type’ => reset( $post_types ), // Only use first object_type in array
), $atts, ‘cmb-frontend-form’ );
/*
* Let’s add these attributes as hidden fields to our cmb form
* so that they will be passed through to our form submission
*/
foreach ( $atts as $key => $value ) {
$cmb->add_hidden_field( array(
‘field_args’ => array(
‘id’ => “atts[$key]”,
‘type’ => ‘hidden’,
‘default’ => $value,
),
) );
}
// Initiate our output variable
$output = ”;
// Get any submission errors
if ( ( $error = $cmb->prop( ‘submission_error’ ) ) && is_wp_error( $error ) ) {
// If there was an error with the submission, add it to our ouput.
$output .= ‘<h3>’ . sprintf( __( ‘There was an error in the submission: %s’, ‘wds-post-submit’ ), ‘<strong>’. $error->get_error_message() .'</strong>’ ) . ‘</h3>’;
}
// If the post was submitted successfully, notify the user.
if ( isset( $_GET[‘post_submitted’] ) && ( $post = get_post( absint( $_GET[‘post_submitted’] ) ) ) ) {
// Get submitter’s name
$name = get_post_meta( $post->ID, ‘submitted_author_name’, 1 );
$name = $name ? ‘ ‘. $name : ”;
// Add notice of submission to our output
$output .= ‘<h3>’ . sprintf( __( ‘Thank you%s, your new post has been submitted and is pending review by a site administrator.’, ‘wds-post-submit’ ), esc_html( $name ) ) . ‘</h3>’;
}
// Get our form
$output .= cmb2_get_metabox_form( $cmb, ‘fake-oject-id’, array( ‘save_button’ => __( ‘Submit Post’, ‘wds-post-submit’ ) ) );
return $output;
}
add_shortcode( ‘cmb-frontend-form’, ‘wds_do_frontend_form_submission_shortcode’ );
/**
* Handles form submission on save. Redirects if save is successful, otherwise sets an error message as a cmb property
*
* @return void
*/
function wds_handle_frontend_new_post_form_submission() {
// If no form submission, bail
if ( empty( $_POST ) || ! isset( $_POST[‘submit-cmb’], $_POST[‘object_id’] ) ) {
return false;
}
// Get CMB2 metabox object
$cmb = wds_frontend_cmb2_get();
$post_data = array();
// Get our shortcode attributes and set them as our initial post_data args
if ( isset( $_POST[‘atts’] ) ) {
foreach ( (array) $_POST[‘atts’] as $key => $value ) {
$post_data[ $key ] = sanitize_text_field( $value );
}
unset( $_POST[‘atts’] );
}
// Check security nonce
if ( ! isset( $_POST[ $cmb->nonce() ] ) || ! wp_verify_nonce( $_POST[ $cmb->nonce() ], $cmb->nonce() ) ) {
return $cmb->prop( ‘submission_error’, new WP_Error( ‘security_fail’, __( ‘Security check failed.’ ) ) );
}
// Check title submitted
if ( empty( $_POST[‘bee_listing_title’] ) ) {
return $cmb->prop( ‘submission_error’, new WP_Error( ‘post_data_missing’, __( ‘New post requires a title.’ ) ) );
}
// And that the title is not the default title
if ( $cmb->get_field( ‘bee_listing_title’ )->default() == $_POST[‘bee_listing_title’] ) {
return $cmb->prop( ‘submission_error’, new WP_Error( ‘post_data_missing’, __( ‘Please enter a new title.’ ) ) );
}
/**
* Fetch sanitized values
*/
$sanitized_values = $cmb->get_sanitized_values( $_POST );
// Set our post data arguments
$post_data[‘post_title’] = $sanitized_values[‘bee_listing_title’];
$post_data[‘post_category’] = $sanitized_values[‘bee_listing_category’];
unset( $sanitized_values[‘bee_listing_title’] );
unset( $sanitized_values[‘bee_listing_category’] );
//$post_data[‘post_content’] = $sanitized_values[‘bee_listing_description’];
//unset( $sanitized_values[‘bee_listing_description’] );
// Create the new post
$new_submission_id = wp_insert_post( $post_data, true );
// If we hit a snag, update the user
if ( is_wp_error( $new_submission_id ) ) {
return $cmb->prop( ‘submission_error’, $new_submission_id );
}
/**
* Other than post_type and post_status, we want
* our uploaded attachment post to have the same post-data
*/
unset( $post_data[‘post_type’] );
unset( $post_data[‘post_status’] );
// Try to upload the featured image
$img_id = wds_frontend_form_photo_upload( $new_submission_id, $post_data );
// If our photo upload was successful, set the featured image
if ( $img_id && ! is_wp_error( $img_id ) ) {
set_post_thumbnail( $new_submission_id, $img_id );
}
// Loop through remaining (sanitized) data, and save to post-meta
foreach ( $sanitized_values as $key => $value ) {
if ( is_array( $value ) ) {
$value = array_filter( $value );
if( ! empty( $value ) ) {
update_post_meta( $new_submission_id, $key, $value );
}
} else {
update_post_meta( $new_submission_id, $key, $value );
}
}
/*
* Redirect back to the form page with a query variable with the new post ID.
* This will help double-submissions with browser refreshes
*/
wp_redirect( esc_url_raw( add_query_arg( ‘post_submitted’, $new_submission_id ) ) );
exit;
}
add_action( ‘cmb2_after_init’, ‘wds_handle_frontend_new_post_form_submission’ );
/**
* Handles uploading a file to a WordPress post
*
* @param int $post_id Post ID to upload the photo to
* @param array $attachment_post_data Attachement post-data array
*/
function wds_frontend_form_photo_upload( $post_id, $attachment_post_data = array() ) {
// Make sure the right files were submitted
if (
empty( $_FILES )
|| ! isset( $_FILES[‘submitted_post_thumbnail’] )
|| isset( $_FILES[‘submitted_post_thumbnail’][‘error’] ) && 0 !== $_FILES[‘submitted_post_thumbnail’][‘error’]
) {
return;
}
// Filter out empty array values
$files = array_filter( $_FILES[‘submitted_post_thumbnail’] );
// Make sure files were submitted at all
if ( empty( $files ) ) {
return;
}
// Make sure to include the WordPress media uploader API if it’s not (front-end)
if ( ! function_exists( ‘media_handle_upload’ ) ) {
require_once( ABSPATH . ‘wp-admin/includes/image.php’ );
require_once( ABSPATH . ‘wp-admin/includes/file.php’ );
require_once( ABSPATH . ‘wp-admin/includes/media.php’ );
}
// Upload the file and send back the attachment post ID
return media_handle_upload( ‘submitted_post_thumbnail’, $post_id, $attachment_post_data );
}’Forum: Plugins
In reply to: [CMB2] Select option not save from front endyes sure.
[ Moderator note: code fixed. Please wrap code in the backtick character or use the code button. ]
<?php function cmb2_validation_script_post_type( $pagearg ) { global $post; // check if we are on custom post edit or add new page wp_enqueue_script( 'gen_validatorv4-js',plugin_dir_url( __FILE__ ) .'public/js/gen_validatorv4.js' ); wp_enqueue_script( 'custom-js', plugin_dir_url( __FILE__ ) .'public/js/bee_validation.js' ); } add_action( 'admin_enqueue_scripts', 'cmb2_validation_script_post_type', 10, 1 ); ///Require Metabox require_once plugin_dir_path( __FILE__ ) .'includes/CMB2-master/init.php'; function beeclassi_taxonomy() { // Add new taxonomy, make it hierarchical like categories //first do the translations part for GUI $labels = array( 'name' => _x( 'Listing Category', 'listing category' ), 'singular_name' => _x( 'Listing Category', 'listing category' ), 'search_items' => __( 'Search Listing Category' ), 'all_items' => __( 'All Listing Categories' ), 'parent_item' => __( 'Parent Listing Category' ), 'parent_item_colon' => __( 'Parent Category:' ), 'edit_item' => __( 'Edit Listing Category' ), 'update_item' => __( 'Update Listing Category' ), 'add_new_item' => __( 'Add New Listing Category' ), 'new_item_name' => __( 'New Listing Category Name' ), 'menu_name' => __( 'Listing Categories' ), ); // Now register the taxonomy register_taxonomy('listing_categories',array('beeclassifieds'), array( 'hierarchical' => true, 'labels' => $labels, 'show_ui' => true, 'show_admin_column' => true, 'query_var' => true, 'rewrite' => array( 'slug' => 'listing_category' ), )); } add_action( 'init', 'beeclassi_taxonomy'); add_action( 'init', 'custom_post_type', 0 ); function custom_post_type() { $labels = array( 'name' => _x( 'Listings', 'Post Type General Name', 'text_domain' ), 'singular_name' => _x( 'Listing', 'Post Type Singular Name', 'text_domain' ), 'menu_name' => __( 'Bee Classi', 'text_domain' ), 'name_admin_bar' => __( 'Bee Classi', 'text_domain' ), 'archives' => __( 'Listing Archives', 'text_domain' ), 'parent_item_colon' => __( 'Parent Listing:', 'text_domain' ), 'all_items' => __( 'All Listings', 'text_domain' ), 'add_new_item' => __( 'Add New Listing', 'text_domain' ), 'add_new' => __( 'Add Listing', 'text_domain' ), 'new_item' => __( 'New Listing', 'text_domain' ), 'edit_item' => __( 'Edit Listing', 'text_domain' ), 'update_item' => __( 'Update Listing', 'text_domain' ), 'view_item' => __( 'View Listing', 'text_domain' ), 'search_items' => __( 'Search Listing', 'text_domain' ), 'not_found' => __( 'Not found', 'text_domain' ), 'not_found_in_trash' => __( 'Not found in Trash', 'text_domain' ), 'featured_image' => __( 'Featured Image', 'text_domain' ), 'set_featured_image' => __( 'Set featured image', 'text_domain' ), 'remove_featured_image' => __( 'Remove featured image', 'text_domain' ), 'use_featured_image' => __( 'Use as featured image', 'text_domain' ), 'insert_into_item' => __( 'Insert into Listing', 'text_domain' ), 'uploaded_to_this_item' => __( 'Uploaded to this Listing', 'text_domain' ), 'items_list' => __( 'Listings list', 'text_domain' ), 'items_list_navigation' => __( 'Listings list navigation', 'text_domain' ), 'filter_items_list' => __( 'Filter Listings list', 'text_domain' ), ); $args = array( 'label' => __( 'Listing', 'text_domain' ), 'description' => __( 'Add Your Listings', 'text_domain' ), 'labels' => $labels, 'supports' => array( 'title','listing_categories'), 'hierarchical' => TRUE, 'public' => true, 'show_ui' => true, 'show_in_menu' => true, 'menu_position' => 5, 'show_in_admin_bar' => true, 'show_in_nav_menus' => true, 'can_export' => true, 'has_archive' => true, 'exclude_from_search' => false, 'publicly_queryable' => true, 'capability_type' => 'post', ); register_post_type( 'beeclassifieds', $args ); } add_action( 'cmb2_admin_init', 'beeclassi_metaboxes' ); /** * Define the metabox and field configurations. */ function beeclassi_metaboxes() { // Start with an underscore to hide fields from custom fields list $prefix = 'bee_'; /** * Initiate the metabox */ $cmb = new_cmb2_box( array( 'id' => 'test_metabox', 'title' => __( 'Listing Info', 'cmb2' ), 'object_types' => array( 'beeclassifieds', ), // Post type 'context' => 'normal', 'priority' => 'high', 'show_names' => true, // Show field names on the left // 'cmb_styles' => false, // false to disable the CMB stylesheet // 'closed' => true, // Keep the metabox closed by default ) ); $cmb->add_field( array( 'name' => __( 'Listing Description', 'cmb2' ), 'id' => 'bee_listing_description', 'type' => 'textarea_small', 'attributes' => array( 'required' => 'required', ), ) ); $cmb->add_field( array( 'name' => __( 'Listing Category', 'cmb2' ), 'desc' => 'Selct your listing category', 'id' => 'bee_listing_category', 'taxonomy' => 'listing_categories', //Enter Taxonomy Slug 'type' => 'taxonomy_select', ) ); // Decription Field $cmb->add_field( array( 'name' => __( 'Listing Description', 'cmb2' ), 'desc' => __( 'field description (optional)', 'cmb2' ), 'id' => $prefix . 'listing_description', 'type' => 'textarea_small', 'show_on_cb' => 'cmb2_hide_if_no_cats', // function should return a bool value // 'sanitization_cb' => 'my_custom_sanitization', // custom sanitization callback parameter // 'escape_cb' => 'my_custom_escaping', // custom escaping callback parameter // 'on_front' => false, // Optionally designate a field to wp-admin only // 'repeatable' => true, ) ); // Listing Price $cmb->add_field( array( 'name' => 'Price', 'desc' => 'if your listing item for sale then type the price', 'id' => $prefix . 'listing_price', 'type' => 'text' ) ); // Listing Images $cmb->add_field( array( 'name' => 'Listing Images', 'desc' => 'upload your listing images', 'id' => $prefix . 'listing_images', 'type' => 'file_list', // 'preview_size' => array( 100, 100 ), // Default: array( 50, 50 ) ) ); // Listing Address $cmb->add_field( array( 'name' => __( 'Contact Address ', 'cmb2' ), 'desc' => __( 'field description (optional)', 'cmb2' ), 'id' => $prefix . 'listing_address', 'type' => 'textarea_small', 'show_on_cb' => 'cmb2_hide_if_no_cats', // function should return a bool value // 'sanitization_cb' => 'my_custom_sanitization', // custom sanitization callback parameter // 'escape_cb' => 'my_custom_escaping', // custom escaping callback parameter // 'on_front' => false, // Optionally designate a field to wp-admin only // 'repeatable' => true, ) ); // Website URL $cmb->add_field( array( 'name' => __( 'Website URL', 'cmb2' ), 'desc' => __( 'Enter Your Website url(optional)', 'cmb2' ), 'id' => $prefix . 'listing_url', 'type' => 'text_url', // 'protocols' => array('http', 'https', 'ftp', 'ftps', 'mailto', 'news', 'irc', 'gopher', 'nntp', 'feed', 'telnet'), // Array of allowed protocols // 'repeatable' => true, ) ); // Listing Email $cmb->add_field( array( 'name' => __( 'Email', 'cmb2' ), 'desc' => __( 'Enter your email', 'cmb2' ), 'id' => $prefix . 'listing_email', 'type' => 'text_email', // 'repeatable' => true, ) ); // Add other metaboxes as needed } //FRONT AD POSTING FUNCTION////////////////// function cmb2_get_term_options() { $listing_categories = get_terms( array( 'post_type' => 'beeclassifieds', 'taxonomy' => 'listing_categories', 'hide_empty' => false, ) ); foreach($listing_categories as $listing_category){ $cnames= $listing_category->name; } return $cnames; } function wds_frontend_form_register() { $cmb = new_cmb2_box( array( 'id' => 'front-end-post-form', 'object_types' => array( 'beeclassifieds' ), 'hookup' => true, 'save_fields' => true, ) ); $cmb->add_field( array( 'name' => __( 'New Listing Title', 'wds-post-submit' ), 'id' => 'bee_listing_title', 'type' => 'text', 'attributes' => array( 'required' => 'required', ), ) ); $cmb->add_field( array( 'name' => __('Category','cmb2'), 'desc' => 'Select category', 'id' => 'bee_listing_category', 'taxonomy' => 'listing_categories', //Enter Taxonomy Slug 'type' => 'taxonomy_select', ) ); $cmb->add_field( array( 'name' => __( 'Listing Description', 'wds-post-submit' ), 'id' => 'bee_listing_description', 'type' => 'textarea_small', 'attributes' => array( 'required' => 'required', ), ) ); $cmb->add_field( array( 'name' => __( 'Price', 'wds-post-submit' ), 'desc' => __( 'If your listing item for sale then enter your price', 'wds-post-submit' ), 'id' => 'bee_listing_price', 'type' => 'text', ) ); $cmb->add_field( array( 'name' => __( 'Upload Images', 'wds-post-submit' ), 'desc' => __( 'Upload your listing images', 'wds-post-submit' ), 'id' => 'bee_listing_images', 'type' => 'file_list', ) ); $cmb->add_field( array( 'name' => __( 'Contact Address', 'wds-post-submit' ), 'desc' => __( 'Enter your contact address', 'wds-post-submit' ), 'id' => 'bee_listing_address', 'type' => 'textarea_small', 'attributes' => array( 'required' => 'required', ), ) ); $cmb->add_field( array( 'name' => __( 'Website Url', 'wds-post-submit' ), 'desc' => __( 'Enter your website url', 'wds-post-submit' ), 'id' => 'bee_listing_url', 'type' => 'text_url', ) ); $cmb->add_field( array( 'name' => __( 'Your Email', 'wds-post-submit' ), 'desc' => __( 'Please enter your email so we can contact you if we use your post.', 'wds-post-submit' ), 'id' => 'bee_listing_email', 'type' => 'text_email', 'attributes' => array( 'required' => 'required', ), ) ); } add_action( 'cmb2_init', 'wds_frontend_form_register' ); /** * Gets the front-end-post-form cmb instance * * @return CMB2 object */ function wds_frontend_cmb2_get() { // Use ID of metabox in wds_frontend_form_register $metabox_id = 'front-end-post-form'; // Post/object ID is not applicable since we're using this form for submission $object_id = 'fake-oject-id'; // Get CMB2 metabox object return cmb2_get_metabox( $metabox_id, $object_id ); } /** * Handle the cmb-frontend-form shortcode * * @param array $atts Array of shortcode attributes * @return string Form html */ function wds_do_frontend_form_submission_shortcode( $atts = array() ) { // Get CMB2 metabox object $cmb = wds_frontend_cmb2_get(); // Get $cmb object_types $post_types = $cmb->prop( 'object_types' ); // Current user $user_id = get_current_user_id(); // Parse attributes $atts = shortcode_atts( array( 'post_author' => $user_id ? $user_id : 1, // Current user, or admin 'post_status' => 'pending', 'post_type' => reset( $post_types ), // Only use first object_type in array ), $atts, 'cmb-frontend-form' ); /* * Let's add these attributes as hidden fields to our cmb form * so that they will be passed through to our form submission */ foreach ( $atts as $key => $value ) { $cmb->add_hidden_field( array( 'field_args' => array( 'id' => "atts[$key]", 'type' => 'hidden', 'default' => $value, ), ) ); } // Initiate our output variable $output = ''; // Get any submission errors if ( ( $error = $cmb->prop( 'submission_error' ) ) && is_wp_error( $error ) ) { // If there was an error with the submission, add it to our ouput. $output .= '<h3>' . sprintf( __( 'There was an error in the submission: %s', 'wds-post-submit' ), '<strong>'. $error->get_error_message() .'</strong>' ) . '</h3>'; } // If the post was submitted successfully, notify the user. if ( isset( $_GET['post_submitted'] ) && ( $post = get_post( absint( $_GET['post_submitted'] ) ) ) ) { // Get submitter's name $name = get_post_meta( $post->ID, 'submitted_author_name', 1 ); $name = $name ? ' '. $name : ''; // Add notice of submission to our output $output .= '<h3>' . sprintf( __( 'Thank you%s, your new post has been submitted and is pending review by a site administrator.', 'wds-post-submit' ), esc_html( $name ) ) . '</h3>'; } // Get our form $output .= cmb2_get_metabox_form( $cmb, 'fake-oject-id', array( 'save_button' => __( 'Submit Post', 'wds-post-submit' ) ) ); return $output; } add_shortcode( 'cmb-frontend-form', 'wds_do_frontend_form_submission_shortcode' ); /** * Handles form submission on save. Redirects if save is successful, otherwise sets an error message as a cmb property * * @return void */ function wds_handle_frontend_new_post_form_submission() { // If no form submission, bail if ( empty( $_POST ) || ! isset( $_POST['submit-cmb'], $_POST['object_id'] ) ) { return false; } // Get CMB2 metabox object $cmb = wds_frontend_cmb2_get(); $post_data = array(); // Get our shortcode attributes and set them as our initial post_data args if ( isset( $_POST['atts'] ) ) { foreach ( (array) $_POST['atts'] as $key => $value ) { $post_data[ $key ] = sanitize_text_field( $value ); } unset( $_POST['atts'] ); } // Check security nonce if ( ! isset( $_POST[ $cmb->nonce() ] ) || ! wp_verify_nonce( $_POST[ $cmb->nonce() ], $cmb->nonce() ) ) { return $cmb->prop( 'submission_error', new WP_Error( 'security_fail', __( 'Security check failed.' ) ) ); } // Check title submitted if ( empty( $_POST['bee_listing_title'] ) ) { return $cmb->prop( 'submission_error', new WP_Error( 'post_data_missing', __( 'New post requires a title.' ) ) ); } // And that the title is not the default title if ( $cmb->get_field( 'bee_listing_title' )->default() == $_POST['bee_listing_title'] ) { return $cmb->prop( 'submission_error', new WP_Error( 'post_data_missing', __( 'Please enter a new title.' ) ) ); } /** * Fetch sanitized values */ $sanitized_values = $cmb->get_sanitized_values( $_POST ); // Set our post data arguments $post_data['post_title'] = $sanitized_values['bee_listing_title']; $post_data['post_category'] = $sanitized_values['bee_listing_category']; unset( $sanitized_values['bee_listing_title'] ); unset( $sanitized_values['bee_listing_category'] ); //$post_data['post_content'] = $sanitized_values['bee_listing_description']; //unset( $sanitized_values['bee_listing_description'] ); // Create the new post $new_submission_id = wp_insert_post( $post_data, true ); // If we hit a snag, update the user if ( is_wp_error( $new_submission_id ) ) { return $cmb->prop( 'submission_error', $new_submission_id ); } /** * Other than post_type and post_status, we want * our uploaded attachment post to have the same post-data */ unset( $post_data['post_type'] ); unset( $post_data['post_status'] ); // Try to upload the featured image $img_id = wds_frontend_form_photo_upload( $new_submission_id, $post_data ); // If our photo upload was successful, set the featured image if ( $img_id && ! is_wp_error( $img_id ) ) { set_post_thumbnail( $new_submission_id, $img_id ); } // Loop through remaining (sanitized) data, and save to post-meta foreach ( $sanitized_values as $key => $value ) { if ( is_array( $value ) ) { $value = array_filter( $value ); if( ! empty( $value ) ) { update_post_meta( $new_submission_id, $key, $value ); } } else { update_post_meta( $new_submission_id, $key, $value ); } } /* * Redirect back to the form page with a query variable with the new post ID. * This will help double-submissions with browser refreshes */ wp_redirect( esc_url_raw( add_query_arg( 'post_submitted', $new_submission_id ) ) ); exit; } add_action( 'cmb2_after_init', 'wds_handle_frontend_new_post_form_submission' ); /** * Handles uploading a file to a WordPress post * * @param int $post_id Post ID to upload the photo to * @param array $attachment_post_data Attachement post-data array */ function wds_frontend_form_photo_upload( $post_id, $attachment_post_data = array() ) { // Make sure the right files were submitted if ( empty( $_FILES ) || ! isset( $_FILES['submitted_post_thumbnail'] ) || isset( $_FILES['submitted_post_thumbnail']['error'] ) && 0 !== $_FILES['submitted_post_thumbnail']['error'] ) { return; } // Filter out empty array values $files = array_filter( $_FILES['submitted_post_thumbnail'] ); // Make sure files were submitted at all if ( empty( $files ) ) { return; } // Make sure to include the WordPress media uploader API if it's not (front-end) if ( ! function_exists( 'media_handle_upload' ) ) { require_once( ABSPATH . 'wp-admin/includes/image.php' ); require_once( ABSPATH . 'wp-admin/includes/file.php' ); require_once( ABSPATH . 'wp-admin/includes/media.php' ); } // Upload the file and send back the attachment post ID return media_handle_upload( 'submitted_post_thumbnail', $post_id, $attachment_post_data ); }Forum: Plugins
In reply to: [Woocommerce Category Accordion Widget] I don't want the arrowsyou can set display none; in includes/custom.php on line 64
Forum: Reviews
In reply to: [WooCommerce product Slider] Ahh man!Hi Maasha
Thank you for your comments.Now i updated the css to work on all devices.Please download my plugin and use it. If you have any bugs, then kindly send me that with screenshot to improve better.