PluginProbe ʕ •ᴥ•ʔ
Yoast SEO – Advanced SEO with real-time guidance and built-in AI / 27.7
Yoast SEO – Advanced SEO with real-time guidance and built-in AI v27.7
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
endpoint 2 months ago abstract-action-route.php 3 months ago abstract-indexation-route.php 4 years ago alert-dismissal-route.php 3 months ago first-time-configuration-route.php 3 months ago importing-route.php 3 months ago indexables-head-route.php 2 years ago indexing-route.php 3 months ago integrations-route.php 3 months ago meta-search-route.php 6 months ago route-interface.php 5 years ago semrush-route.php 3 months ago supported-features-route.php 3 months ago wincher-route.php 2 years ago workouts-route.php 3 months ago yoast-head-rest-field.php 2 years ago
workouts-route.php
128 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( Options_Helper $options_helper ) {
38 $this->options_helper = $options_helper;
39 }
40
41 /**
42 * Registers routes with WordPress.
43 *
44 * @return void
45 */
46 public function register_routes() {
47 $edit_others_posts = static function () {
48 return \current_user_can( 'edit_others_posts' );
49 };
50
51 $workouts_route = [
52 [
53 'methods' => 'GET',
54 'callback' => [ $this, 'get_workouts' ],
55 'permission_callback' => $edit_others_posts,
56 ],
57 [
58 'methods' => 'POST',
59 'callback' => [ $this, 'set_workouts' ],
60 'permission_callback' => $edit_others_posts,
61 'args' => $this->get_workouts_routes_args(),
62 ],
63 ];
64
65 \register_rest_route( Main::API_V1_NAMESPACE, self::WORKOUTS_ROUTE, $workouts_route );
66 }
67
68 /**
69 * Returns the workouts as configured for the site.
70 *
71 * @return WP_REST_Response the configuration of the workouts.
72 */
73 public function get_workouts() {
74 $workouts_option = $this->options_helper->get( 'workouts_data' );
75
76 /**
77 * Filter: 'Yoast\WP\SEO\workouts_options' - Allows adding workouts options by the add-ons.
78 *
79 * @param array $workouts_option The content of the `workouts_data` option in Free.
80 */
81 $workouts_option = \apply_filters( 'Yoast\WP\SEO\workouts_options', $workouts_option );
82
83 return new WP_REST_Response(
84 [ 'json' => $workouts_option ],
85 );
86 }
87
88 /**
89 * Sets the workout configuration.
90 *
91 * @param WP_REST_Request $request The request object.
92 *
93 * @return WP_REST_Response the configuration of the workouts.
94 */
95 public function set_workouts( $request ) {
96 $workouts_data = $request->get_json_params();
97
98 /**
99 * Filter: 'Yoast\WP\SEO\workouts_route_save' - Allows the add-ons to save the options data in their own options.
100 *
101 * @param mixed|null $result The result of the previous saving operation.
102 *
103 * @param array $workouts_data The full set of workouts option data to save.
104 */
105 $result = \apply_filters( 'Yoast\WP\SEO\workouts_route_save', null, $workouts_data );
106
107 return new WP_REST_Response(
108 [ 'json' => $result ],
109 );
110 }
111
112 /**
113 * Gets the args for all the registered workouts.
114 *
115 * @return array
116 */
117 private function get_workouts_routes_args() {
118 $args_array = [];
119
120 /**
121 * Filter: 'Yoast\WP\SEO\workouts_route_args' - Allows the add-ons add their own arguments to the route registration.
122 *
123 * @param array $args_array The array of arguments for the route registration.
124 */
125 return \apply_filters( 'Yoast\WP\SEO\workouts_route_args', $args_array );
126 }
127 }
128