WC_Shop_Customizer::add_checkout_section( WP_Customize_Manager $wp_customize )
Checkout section.
Description Description
Parameters Parameters
- $wp_customize
-
(Required) Theme Customizer object.
Source Source
File: includes/customizer/class-wc-shop-customizer.php
public function add_checkout_section( $wp_customize ) {
$wp_customize->add_section(
'woocommerce_checkout',
array(
'title' => __( 'Checkout', 'woocommerce' ),
'priority' => 20,
'panel' => 'woocommerce',
'description' => __( 'These options let you change the appearance of the WooCommerce checkout.', 'woocommerce' ),
)
);
// Checkout field controls.
$fields = array(
'company' => __( 'Company name', 'woocommerce' ),
'address_2' => __( 'Address line 2', 'woocommerce' ),
'phone' => __( 'Phone', 'woocommerce' ),
);
foreach ( $fields as $field => $label ) {
$wp_customize->add_setting(
'woocommerce_checkout_' . $field . '_field',
array(
'default' => 'phone' === $field ? 'required' : 'optional',
'type' => 'option',
'capability' => 'manage_woocommerce',
'sanitize_callback' => array( $this, 'sanitize_checkout_field_display' ),
)
);
$wp_customize->add_control(
'woocommerce_checkout_' . $field . '_field',
array(
/* Translators: %s field name. */
'label' => sprintf( __( '%s field', 'woocommerce' ), $label ),
'section' => 'woocommerce_checkout',
'settings' => 'woocommerce_checkout_' . $field . '_field',
'type' => 'select',
'choices' => array(
'hidden' => __( 'Hidden', 'woocommerce' ),
'optional' => __( 'Optional', 'woocommerce' ),
'required' => __( 'Required', 'woocommerce' ),
),
)
);
}
// Register settings.
$wp_customize->add_setting(
'woocommerce_checkout_highlight_required_fields',
array(
'default' => 'yes',
'type' => 'option',
'capability' => 'manage_woocommerce',
'sanitize_callback' => 'wc_bool_to_string',
'sanitize_js_callback' => 'wc_string_to_bool',
)
);
$wp_customize->add_setting(
'woocommerce_checkout_terms_and_conditions_checkbox_text',
array(
/* translators: %s terms and conditions page name and link */
'default' => sprintf( __( 'I have read and agree to the website %s', 'woocommerce' ), '[terms]' ),
'type' => 'option',
'capability' => 'manage_woocommerce',
'sanitize_callback' => 'wp_kses_post',
'transport' => 'postMessage',
)
);
$wp_customize->add_setting(
'woocommerce_checkout_privacy_policy_text',
array(
/* translators: %s privacy policy page name and link */
'default' => sprintf( __( 'Your personal data will be used to process your order, support your experience throughout this website, and for other purposes described in our %s.', 'woocommerce' ), '[privacy_policy]' ),
'type' => 'option',
'capability' => 'manage_woocommerce',
'sanitize_callback' => 'wp_kses_post',
'transport' => 'postMessage',
)
);
// Register controls.
$wp_customize->add_control(
'woocommerce_checkout_highlight_required_fields',
array(
'label' => __( 'Highlight required fields with an asterisk', 'woocommerce' ),
'section' => 'woocommerce_checkout',
'settings' => 'woocommerce_checkout_highlight_required_fields',
'type' => 'checkbox',
)
);
$choose_pages = array(
'wp_page_for_privacy_policy' => __( 'Privacy policy', 'woocommerce' ),
'woocommerce_terms_page_id' => __( 'Terms and conditions', 'woocommerce' ),
);
$pages = get_pages(
array(
'post_type' => 'page',
'post_status' => 'publish,private,draft',
'child_of' => 0,
'parent' => -1,
'exclude' => array(
wc_get_page_id( 'cart' ),
wc_get_page_id( 'checkout' ),
wc_get_page_id( 'myaccount' ),
),
'sort_order' => 'asc',
'sort_column' => 'post_title',
)
);
$page_choices = array( '' => __( 'No page set', 'woocommerce' ) ) + array_combine( array_map( 'strval', wp_list_pluck( $pages, 'ID' ) ), wp_list_pluck( $pages, 'post_title' ) );
foreach ( $choose_pages as $id => $name ) {
$wp_customize->add_setting(
$id,
array(
'default' => '',
'type' => 'option',
'capability' => 'manage_woocommerce',
)
);
$wp_customize->add_control(
$id,
array(
/* Translators: %s: page name. */
'label' => sprintf( __( '%s page', 'woocommerce' ), $name ),
'section' => 'woocommerce_checkout',
'settings' => $id,
'type' => 'select',
'choices' => $page_choices,
)
);
}
$wp_customize->add_control(
'woocommerce_checkout_privacy_policy_text',
array(
'label' => __( 'Privacy policy', 'woocommerce' ),
'description' => __( 'Optionally add some text about your store privacy policy to show during checkout.', 'woocommerce' ),
'section' => 'woocommerce_checkout',
'settings' => 'woocommerce_checkout_privacy_policy_text',
'active_callback' => 'wc_privacy_policy_page_id',
'type' => 'textarea',
)
);
$wp_customize->add_control(
'woocommerce_checkout_terms_and_conditions_checkbox_text',
array(
'label' => __( 'Terms and conditions', 'woocommerce' ),
'description' => __( 'Optionally add some text for the terms checkbox that customers must accept.', 'woocommerce' ),
'section' => 'woocommerce_checkout',
'settings' => 'woocommerce_checkout_terms_and_conditions_checkbox_text',
'active_callback' => 'wc_terms_and_conditions_page_id',
'type' => 'text',
)
);
if ( isset( $wp_customize->selective_refresh ) ) {
$wp_customize->selective_refresh->add_partial(
'woocommerce_checkout_privacy_policy_text',
array(
'selector' => '.woocommerce-privacy-policy-text',
'container_inclusive' => true,
'render_callback' => 'wc_checkout_privacy_policy_text',
)
);
$wp_customize->selective_refresh->add_partial(
'woocommerce_checkout_terms_and_conditions_checkbox_text',
array(
'selector' => '.woocommerce-terms-and-conditions-checkbox-text',
'container_inclusive' => false,
'render_callback' => 'wc_terms_and_conditions_checkbox_text',
)
);
}
}