Created
June 8, 2015 13:07
-
-
Save woogist/7204165c39bc2aa60cd3 to your computer and use it in GitHub Desktop.
WooCommerce Product Vendors: Add extra custom fields to vendor profiles
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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" value="<?php echo $vendor_website; ?>" /><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'm confused. What is the goal of this? I've copied and pasted it in to my child.php and nothing new has popped up on the vendor's back-end.
Thanks!
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
i have used a custom code for my vendor registration page but it is not showing in vendor admin page this is the code that i have used in function.php
function add_vendor_custom_fields() {
<textarea class="input-text" name="vendor_address" id="vendor_address" rows="2" tabindex="9"></textarea>
}
/**
_/
function edit_vendor_custom_fields( $term ) {
wp_nonce_field( basename( FILE ), 'vendor_custom_fields_nonce' );
?> S M L XL
*/
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' );
function vendors_reg_custom_fields() {
?>
}
add_action( 'wcpv_shortcode_registration_form_process', 'vendors_reg_custom_fields_save', 10, 2 );
function vendors_reg_custom_fields_save( $args, $items ) {
$term = get_term_by( 'name', $items['vendor_name'], WC_PRODUCT_VENDORS_TAXONOMY );
if ( isset( $items['vendor_job'] ) && ! empty( $items['vendor_job'] ) ) {
$vendor_job = ( $items['vendor_job'] );
update_term_meta( $term->term_id, 'vendor_job', $vendor_job );
}
if ( isset( $items['vendor_address'] ) && ! empty( $items['vendor_address'] ) ) {
$vendor_address = ( $items['vendor_address'] );
update_term_meta( $term->term_id, 'vendor_address', $vendor_address );
}
if ( isset( $items['vendor_biography'] ) && ! empty( $items['vendor_biography'] ) ) {
$vendor_biography = ( $items['vendor_biography'] );
update_term_meta( $term->term_id, 'vendor_biography', $vendor_biography );
}
if ( isset( $items['vendor_size'] ) && ! empty( $items['vendor_size'] ) ) {
$vendor_size = ( $items['vendor_size'] );
update_term_meta( $term->term_id, 'vendor_size', $vendor_size );
}
if ( isset( $items['vendor_sex'] ) && ! empty( $items['vendor_sex'] ) ) {
$vendor_sex = ( $items['vendor_sex'] );
update_term_meta( $term->term_id, 'vendor_sex', $vendor_sex );
}
if ( isset( $items['vendor_priceperhour'] ) && ! empty( $items['vendor_priceperhour'] ) ) {
$vendor_priceperhour = ( $items['vendor_priceperhour'] );
update_term_meta( $term->term_id, 'vendor_priceperhour', $vendor_priceperhour );
}
if ( isset( $items['vendor_cv'] ) && ! empty( $items['vendor_cv'] ) ) {
$vendor_cv = ( $items['vendor_cv'] );
update_term_meta( $term->term_id, 'vendor_cv', $vendor_cv );
}
if ( isset( $items['vendor_photo'] ) && ! empty( $items['vendor_photo'] ) ) {
$vendor_photo = ( $items['vendor_photo'] );
update_term_meta( $term->term_id, 'vendor_photo', $vendor_photo );
}
}
?>
this is showing well in registration form but unable to find values in vendor admin
http://myhomeevent.com/dev/staff-registration/
this is the form
waiting for your reply thanks