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
BACS_SECTION_NAME
public
mixed
BACS_SECTION_NAME
= 'bacs'
CHEQUE_SECTION_NAME
public
mixed
CHEQUE_SECTION_NAME
= 'cheque'
COD_SECTION_NAME
public
mixed
COD_SECTION_NAME
= 'cod'
MAIN_SECTION_NAME
public
mixed
MAIN_SECTION_NAME
= 'main'
OFFLINE_SECTION_NAME
public
mixed
OFFLINE_SECTION_NAME
= 'offline'
TAB_NAME
public
mixed
TAB_NAME
= 'checkout'
TYPE_CHECKBOX
public
mixed
TYPE_CHECKBOX
= 'checkbox'
TYPE_COLOR
public
mixed
TYPE_COLOR
= 'color'
TYPE_DATE
public
mixed
TYPE_DATE
= 'date'
TYPE_DATETIME
public
mixed
TYPE_DATETIME
= 'datetime'
TYPE_DATETIME_LOCAL
public
mixed
TYPE_DATETIME_LOCAL
= 'datetime-local'
TYPE_EMAIL
public
mixed
TYPE_EMAIL
= 'email'
TYPE_IMAGE_WIDTH
public
mixed
TYPE_IMAGE_WIDTH
= 'image_width'
TYPE_INFO
public
mixed
TYPE_INFO
= 'info'
TYPE_MONTH
public
mixed
TYPE_MONTH
= 'month'
TYPE_MULTI_SELECT_COUNTRIES
public
mixed
TYPE_MULTI_SELECT_COUNTRIES
= 'multi_select_countries'
TYPE_MULTISELECT
public
mixed
TYPE_MULTISELECT
= 'multiselect'
TYPE_NUMBER
public
mixed
TYPE_NUMBER
= 'number'
TYPE_PASSWORD
public
mixed
TYPE_PASSWORD
= 'password'
TYPE_RADIO
public
mixed
TYPE_RADIO
= 'radio'
TYPE_RELATIVE_DATE_SELECTOR
public
mixed
TYPE_RELATIVE_DATE_SELECTOR
= 'relative_date_selector'
TYPE_SECTIONEND
public
mixed
TYPE_SECTIONEND
= 'sectionend'
TYPE_SELECT
public
mixed
TYPE_SELECT
= 'select'
TYPE_SINGLE_SELECT_COUNTRY
public
mixed
TYPE_SINGLE_SELECT_COUNTRY
= 'single_select_country'
TYPE_SINGLE_SELECT_PAGE
public
mixed
TYPE_SINGLE_SELECT_PAGE
= 'single_select_page'
TYPE_SINGLE_SELECT_PAGE_WITH_SEARCH
public
mixed
TYPE_SINGLE_SELECT_PAGE_WITH_SEARCH
= 'single_select_page_with_search'
TYPE_SLOTFILL_PLACEHOLDER
public
mixed
TYPE_SLOTFILL_PLACEHOLDER
= 'slotfill_placeholder'
TYPE_TEL
public
mixed
TYPE_TEL
= 'tel'
TYPE_TEXT
public
mixed
TYPE_TEXT
= 'text'
TYPE_TEXTAREA
public
mixed
TYPE_TEXTAREA
= 'textarea'
TYPE_TIME
public
mixed
TYPE_TIME
= 'time'
TYPE_TITLE
Setting field types.
public
string
TYPE_TITLE
= 'title'
TYPE_URL
public
mixed
TYPE_URL
= 'url'
TYPE_WEEK
public
mixed
TYPE_WEEK
= 'week'
Properties
$icon
Setting page icon.
public
string
$icon
= 'payment'
$id
Setting page id.
protected
string
$id
= ''
$label
Setting page label.
protected
string
$label
= ''
$reactified_sections_memo
Memoized list of sections to render using React.
private
array<string|int, mixed>|null
$reactified_sections_memo
=
ull
Methods
__construct()
Constructor.
public
__construct() : mixed
Return values
mixed —add_body_classes()
Add body classes.
public
add_body_classes(string $classes) : string
Parameters
- $classes : string
-
The existing body classes.
Return values
string — The modified body classes.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_slot()
Creates the React mount point for settings slot.
public
add_settings_slot() : mixed
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
Return values
string — The modified body classes for the admin area.get_id()
Get settings page ID.
public
get_id() : string
Tags
Return values
string —get_label()
Get settings page label.
public
get_label() : string
Tags
Return values
string —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
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
Return values
SettingsUIPageInterface|null —hide_help_tabs()
Hide the help tabs.
public
hide_help_tabs() : mixed
Return values
mixed —output()
Output the settings.
public
output() : mixed
Return values
mixed —output_sections()
Output sections.
public
output_sections() : mixed
Return values
mixed —save()
Save settings.
public
save() : mixed
Return values
mixed —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_sectionvariable, it is best to accept anything and standardize it to a string.
Return values
bool — Whether the section should be rendered using React.suppress_admin_notices()
Suppress WP admin notices on the WooCommerce Payments settings page.
public
suppress_admin_notices() : mixed
Return values
mixed —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
mixed — The 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 —save_settings_for_current_section()
Save settings for current section.
protected
save_settings_for_current_section() : mixed
Return values
mixed —get_reactified_sections()
Get the whitelist of sections to render using React.
private
get_reactified_sections() : array<string|int, mixed>
Return values
array<string|int, mixed> — List of section identifiers.is_registered_settings_section()
Check if a section is registered through the settings section registry.
private
is_registered_settings_section(mixed $section) : bool
Parameters
- $section : mixed
-
Section id.
Return values
bool —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
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 —render_react_section()
Render the React section.
private
render_react_section(string $section) : mixed
Parameters
- $section : string
-
The section to render.
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.
