WooCommerce Code Reference

WC_Settings_Payment_Gateways extends WC_Settings_Page
in package

WC_Settings_Payment_Gateways.

Table of Contents

BACS_SECTION_NAME  = 'bacs'
CHEQUE_SECTION_NAME  = 'cheque'
COD_SECTION_NAME  = 'cod'
MAIN_SECTION_NAME  = 'main'
OFFLINE_SECTION_NAME  = 'offline'
TAB_NAME  = 'checkout'
TYPE_CHECKBOX  = 'checkbox'
TYPE_COLOR  = 'color'
TYPE_DATE  = 'date'
TYPE_DATETIME  = 'datetime'
TYPE_DATETIME_LOCAL  = 'datetime-local'
TYPE_EMAIL  = 'email'
TYPE_IMAGE_WIDTH  = 'image_width'
TYPE_INFO  = 'info'
TYPE_MONTH  = 'month'
TYPE_MULTI_SELECT_COUNTRIES  = 'multi_select_countries'
TYPE_MULTISELECT  = 'multiselect'
TYPE_NUMBER  = 'number'
TYPE_PASSWORD  = 'password'
TYPE_RADIO  = 'radio'
TYPE_RELATIVE_DATE_SELECTOR  = 'relative_date_selector'
TYPE_SECTIONEND  = 'sectionend'
TYPE_SELECT  = 'select'
TYPE_SINGLE_SELECT_COUNTRY  = 'single_select_country'
TYPE_SINGLE_SELECT_PAGE  = 'single_select_page'
TYPE_SINGLE_SELECT_PAGE_WITH_SEARCH  = 'single_select_page_with_search'
TYPE_SLOTFILL_PLACEHOLDER  = 'slotfill_placeholder'
TYPE_TEL  = 'tel'
TYPE_TEXT  = 'text'
TYPE_TEXTAREA  = 'textarea'
TYPE_TIME  = 'time'
TYPE_TITLE  = 'title'
Setting field types.
TYPE_URL  = 'url'
TYPE_WEEK  = 'week'
$icon  : string
Setting page icon.
$id  : string
Setting page id.
$label  : string
Setting page label.
$reactified_sections_memo  : array<string|int, mixed>|null
Memoized list of sections to render using React.
__construct()  : mixed
Constructor.
add_body_classes()  : string
Add body classes.
add_settings_page()  : mixed
Add this page to settings.
add_settings_slot()  : mixed
Creates the React mount point for settings slot.
add_settings_ui_body_class()  : string
Add a body class for settings pages rendered through the settings UI.
get_id()  : string
Get settings page ID.
get_label()  : string
Get settings page label.
get_sections()  : array<string|int, mixed>
Get all sections for the current page.
get_settings()  : array<string|int, mixed>
Get settings array for the default section.
get_settings_for_section()  : array<string|int, mixed>
Get settings array.
get_settings_ui_page()  : SettingsUIPageInterface|null
Get the settings UI page adapter for this settings page.
hide_help_tabs()  : mixed
Hide the help tabs.
output()  : mixed
Output the settings.
output_sections()  : mixed
Output sections.
save()  : mixed
Save settings.
should_render_react_section()  : bool
Check if the given section should be rendered using React.
suppress_admin_notices()  : mixed
Suppress WP admin notices on the WooCommerce Payments settings page.
suppress_store_alerts()  : mixed
Suppress the store-alerts WCAdmin feature on the WooCommerce Payments settings page and Reactified sections.
do_update_options_action()  : mixed
Trigger the 'woocommerce_update_options_'.id action.
get_own_sections()  : array<string|int, mixed>
Get own sections for this page.
get_settings_for_default_section()  : array<string|int, mixed>
Get settings array.
get_settings_for_section_core()  : array<string|int, mixed>
Get the settings for a given section.
run_gateway_admin_options()  : mixed
Run the 'admin_options' method on a given gateway.
save_settings_for_current_section()  : mixed
Save settings for current section.
get_reactified_sections()  : array<string|int, mixed>
Get the whitelist of sections to render using React.
is_registered_settings_section()  : bool
Check if a section is registered through the settings section registry.
log_settings_ui_fallback()  : void
Log a developer-facing notice when settings UI rendering falls back to the legacy renderer.
render_classic_gateway_settings_page()  : mixed
Render the classic gateway settings page.
render_react_section()  : mixed
Render the React section.
standardize_section_name()  : string
Standardize the current section name.

Constants

Properties

Methods

add_settings_page()

Add this page to settings.

public add_settings_page(array<string|int, mixed> $pages) : mixed
Parameters
$pages : array<string|int, mixed>

The settings array where we'll add ourselves.

Return values
mixed

add_settings_ui_body_class()

Add a body class for settings pages rendered through the settings UI.

public add_settings_ui_body_class(string $classes) : string
Parameters
$classes : string

The existing body classes for the admin area.

Tags
since
10.9.0
Return values
stringThe modified body classes for the admin area.

get_sections()

Get all sections for the current page.

public get_sections() : array<string|int, mixed>

Reactified section pages won't have any sections. The rest of the settings pages will get the default/own section and those added via the woocommerce_get_sections_checkout filter.

Return values
array<string|int, mixed>The sections for this settings page.

get_settings()

Get settings array for the default section.

public get_settings() : array<string|int, mixed>

External settings classes (registered via 'woocommerce_get_settings_pages' filter) might have redefined this method as "get_settings($section_id='')", thus we need to use this method internally instead of 'get_settings_for_section' to register settings and render settings pages.

But we can't just redefine the method as "get_settings($section_id='')" here, since this will break on PHP 8 if any external setting class have it as 'get_settings()'.

Thus we leave the method signature as is and use 'func_get_arg' to get the setting id if it's supplied, and we use this method internally; but it's deprecated and should otherwise never be used.

Tags
deprecated
5.4.0

Use 'get_settings_for_section' (passing an empty string for default section)

Return values
array<string|int, mixed>Settings array, each item being an associative array representing a setting.

get_settings_for_section()

Get settings array.

public final get_settings_for_section(string $section_id) : array<string|int, mixed>

The strategy for getting the settings is as follows:

  • If a method named 'get_settings_for_{section_id}_section' exists in the class it will be invoked (for the default '' section, the method name is 'get_settings_for_default_section'). Derived classes can implement these methods as required.

  • Otherwise, 'get_settings_for_section_core' will be invoked. Derived classes can override it as an alternative to implementing 'get_settings_for_{section_id}_section' methods.

Parameters
$section_id : string

The id of the section to return settings for, an empty string for the default section.

Return values
array<string|int, mixed>Settings array, each item being an associative array representing a setting.

get_settings_ui_page()

Get the settings UI page adapter for this settings page.

public get_settings_ui_page() : SettingsUIPageInterface|null

Settings pages can override this to opt in to the settings UI renderer while retaining the classic WooCommerce settings page route and save flow.

Tags
since
10.9.0
Return values
SettingsUIPageInterface|null

should_render_react_section()

Check if the given section should be rendered using React.

public should_render_react_section(mixed $section) : bool
Parameters
$section : mixed

The section name to check. Since this value originates from the global $current_section variable, it is best to accept anything and standardize it to a string.

Return values
boolWhether the section should be rendered using React.

suppress_store_alerts()

Suppress the store-alerts WCAdmin feature on the WooCommerce Payments settings page and Reactified sections.

public suppress_store_alerts(mixed $features) : mixed
Parameters
$features : mixed

The WCAdmin features list.

Return values
mixedThe modified features list.

do_update_options_action()

Trigger the 'woocommerce_update_options_'.id action.

protected do_update_options_action([string $section_id = null ]) : mixed
Parameters
$section_id : string = null

Section to trigger the action for, or null for current section.

Return values
mixed

get_own_sections()

Get own sections for this page.

protected get_own_sections() : array<string|int, mixed>

Derived classes should override this method if they define sections. There should always be one default section with an empty string as identifier.

Example: return array( '' => __( 'General', 'woocommerce' ), 'foobars' => __( 'Foos & Bars', 'woocommerce' ), );

Return values
array<string|int, mixed>An associative array where keys are section identifiers and the values are translated section names.

get_settings_for_default_section()

Get settings array.

protected get_settings_for_default_section() : array<string|int, mixed>

This is just for backward compatibility with the rest of the codebase (primarily API responses).

Return values
array<string|int, mixed>

get_settings_for_section_core()

Get the settings for a given section.

protected get_settings_for_section_core(string $section_id) : array<string|int, mixed>

This method is invoked from 'get_settings_for_section' when no 'get_settings_for_{current_section}_section' method exists in the class.

When overriding, note that the 'woocommerce_get_settings_' filter must NOT be triggered, as this is already done by 'get_settings_for_section'.

Parameters
$section_id : string

The section name to get the settings for.

Return values
array<string|int, mixed>Settings array, each item being an associative array representing a setting.

run_gateway_admin_options()

Run the 'admin_options' method on a given gateway.

protected run_gateway_admin_options(object $gateway) : mixed

This method exists to help with unit testing.

Parameters
$gateway : object

The gateway object to run the method on.

Return values
mixed

log_settings_ui_fallback()

Log a developer-facing notice when settings UI rendering falls back to the legacy renderer.

private log_settings_ui_fallback(SettingsUIPageInterface $settings_ui_page, string $section_id, string $reason) : void
Parameters
$settings_ui_page : SettingsUIPageInterface

Settings UI page adapter.

$section_id : string

Section id.

$reason : string

Fallback reason.

Tags
since
10.9.0
Return values
void

render_classic_gateway_settings_page()

Render the classic gateway settings page.

private render_classic_gateway_settings_page(array<string|int, mixed> $payment_gateways, string $current_section) : mixed
Parameters
$payment_gateways : array<string|int, mixed>

The payment gateways.

$current_section : string

The current section.

Return values
mixed

standardize_section_name()

Standardize the current section name.

private standardize_section_name(mixed $section) : string
Parameters
$section : mixed

The section name to standardize.

Return values
stringThe standardized section name.