✏️ 编辑:WC_REST_Square_Gift_Cards_Settings_Controller.php
路径:
/home/forge/woocommerce-square/includes/Admin/Rest/WC_REST_Square_Gift_Cards_Settings_Controller.php
大小:3.61 KB · 修改:2025-12-23 20:26:26 · 权限:0644 · 可写
← 返回目录
👁 查看
⬇ 下载
<?php /** * Class WC_REST_Square_Gift_Cards_Settings_Controller file. */ namespace WooCommerce\Square\Admin\Rest; use WooCommerce\Square\Gateway\Gift_Card; use WP_REST_Server; use WP_REST_Request; use WP_REST_Response; defined( 'ABSPATH' ) || exit; /** * Class WC_REST_Square_Gift_Cards_Settings_Controller. * * @since 4.7.0 */ class WC_REST_Square_Gift_Cards_Settings_Controller extends WC_Square_REST_Base_Controller { /** * Endpoint path. * * @var string */ protected $rest_base = 'wc_square/gift_cards_settings'; /** * Allowed parameters. * * @var array */ private $allowed_params; /** * Constructor. */ public function __construct() { $this->allowed_params = array( 'enabled', 'title', 'description', 'is_default_placeholder', 'placeholder_id', ); 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' => '', ), 'is_default_placeholder' => array( 'description' => __( 'Indicates if a Gift card product should use the default placeholder provided by the plugin.', 'woocommerce-square' ), 'type' => 'string', 'sanitize_callback' => '', ), 'placeholder_id' => array( 'description' => __( 'ID of the placeholder media.', 'woocommerce-square' ), 'type' => 'integer', 'sanitize_callback' => '', ), ), ) ); } /** * Get the data. * * @return WP_REST_Response */ public function get_settings() { $square_settings = get_option( Gift_Card::SQUARE_PAYMENT_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( Gift_Card::SQUARE_PAYMENT_SETTINGS_OPTION_NAME, $settings ); /** * Action triggered when the Gift card payment settings are updated. * * @since 4.8.1 */ do_action( 'wc_square_' . Gift_Card::SQUARE_PAYMENT_SETTINGS_OPTION_NAME . '_settings_updated', $settings ); wp_send_json_success(); } }
💾 保存
取消
保存为 UTF-8,换行统一为 LF