Support » Plugin: WPAdverts - Classifieds Plugin » custom fields input not displaying on preview or ads page

  • Resolved ucarman2002

    (@ucarman2002)


    Hello,

    custom fields are displayed on edit page but text that is input in field is not displayed properly on preview page. ive include the code i am using. would appreciate any help.

    thank you

    <?php
    /**
    * Plugin Name: [Adverts] Custom Fields API
    * Version: 1.0
    * Author: Greg Winiarski
    * Description: This plugin explains how to create custom fields for Add Advert form.
    */
    add_filter( “adverts_form_load”, “my_adverts_form_load” );
    function my_adverts_form_load( $form ) {
    if( $form[“name”] != “advert” ) {
    return $form;
    }

    // add new custom field
    $form[“field”][] = array(
    “name” => “zip_code”,
    “type” => “adverts_field_text”,
    “order” => 25,
    “label” => __( “zip code”, “adverts”),
    “validator” => array(
    array(
    “name” => “string_length”,
    “params” => array( “min” => 5 )

    )
    )
    );

    // add new custom field
    $form[“field”][] = array(
    “name” => “weight”,
    “type” => “adverts_field_text”,
    “order” => 25,
    “label” => __( “weight”, “adverts”),
    “validator” => array(
    array(
    “name” => “string_length”,
    “params” => array( “min” => 3 )
    )
    )
    );

    return $form;

    }

    add_filter(“manage_edit-advert_columns”, “my_adverts_edit_columns”, 20);
    function my_adverts_edit_columns( $columns ) {
    $columns[“my_custom_column”] = “zip code”;
    $columns[“my_custom_column”] = “weight”;
    return $columns;
    }
    add_action(“manage_advert_posts_custom_column”, “my_adverts_manage_post_columns”, 10, 2);
    function my_adverts_manage_post_columns( $column, $post_id ) {
    if($column == “my_custom_column”) {
    $cf = get_post_meta( $post_id, ‘zip code’, true );
    $cf = get_post_meta( $post_id, ‘weight’, true );
    if(empty($cf)) {
    echo “Empty“;
    } else {
    echo ““.$cf.”“;
    }
    }
    }

    add_action( “adverts_tpl_single_details”, “my_adverts_tpl_single_details” );

    function my_adverts_tpl_single_details( $post_id ) {

    $cf = get_post_meta( $post_id, “zip_code”, true);

    $cf = get_post_meta( $post_id, “weight”, true);

    ?>

    <?php if(! empty($cf) ): ?>
    <div class=”adverts-grid-row”>
    <div class=”adverts-grid-col adverts-col-30″>
    <span class=”adverts-round-icon adverts-icon-wordpress”></span>
    <span class=”adverts-row-title”>zip code</span>
    </div>
    <div class=”adverts-grid-col adverts-col-65″>
    <?php esc_html_e( $cf ) ?>
    </div>
    </div>
    <?php endif; ?>

    <?php if(! empty($cf) ): ?>
    <div class=”adverts-grid-row”>
    <div class=”adverts-grid-col adverts-col-30″>
    <span class=”adverts-round-icon adverts-icon-wordpress”></span>
    <span class=”adverts-row-title”>weight</span>
    </div>
    <div class=”adverts-grid-col adverts-col-65″>
    <?php esc_html_e( join(“, “, $cf) ) ?>
    </div>
    </div>
    <?php endif; ?>

    <?php
    }

Viewing 5 replies - 1 through 5 (of 5 total)
  • Plugin Author Greg Winiarski

    (@gwin)

    Hi, your last function seems to be incorrect, it should be

    
    function my_adverts_tpl_single_details( $post_id ) {
    
        $cf = get_post_meta( $post_id, "zip_code", true);
        
        ?>
    
        <?php if(! empty($cf) ): ?>
        <div class="adverts-grid-row">
        <div class="adverts-grid-col adverts-col-30">
        <span class="adverts-round-icon adverts-icon-wordpress"></span>
        <span class="adverts-row-title">zip code</span>
        </div>
        <div class="adverts-grid-col adverts-col-65">
        <?php esc_html_e( $cf ) ?>
        </div>
        </div>
        <?php endif; ?>
    
        <?php $cf = get_post_meta( $post_id, "weight", true); ?>
    
        <?php if(! empty($cf) ): ?>
        <div class="adverts-grid-row">
        <div class="adverts-grid-col adverts-col-30">
        <span class="adverts-round-icon adverts-icon-wordpress"></span>
        <span class="adverts-row-title">weight</span>
        </div>
        <div class="adverts-grid-col adverts-col-65">
        <?php esc_html_e( join(", ", $cf) ) ?>
        </div>
        </div>
        <?php endif; ?>
    
        <?php
    }
    

    In your function you are overwriting value of zip_code with weight, before it is even used.

    Thread Starter ucarman2002

    (@ucarman2002)

    Hello,
    thank you for your help. input for zip code is now being displayed on preview and ads page.
    input from weight field is still not being displayed.

    thanks again.

    Plugin Author Greg Winiarski

    (@gwin)

    Hi, is the “weight” saved in DB when you save the Ad? That is, is it visible when editing the Ad from wp-admin panel?

    Thread Starter ucarman2002

    (@ucarman2002)

    hello,
    sorry for delay. no custom fields are not visible in wp-admin panel. They are displayed on edit listing page and preview page. “zip code” data is shown on preview page. weight data is not.

    thank you.

    Plugin Author Greg Winiarski

    (@gwin)

    I am not sure, i copied following code to my development version

    
    add_filter( "adverts_form_load", "my_adverts_form_loadx" );
    function my_adverts_form_loadx( $form ) {
        if( $form["name"] != "advert" ) {
            return $form;
        }
    
        // add new custom field
        $form["field"][] = array(
            "name" => "zip_code",
            "type" => "adverts_field_text",
            "order" => 25,
            "label" => __( "zip code", "adverts"),
            "validator" => array(
                array(
                    "name" => "string_length",
                    "params" => array( "min" => 5 )
                )
            )
        );
    
        // add new custom field
        $form["field"][] = array(
            "name" => "weight",
            "type" => "adverts_field_text",
            "order" => 25,
            "label" => __( "weight", "adverts"),
            "validator" => array(
                array(
                    "name" => "string_length",
                    "params" => array( "min" => 3 )
                )
            )
        );
    
        return $form;
    
    }
    

    and it seems to be working fine, maybe you have some other plugin overwriting the “weight” meta, try using different name instead of “weight” for example “wpadverts_cf_weight”.

Viewing 5 replies - 1 through 5 (of 5 total)
  • The topic ‘custom fields input not displaying on preview or ads page’ is closed to new replies.