✏️ 编辑:WC_REST_Square_Cash_App_Settings_Controller.php
路径:
/home/forge/woocommerce-square/includes/Admin/Rest/WC_REST_Square_Cash_App_Settings_Controller.php
大小:4.2 KB · 修改:2025-12-23 20:26:26 · 权限:0644 · 可写
← 返回目录
👁 查看
⬇ 下载
<?php /** * Class WC_REST_Square_Cash_App_Settings_Controller file. */ namespace WooCommerce\Square\Admin\Rest; use WP_REST_Server; use WP_REST_Request; use WP_REST_Response; defined( 'ABSPATH' ) || exit; /** * Class WC_REST_Square_Cash_App_Settings_Controller. * * @since 4.7.0 */ class WC_REST_Square_Cash_App_Settings_Controller extends WC_Square_REST_Base_Controller { /** * Square settings option name. * * @var string */ const SQUARE_CASH_APP_SETTINGS_OPTION_NAME = 'woocommerce_square_cash_app_pay_settings'; /** * Endpoint path. * * @var string */ protected $rest_base = 'wc_square/cash_app_settings'; /** * Allowed parameters. * * @var array */ private $allowed_params; /** * Constructor. */ public function __construct() { $this->allowed_params = array( 'enabled', 'title', 'description', 'transaction_type', 'button_theme', 'charge_virtual_orders', 'enable_paid_capture', 'button_shape', ); add_action( 'rest_api_init', array( $this, 'register_routes' ) ); } /** * Register routes. */ public function register_routes() { register_rest_route( $this->namespace, '/' . $this->rest_base, array( 'methods' => WP_REST_Server::READABLE, 'callback' => array( $this, 'get_settings' ), 'permission_callback' => array( $this, 'check_permission' ), ) ); register_rest_route( $this->namespace, '/' . $this->rest_base, array( 'methods' => WP_REST_Server::EDITABLE, 'callback' => array( $this, 'save_settings' ), 'permission_callback' => array( $this, 'check_permission' ), 'args' => array( 'enabled' => array( 'description' => __( 'Enable Square payment gateway.', 'woocommerce-square' ), 'type' => 'string', 'sanitize_callback' => '', ), 'title' => array( 'description' => __( 'Square payment gateway title.', 'woocommerce-square' ), 'type' => 'string', 'sanitize_callback' => '', ), 'description' => array( 'description' => __( 'Square payment gateway description.', 'woocommerce-square' ), 'type' => 'string', 'sanitize_callback' => '', ), 'transaction_type' => array( 'description' => __( 'The transaction type.', 'woocommerce-square' ), 'type' => 'string', 'sanitize_callback' => '', ), 'charge_virtual_orders' => array( 'description' => __( 'If the order contains exclusively virtual items, enable this to immediately charge, rather than authorize, the transaction.', 'woocommerce-square' ), 'type' => 'string', 'sanitize_callback' => '', ), 'enable_paid_capture' => array( 'description' => __( 'Automatically capture orders when they are changed to Processing or Completed.', 'woocommerce-square' ), 'type' => 'string', 'sanitize_callback' => '', ), 'button_theme' => array( 'description' => __( 'Button Theme.', 'woocommerce-square' ), 'type' => 'string', 'sanitize_callback' => '', ), 'button_shape' => array( 'description' => __( 'Button Shape.', 'woocommerce-square' ), 'type' => 'string', 'sanitize_callback' => '', ), ), ) ); } /** * Get the data. * * @return WP_REST_Response */ public function get_settings() { $square_settings = get_option( self::SQUARE_CASH_APP_SETTINGS_OPTION_NAME, array() ); $filtered_settings = array_intersect_key( $square_settings, array_flip( $this->allowed_params ) ); return new WP_REST_Response( $filtered_settings ); } /** * Update the data. * * @param WP_REST_Request $request Full data about the request. */ public function save_settings( WP_REST_Request $request ) { $settings = array(); foreach ( $this->allowed_params as $index => $key ) { $new_value = wc_clean( wp_unslash( $request->get_param( $key ) ) ); $settings[ $key ] = $new_value; } update_option( self::SQUARE_CASH_APP_SETTINGS_OPTION_NAME, $settings ); wp_send_json_success(); } }
💾 保存
取消
保存为 UTF-8,换行统一为 LF