1

i have tried this code below and perfect working on variations product, but i want wholesale price only show on specific role user are logged in. if not login the price not showing.

Any help will be greatly appreciated.

// Add "Wholesale Price" custom field to Products option pricing
add_action( 'woocommerce_product_options_pricing', 'w4dev_add_product_options_pricing' );
function w4dev_add_product_options_pricing()
{
    woocommerce_wp_text_input( array(
        'id' => '_wholesale_price',
        'class' => 'wc_input_wholesale_price short',
        'label' => __( 'Wholesale Price', 'woocommerce' ) . ' ('.get_woocommerce_currency_symbol().')',
        'type' => 'text'
    ));
}

// Add custom field to VARIATIONS option pricing
add_action( 'woocommerce_variation_options_pricing', 'w4dev_add_variation_options_pricing', 20, 3 );
function w4dev_add_variation_options_pricing( $loop, $variation_data, $post_variation )
{
    $value  = get_post_meta( $post_variation->ID, '_wholesale_price', true );
    $symbol = ' (' . get_woocommerce_currency_symbol() . ')';
    $key = 'wholesale_price[' . $loop . ']';

    echo '<div class="variable_wholesale-price"><p class="form-row form-row-first">
        <label>' . __( "Wholesale Price", "woocommerce" ) . $symbol . '</label>
        <input type="text" size="5" name="' . $key .'" value="' . esc_attr( $value ) . '" />
    </p></div>';
}

i have tried the code on Enable Wholesale prices in Woocommerce 3

// Save "Wholesale Price" custom field to Products
add_action( 'woocommerce_process_product_meta_simple', 'w4dev_save_product_wholesale_price', 20, 1 );
function w4dev_save_product_wholesale_price( $product_id ) {
    if( isset($_POST['_wholesale_price']) )
        update_post_meta( $product_id, '_wholesale_price', $_POST['_wholesale_price'] );
}

// Save "Wholesale Price" custom field to VARIATIONS
add_action( 'woocommerce_save_product_variation', 'w4dev_save_product_variation_wholesale_price', 20, 2 );
function w4dev_save_product_variation_wholesale_price( $variation_id, $i ){
    if ( isset( $_POST['wholesale_price'][$i] ) ) {
        update_post_meta( $variation_id, '_wholesale_price', floatval( $_POST['wholesale_price'][$i] ) );
    }
}

// Simple, grouped and external products
add_filter('woocommerce_product_get_price', 'w4dev_custom_price', 90, 2 );
add_filter('woocommerce_product_get_regular_price', 'w4dev_custom_price', 90, 2 );

// Product variations (of a variable product)
add_filter('woocommerce_product_variation_get_regular_price', 'w4dev_custom_price', 99, 2 );
add_filter('woocommerce_product_variation_get_price', 'w4dev_custom_price', 90, 2 );;

function w4dev_custom_price( $price, $product ) {
    if( get_post_meta( $product->get_id(), '_wholesale_price', true ) > 0 )
        $price = get_post_meta( $product->get_id(), '_wholesale_price', true );

    return $price;
}

// Variable product price ramge
add_filter('woocommerce_variation_prices_price', 'w4dev_custom_variation_price', 90, 3 );
add_filter('woocommerce_variation_prices_regular_price', 'w4dev_custom_variation_price', 90, 3 )

function w4dev_custom_variation_price( $price, $variation, $product ) {
    if( get_post_meta( $variation->get_id(), '_wholesale_price', true ) > 0 )
        $price = get_post_meta( $variation->get_id(), '_wholesale_price', true );

    return $price;
}

0 Answers0