namespace WPForms\Admin\Settings;
* Settings will be accessible via “WPForms” → “Settings” → “Payments”.
private function hooks() {
add_filter( 'wpforms_settings_tabs', [ $this, 'register_settings_tabs' ], 5 );
add_filter( 'wpforms_settings_defaults', [ $this, 'register_settings_fields' ], 5 );
* Register "Payments" settings tab.
* @param array $tabs Admin area tabs list.
public function register_settings_tabs( $tabs ) {
'name' => esc_html__( 'Payments', 'wpforms-lite' ),
'submit' => esc_html__( 'Save Settings', 'wpforms-lite' ),
return wpforms_array_insert( $tabs, $payments, 'validation' );
* Register "Payments" settings fields.
* @param array $settings Admin area settings list.
public function register_settings_fields( $settings ) {
$currencies = wpforms_get_currencies();
// Format currencies for select element.
foreach ( $currencies as $code => $currency ) {
$currency_option[ $code ] = sprintf( '%s (%s %s)', $currency['name'], $code, $currency['symbol'] );
$settings['payments'] = [
'id' => 'payments-heading',
'content' => '<h4>' . esc_html__( 'Payments', 'wpforms-lite' ) . '</h4>',
'class' => [ 'section-heading', 'no-desc' ],
'name' => esc_html__( 'Currency', 'wpforms-lite' ),
'options' => $currency_option,