Skip to content

Commit 39ae9a9

Browse files
authored
Update llms-cert-custom-merge-example.php
Working example for adding custom cert merge codes.
1 parent 8b4c8cd commit 39ae9a9

File tree

1 file changed

+26
-15
lines changed

1 file changed

+26
-15
lines changed

lifterlms/llms-cert-custom-merge-example.php

Lines changed: 26 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -2,25 +2,36 @@
22
/**
33
* llms-cert-custom-merge-example.php
44
*
5-
* @since 2017-10-23
5+
* @since 2025-11-24 Updated with more reliable filters.
66
*/
7+
78
/**
8-
* Add custom merge codes to an LLMS certificate
9-
* @param int $user_id WP_User ID
10-
* @param int $cert_id WP_Post ID of the generated certificate
11-
* @param int $related_post_id WP_Post ID of the post which triggered the certificate generation
12-
* @return void
9+
* Filter the array of available merge codes.
10+
*
11+
* @param array $merge_codes Array of available merge codes, and their description.
12+
*
13+
* @return array
1314
*/
14-
function my_custom_cert_merge_codes( $user_id, $cert_id, $related_post_id ) {
15-
16-
$cert_post = get_post( $cert_id );
15+
function my_custom_available_certificate_merge_codes( $merge_codes ) {
16+
$merge_codes['{your_merge_code}'] = 'Your Merge Code Description';
1717

18-
$content = str_replace( '{your_merge_code}', get_user_meta( $user_id, 'your_user_meta_key', true ), $cert_post->post_content );
18+
return $merge_codes;
19+
}
20+
add_filter( 'llms_certificate_available_merge_codes', 'my_custom_available_certificate_merge_codes' );
1921

20-
wp_update_post( array(
21-
'ID' => $cert_id,
22-
'post_content' => $content
23-
) );
22+
/**
23+
* Add custom merge code data to an LLMS certificate.
24+
*
25+
* @param array $codes Array of key (merge code with brackets) and value (data to replace it with)
26+
* @param int $user_id WP_User ID
27+
* @param int $template_id WP_Post ID of the certificate template
28+
* @param int $related_post_id WP_Post ID of the post which triggered the certificate generation
29+
*
30+
* @return array
31+
*/
32+
function my_custom_certificate_merge_code_data( $codes, $user_id, $template_id, $related_id ) {
33+
$codes['{your_merge_code}'] = get_user_meta( $user_id, 'your_user_meta_key', true );
2434

35+
return $codes;
2536
}
26-
add_action( 'llms_user_earned_certificate', 'my_custom_cert_merge_codes', 999, 3 );
37+
add_filter( 'llms_certificate_merge_data', 'my_custom_certificate_merge_code_data', 10, 4 );

0 commit comments

Comments
 (0)