Php 将MSRP添加到WooCommerce的产品页面
我目前正在尝试向我的产品页面添加一个新的文本字段。我想在产品旁边显示我的产品的MSRP价格。如下图所示。MSRP应位于红线所在的位置 我对这个话题做了不少研究。有几个插件可以解决这个问题。然而,他们中的大多数要么评论不好,要么得到了报酬。我已经成功地为MSRP添加了一个元字段。但是,当我将价格添加到此字段时,它根本不会显示在产品页面上Php 将MSRP添加到WooCommerce的产品页面,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,我目前正在尝试向我的产品页面添加一个新的文本字段。我想在产品旁边显示我的产品的MSRP价格。如下图所示。MSRP应位于红线所在的位置 我对这个话题做了不少研究。有几个插件可以解决这个问题。然而,他们中的大多数要么评论不好,要么得到了报酬。我已经成功地为MSRP添加了一个元字段。但是,当我将价格添加到此字段时,它根本不会显示在产品页面上 function bbloomer_display_RRP() { global $product; if ( $product->get_type()
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')请原谅我有点慢。wordpress和php的新手别担心,我们都是新人。9号是“优先权”。它决定了将多个动作添加到同一挂钩时的外观/操作顺序。当通过测试值(代替meta)时,我的代码肯定会显示一个值,所以可能您在保存meta时遇到了问题?我已经更新了他们的整个代码片段,添加了一些消毒,并使用Woo CRUD来保存元数据。这是经过测试的,对我有效。很好,我想我理解。你帮了大忙,赫尔加。非常感谢!