首页 > 解决方案 > 在 Woocommerce 结帐中使用自定义字段值进行验证

问题描述

我想在 Woocommerce 中设置一个场景,其中购物车总额低于 100 美元且已检查“交付”选项的用户会收到一条消息,指出购物车总额太低而无法交付。

我正在使用插件(结帐字段编辑器)通过条件设置(“选择您的订单类型”)为交付选项创建自定义字段,用户可以在其中选择“取货”或“交付”。自定义字段的元键是:'_additional_wooccm0'(用于送货/取货选择框 - 选择您的订单类型);'_additional_wooccm3'(用于拾取选项列表);和“_additional_wooccm4”(用于交付选项列表)。由客户端编辑的错误消息存储在另一个自定义字段“_additional_wooccm5”中。

我的代码如下:

add_filter('woocommerce_checkout_fields', 'remove_additional_field', 999 );
 function remove_additional_field ($fields) {
 $found = get_post_meta($post_id,'_additional_wooccm0',true);
 $cart_total = WC()->cart->get_displayed_subtotal();
     if (( $cart_total < 100 ) && ($found == 'Delivery')){
 unset($fields['additional']['additional_wooccm4']);
 $fields['additional']['additional_wooccm5'];
 } else{
 $fields['additional']['additional_wooccm4'];
 unset($fields['additional']['additional_wooccm5']);
 }
     return $fields;
 }

到目前为止,当我尝试这种方法时没有任何反应,用户可以选择送货地点而不管购物车总数。如果我删除 $found == 'Delivery' 条件,则交付选项将被禁用(耶!)但无论交付类型如何,都会显示“无法交付”消息。

如何保存该自定义字段值(“交付”)并在有条件的购物车中使用它?

标签: wordpresswoocommerce

解决方案


推荐阅读