gpt4 book ai didi

php - 在 WooCommerce 中的简短描述之前显示自定义产品字段

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

在简短描述之前,我在 WooCommerce 中添加新字段时遇到问题。

我在 functions.php 中使用了脚本,我的新自定义字段显示正确,但是:

  • 使用脚本时简短描述消失,新字段显示正常。
  • 我可以编辑产品页面上某个字段的内容,但不能删除它。它始终是最后一个值。

如何在不删除产品简短描述的情况下显示此自定义字段?
如何重置此自定义字段内容?

这是我的代码:

// Add a custom Field
add_action( 'woocommerce_product_options_general_product_data', 'woo_add_custom_general_fields' );

function woo_add_custom_general_fields() {

global $woocommerce, $post;

woocommerce_wp_text_input(
array(
'id' => '_text_field',
'label' => __( 'Termin dostawy', 'woocommerce' ),
'placeholder' => 'np: 7 dni',
'desc_tip' => 'true',
'description' => __( 'Wpisz przewidywany termin dostawy, np: 7 dni.', 'woocommerce' )
)
);

}

// Save the custom field
add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save' );
function woo_add_custom_general_fields_save( $post_id ){
$woocommerce_text_field = $_POST['_text_field'];
if( ! empty( $woocommerce_text_field ) )
update_post_meta( $post_id, '_text_field', esc_attr( $woocommerce_text_field ) );

}

// Display the custom field
add_action('woocommerce_short_description', 'magik_custom_text', 10, 1);
function magik_custom_text()
{
global $product;

global $woocommerce, $post;
echo "Termin dostawy: ".get_post_meta( $post->ID, '_text_field', true );
}

负责显示的函数:

add_action('woocommerce_short_description', 'magik_custom_text', 10, 1);
function magik_custom_text()
{

最佳答案

更新 2:

1) 你应该将它添加到简短描述中而不是替换它......

正确的方法是在简短描述之前在 woocommerce_single_product_summary 阳 ionic Hook 中 Hook 您的自定义函数(使用 11 到 19 之间的优先级):

add_action('woocommerce_single_product_summary', 'magik_custom_text', 18);
function magik_custom_text()
{
global $post;
$field_value = get_post_meta( $post->ID, '_text_field', true );
// Displaying the custom field only when is set with a value
if( ! empty( $field_value ) )
echo '<p>' . __('Termin dostawy: ', 'woocommerce') . $field_value . '</p>';
}

代码位于您的事件子主题(或主题)的 function.php 文件中或任何插件文件中。

测试和工作。所以你会得到这个:

enter image description here

enter image description here


2) 为了能够删除您需要替换的产品自定义字段的内容:

 if( ! empty( $woocommerce_text_field ) ) 

通过:

 if( isset( $woocommerce_text_field ) )

在这个钩子(Hook)函数中:

add_action( 'woocommerce_process_product_meta', 'woo_add_custom_general_fields_save' );
function woo_add_custom_general_fields_save( $post_id ){
$woocommerce_text_field = $_POST['_text_field'];
if( isset( $woocommerce_text_field ) )
update_post_meta( $post_id, '_text_field', esc_attr( $woocommerce_text_field ) );

}

关于php - 在 WooCommerce 中的简短描述之前显示自定义产品字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45903747/

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