-
-
Save hlashbrooke/11205023 to your computer and use it in GitHub Desktop.
<?php | |
// Add fields to new vendor form | |
add_action( 'shop_vendor_add_form_fields', 'custom_add_vendor_fields', 2, 1 ); | |
function custom_add_vendor_fields( $taxonomy ) { | |
?> | |
<div class="form-field"> | |
<label for="vendor_website"><?php _e( 'Vendor website' ); ?></label> | |
<input type="text" name="vendor_data[website]" id="vendor_website" class="vendor_fields" /><br/> | |
<span class="description"><?php _e( 'The vendor\'s website.' ); ?></span> | |
</div> | |
<?php | |
} | |
// Add fields to vendor edit form for admins to edit | |
add_action( 'shop_vendor_edit_form_fields', 'custom_edit_vendor_fields', 2, 1 ); | |
function custom_edit_vendor_fields( $vendor ) { | |
$vendor_id = $vendor->term_id; | |
$vendor_data = get_option( 'shop_vendor_' . $vendor_id ); | |
$vendor_website = ''; | |
if( isset( $vendor_data['website'] ) && ( strlen( $vendor_data['website'] ) > 0 || $vendor_data['website'] != '' ) ) { | |
$vendor_website = $vendor_data['website']; | |
} | |
?> | |
<tr class="form-field"> | |
<th scope="row" valign="top"><label for="vendor_website"><?php _e( 'Vendor website' ); ?></label></th> | |
<td> | |
<input type="text" name="vendor_data[website]" id="vendor_website" class="vendor_fields" /><br/> | |
<span class="description"><?php _e( 'The vendor\'s website' ); ?></span> | |
</td> | |
</tr> | |
<?php | |
} | |
// Add fields to vendor details form for vendors to edit | |
add_action( 'product_vendors_details_fields', 'custom_vendor_details_fields', 10, 1 ); | |
function custom_vendor_details_fields( $vendor_id ) { | |
$vendor = get_user_vendor(); | |
$vendor_data = get_option( 'shop_vendor_' . $vendor->ID ); | |
$vendor_info = get_vendor( $vendor->ID ); | |
$vendor_website = ''; | |
if( isset( $vendor_data['website'] ) && ( strlen( $vendor_data['website'] ) > 0 || $vendor_data['website'] != '' ) ) { | |
$vendor_website = $vendor_data['website']; | |
} | |
$html = '<p class="form-field"> | |
<label for="vendor_website">' . __( 'Website' ) . ':</label> | |
<input type="text" name="wc_product_vendors_website_' . $vendor->ID . '" id="vendor_website" class="vendor_fields" /> | |
</p>'; | |
echo $html; | |
} | |
// Save fields from vendor details form | |
add_action( 'product_vendors_details_fields_save', 'custom_vendor_details_fields_save', 10, 2 ); | |
function custom_vendor_details_fields_save( $vendor_id, $posted ) { | |
$vendor_data = get_option( 'shop_vendor_' . $vendor_id ); | |
if( isset( $posted[ 'wc_product_vendors_website_' . $vendor_id ] ) ) { | |
$vendor_data['website'] = $posted[ 'wc_product_vendors_website_' . $vendor_id ]; | |
} | |
update_option( 'shop_vendor_' . $vendor_id, $vendor_data ); | |
} | |
?> |
I've implemented this code and the field appears with no errors but for some reason its not saving? any ideas?
I have added this code in my custom.php and i a m using thesis it showing field in backed vendor forms but fields are not saving any body have any idea why this is happening with me please help me to sort out this issue. i have searched through web but i ddint find any solution except this one.i am using WooCommerce Product Vendors Version 1.1.11
It is saving the field but you just need to add value="" in input type in custom_edit_vendor_fields () function (line no 30 ). Then the code will work well.
Thank you so much. I used this to add city, state, and zip code to vendors. I was about to post about the value= part, but I see @rituhritika90 has already posted about that.
Dumb question but the new field i just created, how do I pull that in on my page?
Do I do something like this:
Hey @ProgrammingGenius,
You need to do nothing, just put the above code in to your theme functions.php. Automatically the one filed named as "Vendor website" will appear in your plugin and rest if you want more then similarly copy paste the things with new names.
Hi, i added the code, and added the value in the script but It shows only on the vendor edit page, not showing the output on the website. Any ideas?.. Would greatly appreciate any input..
Is there a way to add an image upload feature to the vendor page?
hi i am setup to give facility to add custom fields to like city to admin as well as vendors on add product page i copied the function in my function.php file but there is no change in my add product page can any one please tell step by step to me how i can use this function
thanks
Hey @abhiy707,
It will not effect in product page these fields are for vendor custom post type only. Click on vendors-> while adding a new vendor -> here you are can see your new input fields. For product page you have to edit the vendor plugin a bit, this is not as heavy work. Find out from where the vendor's list coming from plugin in product page , then copy paste similarly for you input filed.
Hey @javi766,
You can use Advance Custom filed wp plugin for this. I have used and it works.
Hey @tmth,
Use the below code
$meta_values = get_post_meta( $productID, 'vendor_input_values',true );
$price = unserialize($meta_values);
print_r($price);
Enjoy 👍
Can some one post the full code to add an Image uploader field in the vendor area. So the admin can go in and upload a image to appear on each vendors product pages.
I am using this for a form but I am trying to use it with a drop down but its not saving the values any ideas what we are doing wrong
<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" <?php if (!empty($vendor_size) && $vendor_size == 'S') echo 'selected = "selected"'; ?>>S</option>
<option value="M" <?php if (!empty($vendor_size) && $vendor_size == 'M') echo 'selected = "selected"'; ?>>M</option>
<option value="L" <?php if (!empty($vendor_size) && $vendor_size == 'L') echo 'selected = "selected"'; ?>>L</option>
<option value="XL" <?php if (!empty($vendor_size) && $vendor_size == 'XL') echo 'selected = "selected"'; ?>>XL</option>
</select>
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' );
Please I need help with creating a google location field for vendors. That is, I would like to add either the Lat/Long coordinates of the vendor's location or grab it from google map/location services; the latter being the preferred option. Any one, please?
@ugoxuqu You can add a google map location field using Advanced Custom Fields (WP ACF plugin ), by using this plugin you can add map and able to get lat and Long for particular vendor.
Hello,
I have copied the exact code above into my funtions.php but not seeing the new field anywhere. Not in the admin not during signgup Has anything changed in the code?
Can I use this code with Woocommerce product vendors 2.0. If so, what do I need to change or edit to get it to work.?
Please can anyone tell me how to add password field to choose a password for registration instead of generate password automatically?
Hi Hugh - do you have any idea how I can change the wording of 'Commission' to 'Revenue' on the vendors completed order email template which reads:
Your commission for this order is €amt
I am using woo product vendors AND Eventon
Is there a way to add an image upload feature to the vendor page?