作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我向 WooCommerce 添加了自定义价格字段。该字段按预期显示,但它不保存输入的值。
我的 functions.php
文件中的代码是:
/* Add custom price field to general page */
function wc_cost_product_field() {
woocommerce_wp_text_input( array( 'id' => 'wholesaler_price', 'class' => 'wc_input_price short', 'label' => __( 'Wholesaler price', 'woocommerce' ) . ' (' . get_woocommerce_currency_symbol() . ')' ) );
}
add_action( 'woocommerce_product_options_pricing', 'wc_cost_product_field' );
function pcc_save_custom_price( $post_id ) {
// Grab the custom price from $_POST
$custom_price = isset( $_POST[ 'wholesale_price' ] ) ? sanitize_text_field( $_POST[ 'wholesale_price' ] ) : '';
// grab the product
$product = wc_get_product( $post_id );
// Save the custom price using WooCommerce built-in functions
$product->update_meta_data( 'wholesale_price', $custom_price );
$product->save();
}
add_action( 'woocommerce_process_product_meta', 'pcc_save_custom_price' );
最佳答案
你有一些小错误,这应该足够了
还要注意使用 woocommerce_admin_process_product_object
来保存而不是过时的 woocommerce_process_product_meta
Hook
/* Add custom price field to general page */
function action_woocommerce_product_options_pricing() {
woocommerce_wp_text_input( array(
'id' => 'wholesaler_price',
'class' => 'wc_input_price short',
'label' => __( 'Wholesaler price', 'woocommerce' ) . ' (' . get_woocommerce_currency_symbol() . ')',
) );
}
add_action( 'woocommerce_product_options_pricing', 'action_woocommerce_product_options_pricing', 10, 0 );
// Save Fields
function action_woocommerce_admin_process_product_object( $product ) {
if( isset($_POST['wholesaler_price']) ) {
$product->update_meta_data( 'wholesaler_price', sanitize_text_field( $_POST[ 'wholesaler_price'] ) );
}
}
add_action( 'woocommerce_admin_process_product_object', 'action_woocommerce_admin_process_product_object', 10, 1 );
关于php - 自定义价格字段未保存在 WooCommerce 中的管理产品中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62437702/
我是一名优秀的程序员,十分优秀!