返回上一级

Wordpress中修改woocommerce结算页面去掉其它表单字段

通过添加 woocommerce_shared_settings 过滤器,修改表单内容。

 1add_filter('woocommerce_shared_settings', function ($settings) {
 2  $settings['defaultFields']['email']['required'] = false;
 3  $settings['defaultFields']['email']['hidden'] = true;
 4
 5  $settings['defaultFields']['last_name']['required'] = false;
 6  $settings['defaultFields']['last_name']['hidden'] = true;
 7
 8  $settings['defaultFields']['company']['required'] = false;
 9  $settings['defaultFields']['company']['hidden'] = true;
10
11  $settings['defaultFields']['country']['required'] = false;
12  $settings['defaultFields']['country']['hidden'] = true;
13
14  $settings['defaultFields']['city']['required'] = false;
15  $settings['defaultFields']['city']['hidden'] = true;
16
17  $settings['defaultFields']['state']['required'] = false;
18  $settings['defaultFields']['state']['hidden'] = true;
19
20  $settings['defaultFields']['postcode']['required'] = false;
21  $settings['defaultFields']['postcode']['hidden'] = true;
22
23  return $settings;
24});

其中,参数 $settings 会返回woocommerce的完整配置信息

我们只需要关心 $settings 内部的数组 defaultFields 内容。

默认 $settings['defaultFields'] 包含以下内容:

格式是PHP关联数组,解析成json格式展示

  1{
  2  "email": {
  3    "label": "電子郵件地址",
  4    "optionalLabel": "Email address (optional)",
  5    "required": true,
  6    "hidden": false,
  7    "autocomplete": "email",
  8    "autocapitalize": "none",
  9    "index": 0
 10  },
 11  "first_name": {
 12    "label": "名字",
 13    "optionalLabel": "名字 (選填)",
 14    "required": true,
 15    "hidden": false,
 16    "autocomplete": "given-name",
 17    "autocapitalize": "sentences",
 18    "index": 10
 19  },
 20  "last_name": {
 21    "label": "姓氏",
 22    "optionalLabel": "姓氏 (選填)",
 23    "required": true,
 24    "hidden": false,
 25    "autocomplete": "family-name",
 26    "autocapitalize": "sentences",
 27    "index": 20
 28  },
 29  "company": {
 30    "label": "公司",
 31    "optionalLabel": "公司 (選填)",
 32    "required": false,
 33    "hidden": false,
 34    "autocomplete": "organization",
 35    "autocapitalize": "sentences",
 36    "index": 30
 37  },
 38  "address_1": {
 39    "label": "地址",
 40    "optionalLabel": "地址 (選填)",
 41    "required": true,
 42    "hidden": false,
 43    "autocomplete": "address-line1",
 44    "autocapitalize": "sentences",
 45    "index": 40
 46  },
 47  "address_2": {
 48    "label": "公寓、套房等",
 49    "optionalLabel": "公寓、套房等 (選填)",
 50    "required": false,
 51    "hidden": false,
 52    "autocomplete": "address-line2",
 53    "autocapitalize": "sentences",
 54    "index": 50
 55  },
 56  "country": {
 57    "label": "國家/地區",
 58    "optionalLabel": "國家/地區 (選填)",
 59    "required": true,
 60    "hidden": false,
 61    "autocomplete": "country",
 62    "index": 50
 63  },
 64  "city": {
 65    "label": "城市",
 66    "optionalLabel": "城市 (選填)",
 67    "required": true,
 68    "hidden": false,
 69    "autocomplete": "address-level2",
 70    "autocapitalize": "sentences",
 71    "index": 70
 72  },
 73  "state": {
 74    "label": "縣/市",
 75    "optionalLabel": "州/郡 (選填)",
 76    "required": true,
 77    "hidden": false,
 78    "autocomplete": "address-level1",
 79    "autocapitalize": "sentences",
 80    "index": 80
 81  },
 82  "postcode": {
 83    "label": "郵遞區號",
 84    "optionalLabel": "郵遞區號 (選填)",
 85    "required": true,
 86    "hidden": false,
 87    "autocomplete": "postal-code",
 88    "autocapitalize": "characters",
 89    "index": 90
 90  },
 91  "phone": {
 92    "label": "聯絡電話",
 93    "optionalLabel": "電話 (選填)",
 94    "required": false,
 95    "hidden": false,
 96    "type": "tel",
 97    "autocomplete": "tel",
 98    "autocapitalize": "characters",
 99    "index": 100
100  }
101}

可以修改关键字可以影响表单显示效果

  • label

  • optionalLabel

  • required

  • hidden

  • index

  • 必填时文本内容

  • 选填时文本内容

  • true 必填 | false 选填

  • true 隐藏 | false 显示

  • 排序