WC_Settings_Payment_Gateways::payment_gateways_setting()publicWC 1.0

Output payment gateway settings.

Метод класса: WC_Settings_Payment_Gateways{}

Возвращает

null. Ничего.

Использование

$WC_Settings_Payment_Gateways = new WC_Settings_Payment_Gateways();
$WC_Settings_Payment_Gateways->payment_gateways_setting();

Код WC_Settings_Payment_Gateways::payment_gateways_setting() WC 7.3.0

<?php
public function payment_gateways_setting() {
	?>
	<tr valign="top">
	<td class="wc_payment_gateways_wrapper" colspan="2">
		<table class="wc_gateways widefat" cellspacing="0" aria-describedby="payment_gateways_options-description">
			<thead>
				<tr>
					<?php
					$default_columns = array(
						'sort'        => '',
						'name'        => __( 'Method', 'woocommerce' ),
						'status'      => __( 'Enabled', 'woocommerce' ),
						'description' => __( 'Description', 'woocommerce' ),
						'action'      => '',
					);

					$columns = apply_filters( 'woocommerce_payment_gateways_setting_columns', $default_columns );

					foreach ( $columns as $key => $column ) {
						echo '<th class="' . esc_attr( $key ) . '">' . esc_html( $column ) . '</th>';
					}
					?>
					</tr>
				</thead>
				<tbody>
					<?php
					$payment_gateways = WC()->payment_gateways->payment_gateways();
					foreach ( $payment_gateways as $gateway ) {

						echo '<tr data-gateway_id="' . esc_attr( $gateway->id ) . '">';

						foreach ( $columns as $key => $column ) {
							if ( ! array_key_exists( $key, $default_columns ) ) {
								do_action( 'woocommerce_payment_gateways_setting_column_' . $key, $gateway );
								continue;
							}

							$width = '';

							if ( in_array( $key, array( 'sort', 'status', 'action' ), true ) ) {
								$width = '1%';
							}

							$method_title = $gateway->get_method_title() ? $gateway->get_method_title() : $gateway->get_title();
							$custom_title = $gateway->get_title();

							echo '<td class="' . esc_attr( $key ) . '" width="' . esc_attr( $width ) . '">';

							switch ( $key ) {
								case 'sort':
									?>
									<div class="wc-item-reorder-nav">
										<button type="button" class="wc-move-up" tabindex="0" aria-hidden="false" aria-label="<?php /* Translators: %s Payment gateway name. */ echo esc_attr( sprintf( __( 'Move the "%s" payment method up', 'woocommerce' ), $method_title ) ); ?>"><?php esc_html_e( 'Move up', 'woocommerce' ); ?></button>
										<button type="button" class="wc-move-down" tabindex="0" aria-hidden="false" aria-label="<?php /* Translators: %s Payment gateway name. */ echo esc_attr( sprintf( __( 'Move the "%s" payment method down', 'woocommerce' ), $method_title ) ); ?>"><?php esc_html_e( 'Move down', 'woocommerce' ); ?></button>
										<input type="hidden" name="gateway_order[]" value="<?php echo esc_attr( $gateway->id ); ?>" />
									</div>
									<?php
									break;
								case 'name':
									echo '<a href="' . esc_url( admin_url( 'admin.php?page=wc-settings&tab=checkout&section=' . strtolower( $gateway->id ) ) ) . '" class="wc-payment-gateway-method-title">' . wp_kses_post( $method_title ) . '</a>';

									if ( $method_title !== $custom_title ) {
										echo '<span class="wc-payment-gateway-method-name">&nbsp;&ndash;&nbsp;' . wp_kses_post( $custom_title ) . '</span>';
									}
									break;
								case 'description':
									echo wp_kses_post( $gateway->get_method_description() );
									break;
								case 'action':
									if ( wc_string_to_bool( $gateway->enabled ) ) {
										/* Translators: %s Payment gateway name. */
										echo '<a class="button alignright" aria-label="' . esc_attr( sprintf( __( 'Manage the "%s" payment method', 'woocommerce' ), $method_title ) ) . '" href="' . esc_url( admin_url( 'admin.php?page=wc-settings&tab=checkout&section=' . strtolower( $gateway->id ) ) ) . '">' . esc_html__( 'Manage', 'woocommerce' ) . '</a>';
									} else {
										if (
											'WooCommerce Payments' === $method_title &&
											class_exists( 'WC_Payments_Account' )
										) {
											$setup_url = WC_Payments_Account::get_connect_url();
										} else {
											$setup_url = admin_url( 'admin.php?page=wc-settings&tab=checkout&section=' . strtolower( $gateway->id ) );
										}
										/* Translators: %s Payment gateway name. */
										echo '<a class="button alignright" aria-label="' . esc_attr( sprintf( __( 'Set up the "%s" payment method', 'woocommerce' ), $method_title ) ) . '" href="' . esc_url( $setup_url ) . '">' . esc_html__( 'Finish set up', 'woocommerce' ) . '</a>';
									}
									break;
								case 'status':
									echo '<a class="wc-payment-gateway-method-toggle-enabled" href="' . esc_url( admin_url( 'admin.php?page=wc-settings&tab=checkout&section=' . strtolower( $gateway->id ) ) ) . '">';
									if ( wc_string_to_bool( $gateway->enabled ) ) {
										/* Translators: %s Payment gateway name. */
										echo '<span class="woocommerce-input-toggle woocommerce-input-toggle--enabled" aria-label="' . esc_attr( sprintf( __( 'The "%s" payment method is currently enabled', 'woocommerce' ), $method_title ) ) . '">' . esc_attr__( 'Yes', 'woocommerce' ) . '</span>';
									} else {
										/* Translators: %s Payment gateway name. */
										echo '<span class="woocommerce-input-toggle woocommerce-input-toggle--disabled" aria-label="' . esc_attr( sprintf( __( 'The "%s" payment method is currently disabled', 'woocommerce' ), $method_title ) ) . '">' . esc_attr__( 'No', 'woocommerce' ) . '</span>';
									}
									echo '</a>';
									break;
							}

							echo '</td>';
						}

						echo '</tr>';
					}
					/**
					 * Add "Other payment methods" link in WooCommerce -> Settings -> Payments
					 * When the store is in WC Payments eligible country.
					 * See https://github.com/woocommerce/woocommerce/issues/32130 for more details.
					 */
					if ( WooCommercePayments::is_supported() ) {
						$wcpay_setup        = isset( $payment_gateways['woocommerce_payments'] ) && ! $payment_gateways['woocommerce_payments']->needs_setup();
						$country            = wc_get_base_location()['country'];
						$plugin_suggestions = Init::get_suggestions();
						$active_plugins     = PluginsHelper::get_active_plugin_slugs();

						if ( $wcpay_setup ) {
							$link_text = __( 'Discover additional payment providers', 'woocommerce' );
							$filter_by = 'category_additional';
						} else {
							$link_text = __( 'Discover other payment providers', 'woocommerce' );
							$filter_by = 'category_other';
						}

						$plugin_suggestions = array_filter(
							$plugin_suggestions,
							function( $plugin ) use ( $country, $filter_by, $active_plugins ) {
								if ( ! isset( $plugin->{$filter_by} ) || ! isset( $plugin->image_72x72 ) || ! isset( $plugin->plugins[0] ) || in_array( $plugin->plugins[0], $active_plugins, true ) ) {
									return false;
								}
								return in_array( $country, $plugin->{$filter_by}, true );
							}
						);

						$columns_count = count( $columns );

						$external_link_icon = '<svg style="margin-left: 4px" class="gridicon gridicons-external needs-offset" height="18" width="18" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><g><path d="M19 13v6a2 2 0 01-2 2H5a2 2 0 01-2-2V7a2 2 0 012-2h6v2H5v12h12v-6h2zM13 3v2h4.586l-7.793 7.793 1.414 1.414L19 6.414V11h2V3h-8z"></path></g></svg>';
						echo '<tr>';
						// phpcs:ignore -- ignoring the error since the value is harded.
						echo "<td style='border-top: 1px solid #c3c4c7; background-color: #fff' colspan='{$columns_count}'>";
						echo "<a id='settings-other-payment-methods' href='https://woocommerce.com/product-category/woocommerce-extensions/payment-gateways/?utm_source=payments_recommendations' target='_blank' class='components-button is-tertiary'>";
						// phpcs:ignore
						echo $link_text;
						// phpcs:ignore
						echo $external_link_icon;
						echo '</a>';
						if ( count( $plugin_suggestions ) ) {
							foreach ( $plugin_suggestions as $plugin_suggestion ) {
								$alt = str_replace( '.png', '', basename( $plugin_suggestion->image_72x72 ) );
								// phpcs:ignore
								echo "<img src='{$plugin_suggestion->image_72x72}' alt='${alt}' width='24' height='24' style='vertical-align: middle; margin-right: 8px;'/>";
							}
							echo '& more.';
						}
						echo '</td>';
						echo '</tr>';
					}
					?>
				</tbody>
			</table>
		</td>
	</tr>
	<?php
}