/* Serial numbers: YLG-RYT200-008501 onwards (added 15 Oct 2026) */ function yl_cert_series(){ return [ 14690 => ['YLG-RYT200-', 8501] ]; } function yl_cert_serial($uid,$cid){ $s = yl_cert_series(); if ( ! $uid || ! isset($s[$cid]) ) return ''; $key = 'yl_cert_serial_'.$cid; $have = get_user_meta($uid,$key,true); if ( $have ) return $have; $next = (int) get_option('yl_cert_next_'.$cid, $s[$cid][1]); $serial = $s[$cid][0].str_pad($next,6,'0',STR_PAD_LEFT); update_user_meta($uid,$key,$serial); update_option('yl_cert_next_'.$cid,$next+1); return $serial; } add_action('learndash_course_completed', function($d){ if(!empty($d['user']->ID) && !empty($d['course']->ID)) yl_cert_serial($d['user']->ID,$d['course']->ID); }); add_shortcode('yl_cert_serial', function($a){ $a=shortcode_atts(['course_id'=>0],$a); return esc_html( yl_cert_serial( yl_cert_user_id(), intval($a['course_id']) ) ); });