I like to get all available checkout fields, including third party ones:
$fields = WC()->checkout()->checkout_fields;
returns a fatal error:
Fatal error: Call to a member function get_country() on a non-object in
../wp-content/plugins/woocommerce/includes/class-wc-checkout.php</b> on line 768
Is there an offical way to get them?
Edit:
My plugin needs a dropdown field with all available checkout fields on the backend. What I like to have is an array like this (I var_dump
the $checkout_fields
variable of the WC_Checkout
class) :
Array
(
[billing] => Array
(
[billing_country] => Array
(
[type] => country
[label] => Country
[required] => 1
[class] => Array
(
[0] => form-row-wide
[1] => address-field
[2] => update_totals_on_change
)
)
[billing_first_name] => Array
(
[label] => First Name
[required] => 1
[class] => Array
(
[0] => form-row-first
)
)
[billing_last_name] => Array
(
[label] => Last Name
[required] => 1
[class] => Array
(
[0] => form-row-last
)
[clear] => 1
)
[billing_company] => Array
(
[label] => Company Name
[class] => Array
(
[0] => form-row-wide
)
)
[billing_address_1] => Array
(
[label] => Address
[placeholder] => Street address
[required] => 1
[class] => Array
(
[0] => form-row-wide
[1] => address-field
)
)
[billing_address_2] => Array
(
[placeholder] => Apartment, suite, unit etc. (optional)
[class] => Array
(
[0] => form-row-wide
[1] => address-field
)
[required] =>
)
[billing_postcode] => Array
(
[label] => Postcode / Zip
[placeholder] => Postcode / Zip
[required] => 1
[class] => Array
(
[0] => form-row-wide
[1] => address-field
)
[clear] => 1
[validate] => Array
(
[0] => postcode
)
)
[billing_city] => Array
(
[label] => Town / City
[placeholder] => Town / City
[required] => 1
[class] => Array
(
[0] => form-row-wide
[1] => address-field
)
)
[billing_state] => Array
(
[type] => state
[label] => State / County
[placeholder] => State / County
[required] =>
[class] => Array
(
[0] => form-row-first
[1] => address-field
)
[validate] => Array
(
[0] => state
)
)
[billing_email] => Array
(
[label] => Email Address
[required] => 1
[class] => Array
(
[0] => form-row-first
)
[validate] => Array
(
[0] => email
)
)
[billing_phone] => Array
(
[label] => Phone
[required] => 1
[class] => Array
(
[0] => form-row-last
)
[clear] => 1
[validate] => Array
(
[0] => phone
)
)
)
[shipping] => Array
(
[shipping_country] => Array
(
[type] => country
[label] => Country
[required] => 1
[class] => Array
(
[0] => form-row-wide
[1] => address-field
[2] => update_totals_on_change
)
)
[shipping_first_name] => Array
(
[label] => First Name
[required] => 1
[class] => Array
(
[0] => form-row-first
)
)
[shipping_last_name] => Array
(
[label] => Last Name
[required] => 1
[class] => Array
(
[0] => form-row-last
)
[clear] => 1
)
[shipping_company] => Array
(
[label] => Company Name
[class] => Array
(
[0] => form-row-wide
)
)
[shipping_address_1] => Array
(
[label] => Address
[placeholder] => Street address
[required] => 1
[class] => Array
(
[0] => form-row-wide
[1] => address-field
)
)
[shipping_address_2] => Array
(
[placeholder] => Apartment, suite, unit etc. (optional)
[class] => Array
(
[0] => form-row-wide
[1] => address-field
)
[required] =>
)
[shipping_postcode] => Array
(
[label] => Postcode / Zip
[placeholder] => Postcode / Zip
[required] => 1
[class] => Array
(
[0] => form-row-wide
[1] => address-field
)
[clear] => 1
[validate] => Array
(
[0] => postcode
)
)
[shipping_city] => Array
(
[label] => Town / City
[placeholder] => Town / City
[required] => 1
[class] => Array
(
[0] => form-row-wide
[1] => address-field
)
)
[shipping_state] => Array
(
[type] => state
[label] => State / County
[placeholder] => State / County
[required] =>
[class] => Array
(
[0] => form-row-first
[1] => address-field
)
[validate] => Array
(
[0] => state
)
)
)
[account] => Array
(
[account_password] => Array
(
[type] => password
[label] => Account password
[required] => 1
[placeholder] => Password
)
)
[order] => Array
(
[order_comments] => Array
(
[type] => textarea
[class] => Array
(
[0] => notes
)
[label] => Order Notes
[placeholder] => Notes about your order, e.g. special notes for delivery.
)
)
)