← All changes
|
_inc/lib/core-api/wpcom-endpoints/class-wpcom-rest-api-v2-endpoint-mailchimp.php
+34
-0
16.3-a.5
→
16.3-beta
View file →
| @@ -69,8 +69,22 @@ | ||
| 69 | 69 | 'permission_callback' => function () { |
| 70 | 70 | return current_user_can( 'manage_options' ); |
| 71 | 71 | }, |
| 72 | 72 | ), |
| 73 | + array( | |
| 74 | + 'methods' => WP_REST_Server::EDITABLE, | |
| 75 | + 'callback' => array( $this, 'update_mailchimp_settings' ), | |
| 76 | + 'permission_callback' => function () { | |
| 77 | + return current_user_can( 'manage_options' ); | |
| 78 | + }, | |
| 79 | + 'args' => array( | |
| 80 | + 'follower_list_id' => array( | |
| 81 | + 'type' => 'string', | |
| 82 | + 'required' => true, | |
| 83 | + 'sanitize_callback' => 'sanitize_text_field', | |
| 84 | + ), | |
| 85 | + ), | |
| 86 | + ), | |
| 73 | 87 | ) |
| 74 | 88 | ); |
| 75 | 89 | } |
| 76 | 90 | |
| @@ -186,8 +200,28 @@ | ||
| 186 | 200 | } |
| 187 | 201 | } |
| 188 | 202 | |
| 189 | 203 | return $settings; |
| 204 | + } | |
| 205 | + | |
| 206 | + /** | |
| 207 | + * Save the Mailchimp audience that block subscribers join. | |
| 208 | + * | |
| 209 | + * @since 16.3 | |
| 210 | + * | |
| 211 | + * @param WP_REST_Request $request The request. | |
| 212 | + * @return array|WP_Error | |
| 213 | + */ | |
| 214 | + public function update_mailchimp_settings( $request ) { | |
| 215 | + require_once JETPACK__PLUGIN_DIR . '_inc/lib/class-jetpack-mailchimp-helper.php'; | |
| 216 | + | |
| 217 | + $audience = $request['follower_list_id']; | |
| 218 | + $result = Jetpack_Mailchimp_Helper::save_audience( $audience ); | |
| 219 | + if ( is_wp_error( $result ) ) { | |
| 220 | + return new WP_Error( $result->get_error_code(), $result->get_error_message(), array( 'status' => 400 ) ); | |
| 221 | + } | |
| 222 | + | |
| 223 | + return array( 'follower_list_id' => $audience ); | |
| 190 | 224 | } |
| 191 | 225 | } |
| 192 | 226 | |
| 193 | 227 | wpcom_rest_api_v2_load_plugin( 'WPCOM_REST_API_V2_Endpoint_Mailchimp' ); |