33namespace WCPOS \WooCommercePOS \API ;
44
55use Closure ;
6+ use WCPOS \WooCommercePOS \Services \Settings as SettingsService ;
7+ use const WCPOS \WooCommercePOS \SHORT_NAME ;
68use WP_Error ;
9+ use WP_REST_Controller ;
710use WP_REST_Request ;
811use WP_REST_Response ;
912use WP_REST_Server ;
10- use WCPOS \WooCommercePOS \Services \Settings as SettingsService ;
11- use WP_REST_Controller ;
12- use const WCPOS \WooCommercePOS \SHORT_NAME ;
1313
1414/**
15- * Class Settings REST API
15+ * Class Settings REST API.
1616 */
1717class Settings extends WP_REST_Controller {
1818 /**
@@ -152,7 +152,7 @@ public function register_routes(): void {
152152 array (
153153 'methods ' => WP_REST_Server::EDITABLE ,
154154 'callback ' => array ( $ this , 'update_access_settings ' ),
155- 'permission_callback ' => array ( $ this , 'access_permission_check ' ),
155+ 'permission_callback ' => array ( $ this , 'update_access_permission_check ' ),
156156 )
157157 );
158158
@@ -172,7 +172,7 @@ public function register_routes(): void {
172172 array (
173173 'methods ' => WP_REST_Server::EDITABLE ,
174174 'callback ' => array ( $ this , 'update_tools_settings ' ),
175- 'permission_callback ' => array ( $ this , 'access_permission_check ' ),
175+ 'permission_callback ' => array ( $ this , 'update_permission_check ' ),
176176 )
177177 );
178178
@@ -405,6 +405,7 @@ public function update_payment_gateways_settings( WP_REST_Request $request ) {
405405 $ updated_settings = array_replace_recursive ( $ old_settings , $ request ->get_json_params () );
406406
407407 $ settings_service = SettingsService::instance ();
408+
408409 return $ settings_service ->save_settings ( 'payment_gateways ' , $ updated_settings );
409410 }
410411
@@ -419,9 +420,10 @@ public function update_payment_gateways_settings( WP_REST_Request $request ) {
419420 */
420421 public function update_general_settings ( WP_REST_Request $ request ) {
421422 $ old_settings = woocommerce_pos_get_settings ( 'general ' );
422- $ settings = array_replace_recursive ( $ old_settings , $ request ->get_json_params () );
423+ $ settings = array_replace_recursive ( $ old_settings , $ request ->get_json_params () );
423424
424425 $ settings_service = SettingsService::instance ();
426+
425427 return $ settings_service ->save_settings ( 'general ' , $ settings );
426428 }
427429
@@ -436,9 +438,10 @@ public function update_general_settings( WP_REST_Request $request ) {
436438 */
437439 public function update_checkout_settings ( WP_REST_Request $ request ) {
438440 $ old_settings = woocommerce_pos_get_settings ( 'checkout ' );
439- $ settings = array_replace_recursive ( $ old_settings , $ request ->get_json_params () );
441+ $ settings = array_replace_recursive ( $ old_settings , $ request ->get_json_params () );
440442
441443 $ settings_service = SettingsService::instance ();
444+
442445 return $ settings_service ->save_settings ( 'checkout ' , $ settings );
443446 }
444447
@@ -501,9 +504,10 @@ public function update_access_settings( WP_REST_Request $request ): array {
501504 */
502505 public function update_tools_settings ( WP_REST_Request $ request ) {
503506 $ old_settings = woocommerce_pos_get_settings ( 'tools ' );
504- $ settings = array_replace_recursive ( $ old_settings , $ request ->get_json_params () );
507+ $ settings = array_replace_recursive ( $ old_settings , $ request ->get_json_params () );
505508
506509 $ settings_service = SettingsService::instance ();
510+
507511 return $ settings_service ->save_settings ( 'tools ' , $ settings );
508512 }
509513
@@ -513,8 +517,7 @@ public function update_tools_settings( WP_REST_Request $request ) {
513517 * @return bool
514518 */
515519 public function read_permission_check (): bool {
516- // return current_user_can( 'manage_woocommerce_pos' );
517- return true ;
520+ return current_user_can ( 'manage_woocommerce_pos ' );
518521 }
519522
520523 /**
@@ -527,8 +530,8 @@ public function update_permission_check(): bool {
527530 /**
528531 * @return bool
529532 */
530- public function access_permission_check (): bool {
531- return current_user_can ( 'promote_users ' );
533+ public function update_access_permission_check (): bool {
534+ return current_user_can ( 'edit_users ' ) && current_user_can ( ' promote_users ' );
532535 }
533536
534537 /**
@@ -549,9 +552,12 @@ public function payment_gateways_settings( $options ) {
549552
550553 /**
551554 * Temporary fix for stale license status transient. Remove when possible.
555+ *
556+ * @param mixed $value
552557 */
553558 public function remove_license_transient ( $ value ) {
554559 delete_transient ( 'woocommerce_pos_pro_license_status ' );
560+
555561 return $ value ;
556562 }
557563}
0 commit comments