Woocommerce中管理员编辑产品的复选框自定义字段

博格丹

我正在尝试在WooCommerce(在管理面板中)的“设置”标签中添加复选框,并使用以下代码:

add_action( 'woocommerce_product_options_general_product_data', 'wc_custom_add_custom_fields' );
function wc_custom_add_custom_fields() {    
    global $post;
    woocommerce_wp_checkbox(array( 
        'id'            => 'is_gift', 
        'label'         => __('Gift', 'woocommerce' ), 
        'description'   => __( 'Add gift label', 'woocommerce' ),
        'value'         => get_post_meta($post->ID, 'is_gift', true) 
    ));
}

add_action( 'woocommerce_process_product_meta', 'wc_custom_save_custom_fields' );
function wc_custom_save_custom_fields() {
    global $post;
    if (!empty($_POST['is_gift'])) {
        update_post_meta( $post->ID, 'is_gift', esc_attr( $_POST['is_gift'] ) );       
    }
}

此代码显示复选框,但不保存更改。它仅适用于一种产品。我猜错了$post->ID吗?

LoicTheAztec

已更新…尝试以下方法:

add_action( 'woocommerce_product_options_general_product_data', 'wc_custom_add_custom_fields' );
function wc_custom_add_custom_fields() {
    global $post;

   $input_checkbox = get_post_meta( $post->ID, 'is_gift', true );
   if( empty( $input_checkbox ) ) $input_checkbox = '';

    woocommerce_wp_checkbox(array(
        'id'            => 'is_gift',
        'label'         => __('Gift', 'woocommerce' ),
        'description'   => __( 'Add gift label', 'woocommerce' ),
        'value'         => $input_checkbox,
    ));
}

add_action( 'woocommerce_process_product_meta', 'wc_custom_save_custom_fields' );
function wc_custom_save_custom_fields($post_id) {
    $_custom_text_option = isset( $_POST['is_gift'] ) ? 'yes' : '';
    update_post_meta( $post_id, 'is_gift', $_custom_text_option );
}

代码进入您的活动子主题(或活动主题)的function.php文件中。经过测试和工作。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在WooCommerce结帐中添加一个自定义复选框,该值以管理员编辑顺序显示

Woocommerce管理员编辑订单页面常规部分中的自定义可编辑字段

在Woocommerce管理员电子邮件通知中显示产品自定义字段值

在Woocommerce中禁用编辑特定的管理员自定义字段

Woocommerce 3中的可编辑管理员自定义计费字段错误问题

Woocommerce管理员中的自定义可编辑字段将订单页面编辑到每个项目中

Magento,在管理员中创建/编辑产品时预完成自定义选项

添加复选框并将操作删除到自定义Django管理员change_list

向WooCommerce产品变体选项中添加自定义复选框

在Woocommerce管理员订单编辑页面中以编程方式添加自定义订单注释

在Woocommerce管理员订单列表自定义列中显示结帐字段值

在Woocommerce管理员,订单和电子邮件中显示自定义付款字段

在WooCommerce电子邮件通知中为管理员显示自定义字段

在WooCommerce订单管理员中搜索自定义字段

WooCommerce将管理员自定义字段添加到简单订阅中

产品设置中的“自定义”复选框,选中后会显示一个自定义字段

在WooCommerce管理员订单页面上将产品自定义字段显示为订单项元

在管理面板中向woocommerce quickedit添加自定义复选框

复选框字段,用于在WooCommerce中添加/删除自定义费用

WordPress中的高级自定义字段复选框

通过WooCommerce产品设置中的自定义复选框将类添加到WooCommerce页面

将产品自定义字段另存为WooCommerce管理员手动订单的自定义订单项元数据

Sonata管理员自定义列表字段模板包含指向管理员编辑对象的链接

Magento管理员编辑表单字段-自定义模型字段

通过WooCommerce产品设置中的自定义复选框禁用添加到购物车按钮

WooCommerce 中特定产品类别的自定义条款和条件复选框

将产品自定义字段添加到WooCommerce中的“管理产品”批量编辑表单中

更改Woocommerce购物车项目价格的产品自定义复选框选项

在 Woocommerce 的前端显示自定义单选和复选框产品设置数据