php - 如果运输方式是 Woocommerce 中的本地取货,则需要填写订单备注

标签 php wordpress woocommerce checkout shipping

In Woocommerce, I would like that checkout Order Notes field will be "required"only when local pickup is selected as a shipping method.

我已经设法更改本地取件标签,以便指示客户将详细信息添加到此字段,但想知道是否有一种方法可以在他们将详细信息添加到此部分之前不允许他们继续操作?

非常感谢任何帮助。

最佳答案

下面的代码将使“订单备注”成为“本地取件”仅选择的送货方式的必填字段,如果客户尝试提交,将显示错误通知他对此要求的订单:

// Validate mandatory "Order notes" field for "Local Pickup" shipping methods
add_action( 'woocommerce_checkout_process', 'local_pickup_order_comment_validation', 20 );
function local_pickup_order_comment_validation() {
    $chosen_shipping = WC()->session->get( 'chosen_shipping_methods' )[0];
    $chosen_shipping = explode(':', $chosen_shipping);
    if ( $chosen_shipping[0] == 'local_pickup' && empty($_POST['order_comments']) ){
        wc_add_notice( __( "You need to fill up \"Order notes\" with some details.", "woocommerce" ), 'error' );
    }
}

代码在您的事件子主题(或事件主题)的 function.php 文件中。经过测试并有效。

关于php - 如果运输方式是 Woocommerce 中的本地取货,则需要填写订单备注,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49535670/

相关文章:

javascript - 从 ajax 切换时未调用 jquery

php - Woocommerce:获取产品的所有订单

php - 如何使用php删除基于子属性的XML标签?

c# - 将 Unity App 连接到 mySQL 数据库

php在行中添加数量

javascript - 滚动脚本出现此错误 ----> TypeError : $(. ..).offset(...) 未定义

php - function.php 中的 Woocommerce 条件 is_product()

PHP未定义索引使用arduino到mySQL

javascript - 为什么我无法通过 Ajax 获取 WP 自定义字段值或发布 ID?

css - Wordpress 呈现的 CSS 与 CSS 文件不匹配