LLMS_Engagement_Handler::create_actions( string $type, int $user_id, int $generated_id, string|int|null $related_id = '', int|null $engagement_id = null )
Runs post-creation actions when creating/awarding an achievement or certificate to a user.
Parameters Parameters
- $type
-
(string) (Required) The engagement type, either "achievement" or "certificate".
- $user_id
-
(int) (Required) WP_User ID of the student who earned the engagement.
- $generated_id
-
(int) (Required) WP_Post ID of the generated engagement post.
- $related_id
-
(string|int|null) (Optional) WP_Post ID of the related post triggering generation, an empty string (in the event of a user registration trigger) or null if not supplied.
Default value: ''
- $engagement_id
-
(int|null) (Optional) WP_Post ID of the engagement post used to configure engagement triggering.
Default value: null
Return Return
(void)
Source Source
File: includes/class-llms-engagement-handler.php
257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 | public static function create_actions( $type , $user_id , $generated_id , $related_id = '' , $engagement_id = null ) { // I think this should be removed but there's a lot of places where queries to _certificate_earned or _achievement_earned exist and it's the documented way of retrieving this data. // Internally we should switch to stop relying on this and figure out a way to phase out the usage of the user postmeta data but for now I think we'll continue storing it. llms_update_user_postmeta( $user_id , $related_id , "_{$type}_earned" , $generated_id , // The earned engagement must be unique if a `$related_id` is present, otherwise it must be not. // Manual awarding have no `$related_id`, and if we force the uniquiness we will end up updating always the same earned engagement // every time we manually award a new one for the same user. (bool) $related_id ); /** * Action run after a student has successfully earned an engagement. * * The dynamic portion of this hook, `{$type}`, refers to the engagement type, * either "achievement" or "certificate". * * @since 1.0.0 * @since 6.0.0 Added the `$engagement_id` parameter. * * @param int $user_id WP_User ID of the student who earned the engagement. * @param int $generated_id WP_Post ID of the generated engagement post. * @param string|int|null $related_id WP_Post ID of the related post triggering generation, an empty string (in the event of a user registration trigger) or null if not supplied. * @param int|null $engagement_id WP_Post ID of the engagement post used to configure engagement triggering. */ do_action( "llms_user_earned_{$type}" , $user_id , $generated_id , $related_id , $engagement_id ); } |
Expand full source code Collapse full source code View on GitHub