php - 在 Woocommerce 结账时设置结账字段

标签 php wordpress woocommerce field checkout

出于某种原因,账单地址中的所有字段都被标记为可选 - 客户将账单地址字段留空,然后他们的付款被拒绝(被我们的付款处理方 Square 拒绝)。

我无法在任何地方找到将这些字段设置为必填字段,也无法弄清楚为什么它们在任何情况下都被标记为可选。

有人能指出我正确的方向吗?

更新

我什至尝试过以下方法:

add_filter('woocommerce_billing_fields', 'force_billing_fields', 1000, 1);
function force_billing_fields($fields) {
  $fields['billing_first_name']['required'] = true;
  $fields['billing_last_name']['required'] = true;
  $fields['billing_address_1']['required'] = true;
  $fields['billing_city']['required'] = true;
  $fields['billing_postcode']['required'] = true;
  $fields['billing_country']['required'] = true;
  $fields['billing_state']['required'] = true;
  $fields['billing_email']['required'] = true;
  $fields['billing_phone']['required'] = true;

  return $fields;
}

并且它们仍然标记为可选,除了帐单电话和国家/地区现在标记为必需。但其余的仍然是可选的。

最佳答案

如果您没有像我的评论中解释的那样发现有罪,您可以做的是使用以下(如果其他代码已经在使用这些 Hook ,则在此处使用最高 Hook 优先级):

add_filter( 'woocommerce_default_address_fields', 'customising_checkout_fields', 1000, 1 );
function customising_checkout_fields( $address_fields ) {
    $address_fields['first_name']['required'] = true;
    $address_fields['last_name']['required'] = true;
    $address_fields['company']['required'] = true;
    $address_fields['country']['required'] = true;
    $address_fields['city']['required'] = true;
    $address_fields['state']['required'] = true;
    $address_fields['postcode']['required'] = true;

    return $address_fields;
}

代码进入事件子主题(或事件主题)的 function.php 文件。测试和工作。

账单电话和邮箱可以试试

add_filter('woocommerce_billing_fields', 'custom_billing_fields', 1000, 1);
function custom_billing_fields( $fields ) {
    $fields['billing_email']['required'] = true;
    $fields['billing_phone']['required'] = true;

    return $fields;
}

add_filter('woocommerce_checkout_fields', 'custom_billing_fields', 1000, 1);
function custom_billing_fields( $fields ) {
    $fields['billing']['billing_email']['required'] = true;
    $fields['billing']['billing_phone']['required'] = true;

    return $fields;
}

关于php - 在 Woocommerce 结账时设置结账字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51310107/

相关文章:

php - Goutte-dom爬虫-移除节点

php - 检测哪个按钮被按下

javascript - javascript中的JSON长度返回字符数而不是数组元素数

javascript - 将代码添加到 Wordpress 站点页面

php - WooCommerce 中一件免费产品的数量折扣

php - 创建 Instagram 访问 token 生成器

php - 为什么函数重新定义比调用第一个函数更快?

wordpress - wp-load.php 文件变空了

css - 更改 WooCommerce 电子邮件标题大小

仅适用于所有 WooCommerce 产品类别的元素的 CSS 通配符选择器