[英]Display custom field value in WooCommerce single product pages via hook
I don't know much about PHP yet, but I'm trying to place some content in my single product pages by using the woocommerce_before_add_to_cart_form
hook.我还不太了解 PHP,但我正在尝试使用
woocommerce_before_add_to_cart_form
挂钩在我的单个产品页面中放置一些内容。
I succeeded in making a code that prints my text and the Total sales of my products.我成功地制作了一个代码来打印我的文字和我的产品的总销售额。 The code looks like this:
代码如下所示:
add_action( 'woocommerce_before_add_to_cart_form', 'production_time', 11 );
function production_time() {
global $product;
$production_time = $product->get_total_sales();
if ( $production_time ) echo '<p class="ri ri-clock">' . sprintf( __( ' Productietijd: %s', 'woocommerce' ), $production_time ) . '</p>';
}
But instead of product total sales I want my product custom field value to be displayed.但我希望显示我的产品自定义字段值,而不是产品总销售额。
This is the custom field I added fullfilment_production_time
custom field:这是我添加的自定义字段
fullfilment_production_time
自定义字段:
I tried changing the get_total_sales()
to get_fullfilment_production_time()
but that didn't work.我尝试将
get_total_sales()
更改为get_fullfilment_production_time()
但这没有用。
I also tried this one:我也试过这个:
add_action( 'woocommerce_before_add_to_cart_form', 'production_time', 11 );
function production_time() {
global $product;
$production_time = $product->get_post_meta( get_the_ID(), 'fullfilment_production_time', true );
if ( $production_time ) echo '<p class="ri ri-clock">' . sprintf( __( ' Productietijd: %s', 'woocommerce' ), $production_time ) . '</p>';
}
Any advice?有什么建议吗?
There is a mistake in your code when using get_post_meta()
function in a wrong way.以错误的方式使用
get_post_meta()
函数时,您的代码中存在错误。 You can use different ways to get a product custom field value:您可以使用不同的方式获取产品自定义字段值:
WC_Data
method get_meta()
this way: WC_Data
方法get_meta()
这种方式:add_action( 'woocommerce_before_add_to_cart_form', 'production_time', 11 );
function production_time() {
global $product;
$production_time = $product->get_meta( 'fullfilment_production_time' );
if ( ! empty($production_time) ) {
echo '<p class="ri ri-clock">' . sprintf( __( ' Productietijd: %s', 'woocommerce' ), $production_time ) . '</p>';
}
}
get_post_meta()
function this way:get_post_meta()
函数的旧 Wordpress 方式如下:add_action( 'woocommerce_before_add_to_cart_form', 'production_time', 11 );
function production_time() {
global $product;
$production_time = get_post_meta( $product->get_id(), 'fullfilment_production_time', true );
if ( ! empty($production_time) ) {
echo '<p class="ri ri-clock">' . sprintf( __( ' Productietijd: %s', 'woocommerce' ), $production_time ) . '</p>';
}
}
get_field()
function this way:get_field()
函数这样的高级自定义字段插件:add_action( 'woocommerce_before_add_to_cart_form', 'production_time', 11 );
function production_time() {
global $product;
$production_time = get_field( 'fullfilment_production_time', $product->get_id() );
if ( ! empty($production_time) ) {
echo '<p class="ri ri-clock">' . sprintf( __( ' Productietijd: %s', 'woocommerce' ), $production_time ) . '</p>';
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.