将MSRP添加到WooCommerce的产品页面

时间:2020-08-04 11:53:51

标签: php wordpress woocommerce

我目前正在尝试向产品页面添加新的文本字段。我想在产品旁边显示我产品的建议零售价。就像下面的图片一样。 MSRP应该在红线所在的位置。

Here is the image

我已经对该主题做了很多研究。有一些插件可以解决此问题。但是,其中大多数人的评价不佳或已付费。我已经成功为MSRP添加了一个meta字段。但是,当我向此字段添加价格时,它根本不会显示在产品页面上。

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>';
  }
 }

上面的代码应在产品页面上显示MSRP价格。但是,不是

此致

Luuc

1 个答案:

答案 0 :(得分:1)

您是否将bbloomer_display_RRP添加到任何挂钩?该功能本身不会执行任何操作。根据您的屏幕截图,我将其添加到woocommerce_template_single_price优先级的5挂钩中,以便它会在价格之前出现。

/**
 * Add RRP Field to product data metabox
 */
function kia_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', 
    ));      
}
add_action( 'woocommerce_product_options_pricing', 'kia_add_RRP_to_products' );   

/**
 * Process, verify and save product data
 *
 * @param  WC_Product  $product
 */
function kia_save_RRP( $product ) {
    if ( isset( $_POST['rrp'] ) ) {
        $rrp = wc_format_decimal( wc_clean( wp_unslash( $_POST['rrp'] ) ) );
        $product->update_meta_data( 'rrp', $rrp );
    } else {
        $product->delete_meta_data( 'rrp' );
    }
}
add_action( 'woocommerce_admin_process_product_object', 'kia_save_RRP' );

/**
 * Display RRP on front-end in product summary
 */
function kia_display_RRP() {
    global $product;

    $rrp = '10';

    if ( ! $product->is_type( 'variable' ) ) {
        
        $rrp = $product->get_meta( 'rrp', true );

        if ( $rrp ) {
            echo '<div class="woocommerce_rrp">';
            printf( __( 'RRP: %s', 'your-textdomain' ), wc_price( $rrp ) );
            echo '</div>';
        }
    }
}
add_action( 'woocommerce_single_product_summary', 'kia_display_RRP', 5 );