PluginProbe ʕ •ᴥ•ʔ
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 24.8.1
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v24.8.1
27.8 27.7 27.6 27.5 trunk 18.0 18.1 18.2 18.3 18.4 18.4.1 18.5 18.5.1 18.6 18.7 18.8 18.9 19.0 19.1 19.10 19.11 19.12 19.13 19.14 19.2 19.3 19.4 19.5 19.5.1 19.6 19.6.1 19.7 19.7.1 19.7.2 19.8 19.9 20.0 20.1 20.10 20.11 20.12 20.13 20.2 20.2.1 20.3 20.4 20.5 20.6 20.7 20.8 20.9 21.0 21.1 21.2 21.3 21.4 21.5 21.6 21.7 21.8 21.8.1 21.9 21.9.1 22.0 22.1 22.2 22.3 22.4 22.5 22.6 22.7 22.8 22.9 23.0 23.1 23.2 23.3 23.4 23.5 23.6 23.7 23.8 23.9 24.0 24.1 24.2 24.3 24.4 24.5 24.6 24.7 24.8 24.8.1 24.9 25.0 25.1 25.2 25.3 25.3.1 25.4 25.5 25.6 25.7 25.8 25.9 26.0 26.1 26.1.1 26.2 26.3 26.4 26.5 26.6 26.7 26.8 26.9 27.0 27.1 27.1.1 27.2 27.3 27.4
wordpress-seo / src / routes / workouts-route.php
wordpress-seo / src / routes Last commit date
abstract-action-route.php 4 years ago abstract-indexation-route.php 4 years ago alert-dismissal-route.php 2 years ago first-time-configuration-route.php 1 year ago importing-route.php 2 years ago indexables-head-route.php 2 years ago indexing-route.php 2 years ago integrations-route.php 1 year ago meta-search-route.php 2 years ago route-interface.php 5 years ago semrush-route.php 2 years ago supported-features-route.php 2 years ago wincher-route.php 2 years ago workouts-route.php 1 year ago yoast-head-rest-field.php 2 years ago
workouts-route.php
130 lines
1 <?php
2
3 namespace Yoast\WP\SEO\Routes;
4
5 use WP_REST_Request;
6 use WP_REST_Response;
7 use Yoast\WP\SEO\Conditionals\No_Conditionals;
8 use Yoast\WP\SEO\Helpers\Options_Helper;
9 use Yoast\WP\SEO\Main;
10
11 /**
12 * Workouts_Route class.
13 */
14 class Workouts_Route implements Route_Interface {
15
16 use No_Conditionals;
17
18 /**
19 * Represents workouts route.
20 *
21 * @var string
22 */
23 public const WORKOUTS_ROUTE = '/workouts';
24
25 /**
26 * The Options helper.
27 *
28 * @var Options_Helper
29 */
30 private $options_helper;
31
32 /**
33 * Workouts_Route constructor.
34 *
35 * @param Options_Helper $options_helper The options helper.
36 */
37 public function __construct(
38 Options_Helper $options_helper
39 ) {
40 $this->options_helper = $options_helper;
41 }
42
43 /**
44 * Registers routes with WordPress.
45 *
46 * @return void
47 */
48 public function register_routes() {
49 $edit_others_posts = static function () {
50 return \current_user_can( 'edit_others_posts' );
51 };
52
53 $workouts_route = [
54 [
55 'methods' => 'GET',
56 'callback' => [ $this, 'get_workouts' ],
57 'permission_callback' => $edit_others_posts,
58 ],
59 [
60 'methods' => 'POST',
61 'callback' => [ $this, 'set_workouts' ],
62 'permission_callback' => $edit_others_posts,
63 'args' => $this->get_workouts_routes_args(),
64 ],
65 ];
66
67 \register_rest_route( Main::API_V1_NAMESPACE, self::WORKOUTS_ROUTE, $workouts_route );
68 }
69
70 /**
71 * Returns the workouts as configured for the site.
72 *
73 * @return WP_REST_Response the configuration of the workouts.
74 */
75 public function get_workouts() {
76 $workouts_option = $this->options_helper->get( 'workouts_data' );
77
78 /**
79 * Filter: 'Yoast\WP\SEO\workouts_options' - Allows adding workouts options by the add-ons.
80 *
81 * @param array $workouts_option The content of the `workouts_data` option in Free.
82 */
83 $workouts_option = \apply_filters( 'Yoast\WP\SEO\workouts_options', $workouts_option );
84
85 return new WP_REST_Response(
86 [ 'json' => $workouts_option ]
87 );
88 }
89
90 /**
91 * Sets the workout configuration.
92 *
93 * @param WP_REST_Request $request The request object.
94 *
95 * @return WP_REST_Response the configuration of the workouts.
96 */
97 public function set_workouts( $request ) {
98 $workouts_data = $request->get_json_params();
99
100 /**
101 * Filter: 'Yoast\WP\SEO\workouts_route_save' - Allows the add-ons to save the options data in their own options.
102 *
103 * @param mixed|null $result The result of the previous saving operation.
104 *
105 * @param array $workouts_data The full set of workouts option data to save.
106 */
107 $result = \apply_filters( 'Yoast\WP\SEO\workouts_route_save', null, $workouts_data );
108
109 return new WP_REST_Response(
110 [ 'json' => $result ]
111 );
112 }
113
114 /**
115 * Gets the args for all the registered workouts.
116 *
117 * @return array
118 */
119 private function get_workouts_routes_args() {
120 $args_array = [];
121
122 /**
123 * Filter: 'Yoast\WP\SEO\workouts_route_args' - Allows the add-ons add their own arguments to the route registration.
124 *
125 * @param array $args_array The array of arguments for the route registration.
126 */
127 return \apply_filters( 'Yoast\WP\SEO\workouts_route_args', $args_array );
128 }
129 }
130