Revision
extends AbstractRevisionPersistance
in package
Uses
UtilsProvider
Create a mechanism to catch all settings and create an unique revision.
Note: A revision holds any option in "raw", so there isn't any filter or postprocess like a getter.
Table of Contents
Constants
- OPTION_NAME_CURRENT_HASH_PREFIX = RCB_OPT_PREFIX . '-revision-current-hash'
- TABLE_NAME = 'revision'
- TABLE_NAME_INDEPENDENT = 'revision_independent'
Properties
Methods
- alterRevision() : array<string|int, mixed>
- Overwrite this method to modify the revision object. This allows you to add additional data to the revision.
- alterRevisionIndependent() : array<string|int, mixed>
- Overwrite this method to modify the independent revision object. This allows you to add additional data to the revision.
- applyBackwardsCompatibility() : mixed
- See filter `RCB/Revision/BackwardsCompatibility`.
- getByHash() : mixed
- Get the revision(s) by hash(es).
- getContextVariablesExplicit() : array<string|int, mixed>
- Get explicit context relevant options like language code (WPML, PolyLang). If the language changes, a new revision will be created or requested so they are completely independent.
- getContextVariablesImplicit() : mixed
- Get implicit context relevant options like blog id. Implicit context variables are not populated to the context, nor to the revision. Use this only if you want to modify the cookie name!
- getContextVariablesString() : mixed
- Get context relevant options as string so they can be used as cookie name or option name.
- getCurrent() : mixed
- Get the current revision as array. It also includes the following infos:
- getCurrentHash() : mixed
- Get the current active revision hash. Can also return a falsy value when no hash is currently generated.
- getCurrentHashOptionName() : mixed
- Get the option for the current hash option name in `wp_options`.
- getCurrentHashTime() : int
- Get the time when the current active revision hash got updated. Can also return `0` value when no hash is currently generated.
- getInstance() : mixed
- Get singleton instance.
- getPluginConstantPrefix() : string
- Get the prefix of this plugin so composer packages can dynamically build other constant values on it.
- getRevision() : mixed
- Getter.
- needsRetrigger() : bool
- Checks if the given current revision (result of `getCurrent`) needs a retrigger.
- persist() : mixed
- Persist an revision JSON string to database.
- persistIndependent() : mixed
- Persist an independent revision JSON string to database.
- setRevision() : mixed
- Setter.
- translateContextVariablesString() : string
- See filter RCB/Revision/Context/Translate.
- __construct() : mixed
- C'tor.
Constants
OPTION_NAME_CURRENT_HASH_PREFIX
public
mixed
OPTION_NAME_CURRENT_HASH_PREFIX
= RCB_OPT_PREFIX . '-revision-current-hash'
TABLE_NAME
public
mixed
TABLE_NAME
= 'revision'
TABLE_NAME_INDEPENDENT
public
mixed
TABLE_NAME_INDEPENDENT
= 'revision_independent'
Properties
$me
Singleton instance.
private
static Revision
$me
= null
$revision
See `Revision`.
private
Revision
$revision
Methods
alterRevision()
Overwrite this method to modify the revision object. This allows you to add additional data to the revision.
public
alterRevision(mixed &$revision) : array<string|int, mixed>
Parameters
- $revision : mixed
Return values
array<string|int, mixed>alterRevisionIndependent()
Overwrite this method to modify the independent revision object. This allows you to add additional data to the revision.
public
alterRevisionIndependent(mixed &$revision) : array<string|int, mixed>
Parameters
- $revision : mixed
Return values
array<string|int, mixed>applyBackwardsCompatibility()
See filter `RCB/Revision/BackwardsCompatibility`.
public
applyBackwardsCompatibility(array<string|int, mixed> $revision[, bool $independent = false ]) : mixed
Parameters
- $revision : array<string|int, mixed>
- $independent : bool = false
getByHash()
Get the revision(s) by hash(es).
public
getByHash(string|array<string|int, string> $hash[, bool $independent = false ][, bool $applyBackwardsCompatibility = false ]) : mixed
Parameters
- $hash : string|array<string|int, string>
- $independent : bool = false
- $applyBackwardsCompatibility : bool = false
-
See method
applyBackwardsCompatibility
getContextVariablesExplicit()
Get explicit context relevant options like language code (WPML, PolyLang). If the language changes, a new revision will be created or requested so they are completely independent.
public
getContextVariablesExplicit() : array<string|int, mixed>
They also get populated to the generated revision.
Warning: Cookie names cannot contain any of the following '=,; \t\r\n\013\014', so please make
sure such characters are not stored in your value (if so, they get replaced with underscore _
).
Return values
array<string|int, mixed>getContextVariablesImplicit()
Get implicit context relevant options like blog id. Implicit context variables are not populated to the context, nor to the revision. Use this only if you want to modify the cookie name!
public
getContextVariablesImplicit() : mixed
Warning: Cookie names cannot contain any of the following '=,; \t\r\n\013\014', so please make
sure such characters are not stored in your value (if so, they get replaced with underscore _
).
getContextVariablesString()
Get context relevant options as string so they can be used as cookie name or option name.
public
getContextVariablesString([bool $implicit = false ]) : mixed
Parameters
- $implicit : bool = false
-
If
true
, implicit context variables are parsed, otherwise explicit context variables
getCurrent()
Get the current revision as array. It also includes the following infos:
public
getCurrent([bool $recreate = false ]) : mixed
-
public_to_users
: The revision hash currently published to users -
calculated
: The current revision hash from the latest settings -
created_tag_managers
: Has a cookie with a valid Google/Matomo Tag Manager script (so you can show a notice in your config UI) -
public_count
: A total count of public cookies
Parameters
- $recreate : bool = false
-
If true, a new revision gets created so new consents need to be made. Always recreates when no consents are given yet.
getCurrentHash()
Get the current active revision hash. Can also return a falsy value when no hash is currently generated.
public
getCurrentHash() : mixed
getCurrentHashOptionName()
Get the option for the current hash option name in `wp_options`.
public
getCurrentHashOptionName() : mixed
The option holds two values in format {{hash}}:{{timeStamp}}
.
getCurrentHashTime()
Get the time when the current active revision hash got updated. Can also return `0` value when no hash is currently generated.
public
getCurrentHashTime() : int
Return values
intgetInstance()
Get singleton instance.
public
static getInstance() : mixed
Tags
getPluginConstantPrefix()
Get the prefix of this plugin so composer packages can dynamically build other constant values on it.
public
getPluginConstantPrefix() : string
Tags
Return values
stringgetRevision()
Getter.
public
getRevision() : mixed
Tags
needsRetrigger()
Checks if the given current revision (result of `getCurrent`) needs a retrigger.
public
needsRetrigger(array<string|int, mixed> $revision) : bool
Parameters
- $revision : array<string|int, mixed>
-
Result of
getCurrent
Return values
boolpersist()
Persist an revision JSON string to database.
public
persist(mixed $result, mixed $forceNewConsent) : mixed
Parameters
- $result : mixed
-
revision
andhash
- $forceNewConsent : mixed
-
If
true
update the hash to the database sogetCurrentHash()
returns that hash andgetCurrentHashTime()
returns the time of hash update
persistIndependent()
Persist an independent revision JSON string to database.
public
persistIndependent(mixed $result) : mixed
Parameters
- $result : mixed
-
revision
andhash
setRevision()
Setter.
public
setRevision(Revision $revision) : mixed
Parameters
- $revision : Revision
Tags
translateContextVariablesString()
See filter RCB/Revision/Context/Translate.
public
translateContextVariablesString(string $context) : string
Parameters
- $context : string
Return values
string__construct()
C'tor.
private
__construct() : mixed