Php get_post_meta无法返回GTIN编号
下面我的Php get_post_meta无法返回GTIN编号,php,wordpress,woocommerce,Php,Wordpress,Woocommerce,下面我的PHP代码的目的是在可用时显示产品GTIN编号,在不可用时显示消息。但无论是否存在GTIN值,它都只返回消息 // https://businessbloomer.com/woocommerce-add-text-add-cart-single-product-page/ add_action( 'woocommerce_single_product_summary', 'custom_data_above_add_to_cart_button', 6 ); function cu
PHP
代码的目的是在可用时显示产品GTIN
编号,在不可用时显示消息。但无论是否存在GTIN
值,它都只返回消息
// https://businessbloomer.com/woocommerce-add-text-add-cart-single-product-page/
add_action( 'woocommerce_single_product_summary', 'custom_data_above_add_to_cart_button', 6 );
function custom_data_above_add_to_cart_button( $product ) {
// https://wordpress.stackexchange.com/a/165757/135006
if ( get_post_meta( $post->ID, 'wccaf_gtin', true ) ) {
echo '<p>'.get_post_meta( $post->ID, 'wccaf_gtin', true ).'</p>';
} else {
echo '<p>GTIN unspecified.</p>';
}
}
//https://businessbloomer.com/woocommerce-add-text-add-cart-single-product-page/
添加操作('woocommerce\u single\u product\u summary','custom\u data\u Upper\u add\u to\u cart\u button',6);
功能自定义数据按钮上方添加到购物车按钮($product){
// https://wordpress.stackexchange.com/a/165757/135006
if(获取帖子元($post->ID,'wccaf_gtin',true)){
回显“”。获取“post”meta($post->ID,“wccaf\u gtin”,true)。“”;
}否则{
回声'GTIN未指定。';
}
}
像这样使用
add_action('woocommerce_single_product_summary', function($product){
if ( get_post_meta( $product->get_id(), 'wccaf_gtin', true ) ) {
echo '<p>'.get_post_meta( $product->get_id(), 'wccaf_gtin', true ).'</p>';
} else {
echo '<p>GTIN unspecified.</p>';
}
}, 6, 1);
add_action('woocommerce_single_product_summary',函数($product){
if(get_post_meta($product->get_id(),'wccaf_gtin',true)){
回显“”。获取发布元($product->get\u id(),'wccaf\u gtin',true)。“”;
}否则{
回声'GTIN未指定。';
}
}, 6, 1);
使用$product->get_id()
而不是$post->id
。如果你有一个旧版本的wordpress,你必须使用$product->id
,或者一个btter解决方案是更新插件。由于get_id()函数在版本2.6.0中可用,因此当我现在尝试加载产品页面时,它会暂停?您安装了哪个woocommerce版本?或者您可以添加global$post
在函数的最开始,我尝试了您的解决方案的一种变体:$product->id
,产品页面现在可以正常加载,但再次显示的是消息而不是值。您确定元键wccaf_gtin是正确的吗?这背后的原因是什么?我的PHP不太流利,你能解释一下吗?get\u post\u meta
需要post ID作为第一个参数,全局$post在这里不起作用,你有$product
对象。因此,您将从$product->get_ID()
获取帖子ID,当然您必须确保此wccaf_gtin
元键正确。