3
3
namespace WCPOS \WooCommercePOS \API ;
4
4
5
5
use Closure ;
6
+ use WCPOS \WooCommercePOS \Services \Settings as SettingsService ;
7
+ use const WCPOS \WooCommercePOS \SHORT_NAME ;
6
8
use WP_Error ;
9
+ use WP_REST_Controller ;
7
10
use WP_REST_Request ;
8
11
use WP_REST_Response ;
9
12
use WP_REST_Server ;
10
- use WCPOS \WooCommercePOS \Services \Settings as SettingsService ;
11
- use WP_REST_Controller ;
12
- use const WCPOS \WooCommercePOS \SHORT_NAME ;
13
13
14
14
/**
15
- * Class Settings REST API
15
+ * Class Settings REST API.
16
16
*/
17
17
class Settings extends WP_REST_Controller {
18
18
/**
@@ -152,7 +152,7 @@ public function register_routes(): void {
152
152
array (
153
153
'methods ' => WP_REST_Server::EDITABLE ,
154
154
'callback ' => array ( $ this , 'update_access_settings ' ),
155
- 'permission_callback ' => array ( $ this , 'access_permission_check ' ),
155
+ 'permission_callback ' => array ( $ this , 'update_access_permission_check ' ),
156
156
)
157
157
);
158
158
@@ -172,7 +172,7 @@ public function register_routes(): void {
172
172
array (
173
173
'methods ' => WP_REST_Server::EDITABLE ,
174
174
'callback ' => array ( $ this , 'update_tools_settings ' ),
175
- 'permission_callback ' => array ( $ this , 'access_permission_check ' ),
175
+ 'permission_callback ' => array ( $ this , 'update_permission_check ' ),
176
176
)
177
177
);
178
178
@@ -405,6 +405,7 @@ public function update_payment_gateways_settings( WP_REST_Request $request ) {
405
405
$ updated_settings = array_replace_recursive ( $ old_settings , $ request ->get_json_params () );
406
406
407
407
$ settings_service = SettingsService::instance ();
408
+
408
409
return $ settings_service ->save_settings ( 'payment_gateways ' , $ updated_settings );
409
410
}
410
411
@@ -419,9 +420,10 @@ public function update_payment_gateways_settings( WP_REST_Request $request ) {
419
420
*/
420
421
public function update_general_settings ( WP_REST_Request $ request ) {
421
422
$ 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 () );
423
424
424
425
$ settings_service = SettingsService::instance ();
426
+
425
427
return $ settings_service ->save_settings ( 'general ' , $ settings );
426
428
}
427
429
@@ -436,9 +438,10 @@ public function update_general_settings( WP_REST_Request $request ) {
436
438
*/
437
439
public function update_checkout_settings ( WP_REST_Request $ request ) {
438
440
$ 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 () );
440
442
441
443
$ settings_service = SettingsService::instance ();
444
+
442
445
return $ settings_service ->save_settings ( 'checkout ' , $ settings );
443
446
}
444
447
@@ -501,9 +504,10 @@ public function update_access_settings( WP_REST_Request $request ): array {
501
504
*/
502
505
public function update_tools_settings ( WP_REST_Request $ request ) {
503
506
$ 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 () );
505
508
506
509
$ settings_service = SettingsService::instance ();
510
+
507
511
return $ settings_service ->save_settings ( 'tools ' , $ settings );
508
512
}
509
513
@@ -513,8 +517,7 @@ public function update_tools_settings( WP_REST_Request $request ) {
513
517
* @return bool
514
518
*/
515
519
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 ' );
518
521
}
519
522
520
523
/**
@@ -527,8 +530,8 @@ public function update_permission_check(): bool {
527
530
/**
528
531
* @return bool
529
532
*/
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 ' );
532
535
}
533
536
534
537
/**
@@ -549,9 +552,12 @@ public function payment_gateways_settings( $options ) {
549
552
550
553
/**
551
554
* Temporary fix for stale license status transient. Remove when possible.
555
+ *
556
+ * @param mixed $value
552
557
*/
553
558
public function remove_license_transient ( $ value ) {
554
559
delete_transient ( 'woocommerce_pos_pro_license_status ' );
560
+
555
561
return $ value ;
556
562
}
557
563
}
0 commit comments