The manufacturer’s suggested retail price (MSRP), or the recommended retail price (RRP), is the price at which the manufacturer recommends that the retailer sells the product at. You might have seen this in an ad, on a magazine, on a price tag: “RRP: $50. Our price: $39!”.

WooCommerce entrepreneurs can take advantage of this “marketing trick” too. The only problem is: how do we show this “extra field” on the single product page AND in the product edit page, so that the website owner can add this easily?

WooCommerce: Display RRP/MSRP on the Single Product PageWooCommerce: Display RRP/MSRP on the Single Product Page
WooCommerce: Display RRP/MSRP on the Single Product Page
WooCommerce: add RRP/MSRP field input @ product edit pageWooCommerce: add RRP/MSRP field input @ product edit page
WooCommerce: add RRP/MSRP field input @ product edit page

PHP Snippet: Add RRP/MSRP @ WooCommerce Single Product Page

/**
 * @snippet       Display RRP/MSRP @ WooCommerce Single Product Page
 * @how-to        Get CustomizeWoo.com FREE
 * @author        Rodolfo Melogli
 * @compatible    WC 3.8
 * @donate $9     https://businessbloomer.com/bloomer-armada/
 */
 
// -----------------------------------------
// 1. Add RRP field input @ product edit page
 
add_action( 'woocommerce_product_options_pricing', 'bbloomer_add_RRP_to_products' );      
 
function bbloomer_add_RRP_to_products() {          
    woocommerce_wp_text_input( array( 
        'id' => 'rrp', 
        'class' => 'short wc_input_price', 
        'label' => __( 'RRP', 'woocommerce' ) . ' (' . get_woocommerce_currency_symbol() . ')',
        'data_type' => 'price', 
    ));      
}
 
// -----------------------------------------
// 2. Save RRP field via custom field
 
add_action( 'save_post_product', 'bbloomer_save_RRP' );
 
function bbloomer_save_RRP( $product_id ) {
    global $pagenow, $typenow;
    if ( 'post.php' !== $pagenow || 'product' !== $typenow ) return;
    if ( defined( 'DOING_AUTOSAVE' ) && DOING_AUTOSAVE ) return;
    if ( isset( $_POST['rrp'] ) ) {
    if ( $_POST['rrp'] )
        update_post_meta( $product_id, 'rrp', $_POST['rrp'] );
    } else delete_post_meta( $product_id, 'rrp' );
}
 
// -----------------------------------------
// 3. Display RRP field @ single product page
 
add_action( 'woocommerce_single_product_summary', 'bbloomer_display_RRP', 9 );
 
function bbloomer_display_RRP() {
    global $product;
    if ( $product->get_type() <> 'variable' && $rrp = get_post_meta( $product->get_id(), 'rrp', true ) ) {
        echo '<div class="woocommerce_rrp">';
        _e( 'RRP: ', 'woocommerce' );
        echo '<span>' . wc_price( $rrp ) . '</span>';
        echo '</div>';
    }
}
Share:

Leave a Reply