| @@ -397,8 +397,14 @@ | ||
| 397 | 397 | if( ! $request->has_param('type') ) { |
| 398 | 398 | return $this->error( 'type' ); |
| 399 | 399 | } |
| 400 | 400 | |
| 401 | + // Country targeting search is available for every notification type, | |
| 402 | + // so route it by field regardless of the type/source. | |
| 403 | + if ( ! empty( $params['field'] ) && $params['field'] === 'country_targeting' ) { | |
| 404 | + return Targeting::restResponse( $request->get_json_params() ); | |
| 405 | + } | |
| 406 | + | |
| 401 | 407 | switch( $params['type'] ) { |
| 402 | 408 | case 'ContactForm' : |
| 403 | 409 | return ContactForm::restResponse( $request->get_json_params() ); |
| 404 | 410 | break; |
| @@ -582,8 +588,21 @@ | ||
| 582 | 588 | '/wp-json/notificationx/v1/notice', |
| 583 | 589 | '/wp-json/notificationx/v1/delete-cookies', |
| 584 | 590 | '/wp-json/notificationx/v1/import', |
| 585 | 591 | '/wp-json/notificationx/v1/export', |
| 592 | + | |
| 593 | + /* | |
| 594 | + * TRANSITIONAL — remove in the release after Pro ships its own | |
| 595 | + * NotificationXPro\Core\REST::jwt_whitelist() override. | |
| 596 | + * | |
| 597 | + * These four routes belong to Pro: the licensing library registers them | |
| 598 | + * into this namespace, and Pro now whitelists all six itself. They stay | |
| 599 | + * here for one release only because Free auto-updates from wp.org while | |
| 600 | + * Pro updates through the licensed channel, so "new Free + old Pro" is a | |
| 601 | + * normal state for a site, and an old Pro carries no override. Dropping | |
| 602 | + * them before Pro has propagated would take the entries to zero for those | |
| 603 | + * sites. Pro's override calls array_unique(), so the overlap is harmless. | |
| 604 | + */ | |
| 586 | 605 | '/wp-json/notificationx/v1/license/activate', |
| 587 | 606 | '/wp-json/notificationx/v1/license/deactivate', |
| 588 | 607 | '/wp-json/notificationx/v1/license/submit-otp', |
| 589 | 608 | '/wp-json/notificationx/v1/license/resend-otp', |