简体   繁体   中英

Adding fields to Vendor Page Woocommerce

I am trying to add a drop down to product vendors of woomcerce but for some reason it is reveriting to its first value. I dont no what is going on here their is not value being droped its just not selecting it correctly

   *
 * Edit term fields form
 */
function edit_vendor_custom_fields( $term ) {
    wp_nonce_field( basename( __FILE__ ), 'vendor_custom_fields_nonce' );
    ?>
    <tr class="form-field">
        <th scope="row" valign="top"><label for="vendor_job"><?php _e( 'vendor_job', 'woocommerce-product-vendors' ); ?></label></th>
        <td>
            <input type="text" name="vendor_job" id="vendor_job" value="<?php echo ( get_term_meta( $term->term_id, 'vendor_job', true ) ); ?>" />
        </td>
    </tr>
    <tr class="form-field">
        <th scope="row" valign="top"><label for="vendor_address"><?php _e( 'vendor_address', 'woocommerce-product-vendors' ); ?></label></th>
        <td>
            <input type="text" name="vendor_address" id="vendor_address" value="<?php echo ( get_term_meta( $term->term_id, 'vendor_address', true ) ); ?>" />
        </td>
    </tr>
    <tr class="form-field">
        <th scope="row" valign="top"><label for="vendor_biography"><?php _e( 'vendor_biography', 'woocommerce-product-vendors' ); ?></label></th>
        <td>
            <input type="text" name="vendor_biography" id="vendor_biography" value="<?php echo ( get_term_meta( $term->term_id, 'vendor_biography', true ) ); ?>" />
        </td>
    </tr>
<tr class="form-field">
        <th scope="row" valign="top"><label for="vendor_type"><?php _e( 'Type of Vendor', 'woocommerce-product-vendors' ); ?></label></th>
        <td>
                        <input type="text" name="vendor_type" id="vendor_type" value="<?php echo ( get_term_meta( $term->term_id, 'vendor_type', true ) ); ?>" />
        </td>
    </tr>
<tr class="form-field">
        <th scope="row" valign="top"><label for="vendor_cv"><?php _e( 'CV', 'woocommerce-product-vendors' ); ?></label></th>
        <td>
                      <input type="file" name="vendor_cv" id="vendor_cv" value="<?php if ( ! empty( $_POST['vendor_cv'] ) ) esc_attr_e( $_POST['vendor_cv'] ); ?>" tabindex="11" />
        </td>
    </tr>
<tr class="form-field">
        <th scope="row" valign="top"><label for="vendor_photo"><?php _e( 'Photo', 'woocommerce-product-vendors' ); ?></label></th>
        <td>
                          <input type="file" name="vendor_photo" id="vendor_photo" value="<?php if ( ! empty( $_POST['vendor_photo'] ) ) esc_attr_e( $_POST['vendor_photo'] ); ?>" tabindex="12" />
        </td>
    </tr>
<tr class="form-field">
        <th scope="row" valign="top"><label for="vendor_priceperhour"><?php _e( 'Price Per Hour', 'woocommerce-product-vendors' ); ?></label></th>
        <td>
                        <input type="text" name="vendor_priceperhour" id="vendor_priceperhour" value="<?php echo ( get_term_meta( $term->term_id, 'vendor_priceperhour', true ) ); ?>" />
        </td>
    </tr>
<tr class="form-field">
        <th scope="row" valign="top"><label for="vendor_sex"><?php _e( 'Gender', 'woocommerce-product-vendors' ); ?></label></th>
        <td>
                        <input type="text" name="vendor_sex" id="vendor_sex" value="<?php echo ( get_term_meta( $term->term_id, 'vendor_sex', true ) ); ?>" />
        </td>
    </tr>
<tr class="form-field">
        <th scope="row" valign="top"><label for="vendor_size"><?php _e( 'Clothing Size', 'woocommerce-product-vendors' ); ?></label></th>
        <td>
             <select name="vendor_size" id="vendor_size" value="<?php if ( ! empty( $_POST['vendor_size'] ) ) echo esc_attr( trim( $_POST['vendor_size'] ) ); ?>" tabindex="16">
          <option value="s">S</option>
          <option value="m">M</option>
          <option value="l">L</option>
          <option value="xl">XL</option>
        </select>
        </td>
    </tr>
    <?php
}
/**
 * Save term fields
 */
function save_vendor_custom_fields( $term_id ) {
    if ( ! wp_verify_nonce( $_POST['vendor_custom_fields_nonce'], basename( __FILE__ ) ) ) {
        return;
    }
    $old_vendor_job      = get_term_meta( $term_id, 'vendor_job', true );
    $old_vendor_address = get_term_meta( $term_id, 'vendor_address', true );
    $old_vendor_biography = get_term_meta( $term_id, 'vendor_biography', true );
    $old_vendor_photo      = get_term_meta( $term_id, 'vendor_photo', true );
    $old_vendor_cv = get_term_meta( $term_id, 'vendor_cv', true );
    $old_vendor_type = get_term_meta( $term_id, 'vendor_type', true );
    $old_vendor_size      = get_term_meta( $term_id, 'vendor_size', true );
    $old_vendor_priceperhour = get_term_meta( $term_id, 'vendor_priceperhour', true );
    $old_vendor_sex = get_term_meta( $term_id, 'vendor_sex', true );
    $new_vendor_job      = ( $_POST['vendor_job'] );
    $new_vendor_address = ( $_POST['vendor_address'] );
    $new_vendor_biography = ( $_POST['vendor_biography'] );
    $new_vendor_photo      = ( $_POST['vendor_photo'] );
    $new_vendor_cv = ( $_POST['vendor_cv'] );
    $new_vendor_type = ( $_POST['vendor_type'] );
    $new_vendor_size      = ( $_POST['vendor_size'] );
    $new_vendor_priceperhour = ( $_POST['vendor_priceperhour'] );
    $new_vendor_sex = ( $_POST['vendor_sex'] );
    if ( ! empty( $old_vendor_size ) && $new_vendor_size === '' ) {
        delete_term_meta( $term_id, 'vendor_size' );
    } else if ( $old_vendor_size !== $new_vendor_size ) {
        update_term_meta( $term_id, 'vendor_size', $new_vendor_size, $old_vendor_size );
    }
    if ( ! empty( $old_vendor_priceperhour ) && $new_vendor_priceperhour === '' ) {
        delete_term_meta( $term_id, 'vendor_priceperhour' );
    } else if ( $old_vendor_priceperhour !== $new_vendor_priceperhour ) {
        update_term_meta( $term_id, 'vendor_priceperhour', $new_vendor_priceperhour, $old_vendor_priceperhour );
    }
    if ( ! empty( $old_vendor_sex ) && $new_vendor_sex === '' ) {
        delete_term_meta( $term_id, 'vendor_sex' );
    } else if ( $old_vendor_sex !== $new_vendor_sex ) {
        update_term_meta( $term_id, 'vendor_sex', $new_vendor_sex, $old_vendor_sex );
    }
    if ( ! empty( $old_vendor_job ) && $new_vendor_job === '' ) {
        delete_term_meta( $term_id, 'vendor_job' );
    } else if ( $old_vendor_job !== $new_vendor_job ) {
        update_term_meta( $term_id, 'vendor_job', $new_vendor_job, $old_vendor_job );
    }
    if ( ! empty( $old_vendor_address ) && $new_vendor_address === '' ) {
        delete_term_meta( $term_id, 'vendor_address' );
    } else if ( $old_vendor_address !== $new_vendor_address ) {
        update_term_meta( $term_id, 'vendor_address', $new_vendor_address, $old_vendor_address );
    }
    if ( ! empty( $old_vendor_biography ) && $new_vendor_biography === '' ) {
        delete_term_meta( $term_id, 'vendor_biography' );
    } else if ( $old_vendor_biography !== $new_vendor_biography ) {
        update_term_meta( $term_id, 'vendor_biography', $new_vendor_biography, $old_vendor_biography );
    }
    if ( ! empty( $old_vendor_photo ) && $new_vendor_photo === '' ) {
        delete_term_meta( $term_id, 'vendor_photo' );
    } else if ( $old_vendor_photo !== $new_vendor_photo ) {
        update_term_meta( $term_id, 'vendor_photo', $new_vendor_photo, $old_vendor_photo );
    }
    if ( ! empty( $old_vendor_cv ) && $new_vendor_cv === '' ) {
        delete_term_meta( $term_id, 'vendor_cv' );
    } else if ( $old_vendor_cv !== $new_vendor_cv ) {
        update_term_meta( $term_id, 'vendor_cv', $new_vendor_cv, $old_vendor_cv );
    }
    if ( ! empty( $old_vendor_type ) && $new_vendor_type === '' ) {
        delete_term_meta( $term_id, 'vendor_type' );
    } else if ( $old_vendor_type !== $new_vendor_type ) {
        update_term_meta( $term_id, 'vendor_type', $new_vendor_type, $old_vendor_type );
    }
}
add_action( 'wcpv_registration_form', 'vendors_reg_custom_fields' );
<option value="s">S</option>
<option value="m">M</option>
<option value="l">L</option>
<option value="xl">XL</option>

replace with

<?
$size_array = array("S","M","L","X");

if ( ! empty( $_POST['vendor_size'] ) ) {
  $vendor_size_inserted_info = esc_attr( trim( $_POST['vendor_size'] ) );
}

for($i=0;$i<count($size_array);$i++){ 
  $size_info = $size_array[$i];
  $size_selected = "";
  if($vendor_size_inserted_info == $size_info){
    $size_selected = " selected";
  }
?>
 <option value="<?= $size_array[$i] ?>"<?= $state_selected ?>><?= $size_array[$i] ?></option>
<?
}
?>

` Should get the info you inserted.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM