feat(metering): dispatch RAS activity on content restriction #3437
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
All Submissions:
Changes proposed in this Pull Request:
1200550061930446-as-1208347477266676/f
Because our content restriction strategy implements new layers on top of Woo Memberships for metered content restriction, we don't fully support 3rd parties to leverage our implementation for their content features.
2 public methods can already be used to detect content restriction on the Newspack side:
Newspack\Memberships::is_post_restricted( $post_id );
: whether the post is restricted on the backend.Newspack\Memberships\Metering::is_metering();
: whether the restricted post (method above) should be allowed to render due to metering rules. This will always be reading from the global$post
and should only be used in ais_singular()
context.The second method will also return
true
if the metering is supposed to happen in the front-end (anonymous metering). That's what we don't have an API for.This PR proposes this API to be a listener on a RAS activity dispatch so that it can be used like this:
The data payload:
How to test the changes in this Pull Request:
localStorage
, and confirm thenp_reader_1_activity
item includes ametering_restricted
activity with the data payload as exemplified aboveOther information: