Php 将MSRP添加到WooCommerce的产品页面

Php 将MSRP添加到WooCommerce的产品页面,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我目前正在尝试向我的产品页面添加一个新的文本字段。我想在产品旁边显示我的产品的MSRP价格。如下图所示。MSRP应位于红线所在的位置 我对这个话题做了不少研究。有几个插件可以解决这个问题。然而,他们中的大多数要么评论不好,要么得到了报酬。我已经成功地为MSRP添加了一个元字段。但是,当我将价格添加到此字段时,它根本不会显示在产品页面上 function bbloomer_display_RRP() { global $product; if ( $product->get_type()

我目前正在尝试向我的产品页面添加一个新的文本字段。我想在产品旁边显示我的产品的MSRP价格。如下图所示。MSRP应位于红线所在的位置

我对这个话题做了不少研究。有几个插件可以解决这个问题。然而,他们中的大多数要么评论不好,要么得到了报酬。我已经成功地为MSRP添加了一个元字段。但是,当我将价格添加到此字段时,它根本不会显示在产品页面上

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>';
  }
 }
功能bbloomer\u display\u RRP(){
全球$产品;
if($product->get_type()'variable'&&$rrp=get_post\u meta($product->get_id(),'rrp',true))
{
回声';
_e(‘RRP:’,‘woocommerce’);
echo.''wc_价格($rrp)。'';
回声';
}
}
上述代码应在产品页面上显示MSRP价格。但事实并非如此

问候,


Luuc

您是否将
bbloomer\u display\u RRP
添加到任何挂钩?函数本身不会做任何事情。根据您的屏幕截图,我会将其添加到
woocommerce\u模板\u single\u 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 );
/**
*将RRP字段添加到产品数据元框
*/
函数kia_add_RRP_to_products(){
woocommerce_wp_text_输入(数组(
'id'=>'rrp',
“类”=>“短wc\u输入\u价格”,
“label'=>”(“RRP”,“woocommerce”)。(“.get\u woocommerce\u currency\u symbol()”,
“数据类型”=>“价格”,
));      
}
添加行动(“woocommerce产品选项定价”、“kia产品添加RRP产品”);
/**
*处理、验证和保存产品数据
*
*@param WC_Product$Product
*/
功能kia_save_RRP($product){
如果(isset($_POST['rrp'])){
$rrp=wc_格式_十进制(wc_干净(wp_反斜杠($_POST['rrp'])));
$product->更新元数据('rrp',$rrp);
}否则{
$product->删除元数据('rrp');
}
}
添加操作('WOOMerce\u admin\u process\u product\u object'、'kia\u save\u RRP');
/**
*在产品摘要的前端显示RRP
*/
功能kia_显示_RRP(){
全球$产品;
$rrp='10';
如果(!$product->是_类型('variable')){
$rrp=$product->get_meta('rrp',true);
如果($rrp){
回声';
printf(uuu('RRP:%s','yourtextdomain'),wc_price($RRP));
回声';
}
}
}
添加行动('woocommerce\u single\u product\u summary'、'kia\u display\u RRP',5);

我正在使用此代码。上面的代码片段是用来显示价格的代码。查看此链接。但是,您没有回答我的问题,关于您是否实际正在调用
add\u action()
?在教程中,它作为
add_动作('woocommerce_single_product_summary'、'bbloomer_display_RRP',9)出现但您的问题中没有引用它。因此,我试图辨别这是否是复制/粘贴失败,或者这是否是什么都没有显示的原因。由于钩子错误,正在编辑我的代码段。。。复制/粘贴失败。我在第12行调用了
add\u action()
。然而,我注意到在
bbloomer\u display\u RRP
之后,我的代码中缺少了一个9。这可能是问题所在吗?这就是我这边的代码
add_action('woocommerce_product_options_pricing'、'bbloomer_add_RRP_to_products')