Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $YECBGYFECGEAFWHA as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2

Deprecated: imwpcache\f884414bce24ee67f\f73723ec7b1919fa5::__construct(): Implicitly marking parameter $BBWFDDBHHYHDXXAB as nullable is deprecated, the explicit nullable type must be used instead in /www/wwwroot/www.chuangxiangniao.com/wp-content/plugins/imwpcache-dist/build/f884414bce24ee67ff73723ec7b1919fa5.php on line 2
为 WooCommerce 订单管理页面添加可编辑的自定义里程字段_创想鸟

为 WooCommerce 订单管理页面添加可编辑的自定义里程字段

为 woocommerce 订单管理页面添加可编辑的自定义里程字段

本教程旨在指导开发者如何在 WooCommerce 订单管理页面添加一个可编辑的自定义字段,用于记录车辆服务的总里程数。我们将详细讲解如何添加输入框、保存用户输入的数据到数据库,以及如何在订单详情页显示该自定义字段的值,从而实现订单里程信息的记录和管理。

在 WooCommerce 网站中,有时需要为订单添加一些自定义信息,例如车辆服务的总里程数。本教程将介绍如何在订单管理页面添加一个可编辑的字段,用于输入和保存这些自定义数据。

添加自定义字段到订单管理页面

首先,我们需要在订单管理页面添加一个输入框,让管理员可以输入总里程数。可以使用 woocommerce_admin_order_data_after_order_details 钩子来实现这一点。

add_action( 'woocommerce_admin_order_data_after_order_details', 'editable_order_custom_field', 12, 1 );function editable_order_custom_field( $order ){    $order_id = $order->get_id(); // 获取订单 ID    $custom_km = get_post_meta( $order_id, 'custom_km', true ); // 获取已保存的里程数,如果存在    woocommerce_wp_text_input( array(        'id'            => 'custom_km',        'label'         => __("Total Km:", "woocommerce"),        'value'         => $custom_km, // 设置输入框的默认值        'wrapper_class' => 'form-field-wide',    ) );}

这段代码会在订单详情页的订单信息之后添加一个名为 “Total Km:” 的文本输入框。woocommerce_wp_text_input 是 WooCommerce 提供的一个便捷函数,用于生成文本输入框。

注意: 我们添加了获取订单ID的代码 $order_id = $order->get_id(); 和获取已保存里程数的代码 $custom_km = get_post_meta( $order_id, ‘custom_km’, true );,从而确保在编辑现有订单时,输入框会显示之前保存的值。

保存自定义字段的值

仅仅添加输入框是不够的,还需要将用户输入的值保存到数据库中。可以使用 woocommerce_process_shop_order_meta 钩子来保存数据。

add_action( 'woocommerce_process_shop_order_meta', 'save_custom_filed_data' );function save_custom_filed_data( $order_id ){    if ( isset( $_POST['custom_km'] ) ) { // 检查 custom_km 是否存在        update_post_meta( $order_id, 'custom_km', wc_clean( $_POST['custom_km'] ) );    }}

这段代码会在订单保存时,获取 custom_km 字段的值,并使用 update_post_meta 函数将其保存到数据库中。wc_clean 函数用于清理用户输入的数据,防止恶意代码注入。

注意: 添加了 if ( isset( $_POST[‘custom_km’] ) ) 判断,确保在POST请求中存在 custom_km 字段时才执行保存操作,避免出现未定义索引的错误。

显示自定义字段的值

最后,我们需要在订单详情页显示保存的里程数。可以使用 woocommerce_admin_order_data_after_billing_address 钩子来实现这一点。

add_action('woocommerce_admin_order_data_after_billing_address', 'display_the_custom_distance_km', 10, 1);function display_the_custom_distance_km($order){    $custom_km = get_post_meta($order->get_id(), 'custom_km', true); // 获取里程数    if ($custom_km) { // 检查里程数是否存在        echo '

Custom Km:
' . esc_html($custom_km) . '

'; }}

这段代码会在订单详情页的账单地址之后显示 “Custom Km:” 以及对应的里程数。get_post_meta 函数用于从数据库中获取保存的里程数。 esc_html() 函数用于对输出进行转义,以防止 XSS 攻击。

注意: 添加了 $custom_km 变量来获取里程数,并添加了 if ($custom_km) 判断,确保在里程数存在时才显示,避免显示空的 “Custom Km:” 标签。

总结

通过以上步骤,我们成功地在 WooCommerce 订单管理页面添加了一个可编辑的自定义里程字段,并实现了数据的保存和显示。 这个方法可以扩展到其他类型的自定义字段,以满足不同的业务需求。 关键在于理解 WooCommerce 的钩子系统,并合理使用 woocommerce_wp_text_input、update_post_meta 和 get_post_meta 等函数。 记住始终对用户输入进行清理和转义,以确保网站的安全。

以上就是为 WooCommerce 订单管理页面添加可编辑的自定义里程字段的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1288443.html

赞 (0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
基于MySQL查询结果动态改变字体颜色
上一篇 2025年12月11日 05:02:05
为 WooCommerce 订单管理页面添加可编辑的自定义字段
下一篇 2025年12月11日 05:02:19

相关推荐

发表回复

登录后才能评论
关注微信