gpt4 book ai didi

php - 通过 Hook 在 WooCommerce 单个产品页面中显示自定义字段值

转载 作者:行者123 更新时间:2023-12-03 08:31:30 25 4
gpt4 key购买 nike

我对 PHP 还不太了解,但我正在尝试使用 woocommerce_before_add_to_cart_form Hook 在我的单一产品页面中放置一些内容。

我成功地编写了一个代码来打印我的文本和我的产品的总销售额。代码如下所示:

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

但我希望显示我的产品自定义字段值,而不是产品总销售额。

这是我添加的自定义字段fullfilment_product_time自定义字段:

custom field

我尝试将 get_total_sales() 更改为 get_fullfilment_Production_time() 但没有成功。

我也尝试过这个:

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

有什么建议吗?

最佳答案

以错误的方式使用 get_post_meta() 函数时,您的代码中存在错误。您可以使用不同的方式来获取产品自定义字段值:

  1. 使用 WC_Data 方法 get_meta() 的 WooCommerce 方式如下:
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>';
}
}
  • 旧的 WordPress 方式使用 get_post_meta() 函数,如下所示:
  • 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>';
    }
    }
  • 对于 Advanced custom fields plugin using 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>';
    }
    }

    关于php - 通过 Hook 在 WooCommerce 单个产品页面中显示自定义字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64932235/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com