Skip to main content

How create and show meta (custom) fields in wordpress posts ?

How create meta (custom) fields in wordpress posts ?




<?php


/**
 * Register meta boxes.
 */
function meta_register_meta_boxes() {
    add_meta_box( 'meta-1', __( 'Custom Field', 'meta' ), 'meta_display_callback', 'contracts' );
}
add_action( 'add_meta_boxes', 'meta_register_meta_boxes' );

/**
 * Meta box display callback.
 *
 * @param WP_Post $post Current post object.
 */
function meta_display_callback( $post ) {
?>


<div class="meta_box">
    <style scoped>
        .meta_box{
            display: grid;
            grid-template-columns: max-content 1fr;
            grid-row-gap: 10px;
            grid-column-gap: 20px;
        }
        .meta_field{
            display: contents;
        }
    </style>
    <p class="meta-options meta_field">
        <label for="meta_author">Author</label>
        <input id="meta_author"
            type="text"
            name="meta_author"
            value="<?php echo esc_attr( get_post_meta( get_the_ID(), 'meta_author', true ) ); ?>">
    </p>
    <p class="meta-options meta_field">
        <label for="meta_published_date">Published Date</label>
        <input id="meta_published_date"
            type="date"
            name="meta_published_date"
           value="<?php echo esc_attr( get_post_meta( get_the_ID(), 'meta_published_date', true ) ); ?>">
    </p>
    <p class="meta-options meta_field">
        <label for="meta_price">Price</label>
        <input id="meta_price"
            type="number"
            name="meta_price"
            value="<?php echo esc_attr( get_post_meta( get_the_ID(), 'meta_price', true ) ); ?>">
    </p>
</div>
<?php
}




/**
 * Save meta box content.
 *
 * @param int $post_id Post ID
 */
function meta_save_meta_box( $post_id ) {
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
    if ( $parent_id = wp_is_post_revision( $post_id ) ) {
        $post_id = $parent_id;
    }
    $fields = [
        'meta_author',
        'meta_published_date',
        'meta_price',
    ];
    foreach ( $fields as $field ) {
        if ( array_key_exists( $field, $_POST ) ) {
            update_post_meta( $post_id, $field, sanitize_text_field( $_POST[$field] ) );
        }
     }
}
add_action( 'save_post', 'meta_save_meta_box' );





Comments

Popular posts from this blog

How to use inner html value or data in php from javascript(innerHTML)?

 use inner html value or data in php from javascript(innerHTML)? <html> <body> <p id="demo">use inner html value in php(innerhtml)</p> <script>   var jassi = document.getElementById("demo").innerHTML;   //document.write(jassi); </script> <?php $jassi = '<script>document.write(jassi);</script>'; echo $jassi; ?> </body> </html>

How to get store data from WCFM(Best Multi Vendor Marketplace) Plugin?

 Get store data from WCFM(Best Multi Vendor Marketplace) Plugin. global $WCFM, $WCFMmp, $wp, $WCFM_Query, $post; $store_id = ''; if ( isset( $attr['id'] ) && !empty( $attr['id'] ) ) { $store_id = absint($attr['id']); } if (  wcfm_is_store_page() ) { $wcfm_store_url = get_option( 'wcfm_store_url', 'store' ); $store_name = apply_filters( 'wcfmmp_store_query_var', get_query_var( $wcfm_store_url ) ); $store_id  = 0; if ( !empty( $store_name ) ) { $store_user = get_user_by( 'slug', $store_name ); } $store_id    = $store_user->ID; } $user_id = $store_id;  $vendor_data = get_user_meta( $user_id, 'wcfmmp_profile_settings', true ); $street_1 = $vendor_data['address']['street_1']; $street_2 = $vendor_data['address']['street_2']; $city     = $vendor_data['address']['city']; $zip      = $vendor_data['address']['zip&#

How to create login with phone number in woocommerce wordpress?

Create login with phone number in woocommerce wordpress. function wooc_extra_register_fields() {?>        <p class="form-row form-row-wide">        <label for="reg_billing_phone"><?php _e( 'Phone', 'woocommerce' ); ?><span class="required">*</span></label>        <input type="text" class="input-text" name="billing_phone" id="reg_billing_phone" value="<?php esc_attr_e( $_POST['billing_phone'] ); ?>" />        </p>            <?php  }  add_action( 'woocommerce_register_form_start', 'wooc_extra_register_fields' );  function wooc_validate_extra_register_fields( $username, $email, $validation_errors ) { if ( isset( $_POST['billing_phone'] ) ) {    $hasPhoneNumber= get_users('meta_value='.$_POST['billing_phone']);    if ( !empty($hasPhoneNumber)) {      $validation_er