Automattic\WooCommerce\Internal\OrderWithdrawal

OrderWithdrawalController::add_endpoint_setting │ public │ WC 11.1.0

Add the endpoint setting when the feature is enabled.

Method of the class: OrderWithdrawalController{}

No Hooks.

Returns

array.

Usage

$OrderWithdrawalController = new OrderWithdrawalController();
$OrderWithdrawalController->add_endpoint_setting( $settings ): array;
$settings(array) (required)
Page settings.

Changelog

Since 11.1.0 Introduced.

OrderWithdrawalController::add_endpoint_setting() code WC 11.2.1

public function add_endpoint_setting( $settings ): array {
	if ( ! is_array( $settings ) ) {
		return array();
	}

	$endpoint_setting = array(
		'title'    => __( 'Order withdrawal', 'woocommerce' ),
		'desc'     => __( 'Endpoint for the order withdrawal page.', 'woocommerce' ),
		'id'       => self::ENDPOINT_OPTION,
		'type'     => 'text',
		'default'  => self::ENDPOINT_SLUG,
		'desc_tip' => true,
	);

	$new_settings = array();
	$added        = false;

	foreach ( $settings as $key => $setting ) {
		if ( is_array( $setting ) && self::ENDPOINT_OPTION === ( $setting['id'] ?? '' ) ) {
			return $settings;
		}

		if (
			! $added &&
			is_array( $setting ) &&
			'sectionend' === ( $setting['type'] ?? '' ) &&
			'account_endpoint_options' === ( $setting['id'] ?? '' )
		) {
			$new_settings[ self::ENDPOINT_OPTION ] = $endpoint_setting;
			$added                                 = true;
		}

		$new_settings[ $key ] = $setting;
	}

	if ( ! $added ) {
		$new_settings[ self::ENDPOINT_OPTION ] = $endpoint_setting;
	}

	return $new_settings;
}