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
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