Forum Replies Created

Viewing 13 replies - 1 through 13 (of 13 total)
  • Plugin Author aumsrini

    (@aumsrini)

    clear your cache in browser and try.If problem continues then mail you login details to [email protected].

    Plugin Author aumsrini

    (@aumsrini)

    Hi
    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-table

    Plugin Author aumsrini

    (@aumsrini)

    send you login details to [email protected] and let me check.

    Forum: Reviews
    In reply to: [Layer Slider] Crap
    Plugin Author aumsrini

    (@aumsrini)

    Hello
    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] off
    Plugin Author aumsrini

    (@aumsrini)

    Hello
    Can i know which WordPress version that you used now?

    Plugin Author aumsrini

    (@aumsrini)

    Hello
    Kindly send your error.I can solve for you.

    Plugin Author aumsrini

    (@aumsrini)

    I found some errors in gallery image limits.Now i resolved and updated the plugin.You can download now.

    Plugin Author aumsrini

    (@aumsrini)

    Can i know what error you are getting?.kindly send the error to solve.it is very helpful to others.

    Thread Starter aumsrini

    (@aumsrini)

    hi 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

    Thread Starter aumsrini

    (@aumsrini)

    `<?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 );
    }’

    Thread Starter aumsrini

    (@aumsrini)

    yes 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 );
    }
    Plugin Author aumsrini

    (@aumsrini)

    you can set display none; in includes/custom.php on line 64

    Plugin Author aumsrini

    (@aumsrini)

    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.

Viewing 13 replies - 1 through 13 (of 13 total)