LearnPRESS】修了証に固有の識別番号を挿入する方法

LearnPRESS

学習管理システム(LMS: Learning Management System)を導入しようと思いいくつか検討した結果、LearnPRESSというプラグインを使っています

英語中心ではあるものの、様々なAdd-onsで拡張性があるのが便利かなと感じています

その中の一つが修了証を発行できるアドオン「LearnPRESS – Certificates」です

これがあると、講座修了者に対して、修了証書を自動で発行することが出来ます

しかし!

デフォルトだと使える項目が限られています

Course name :講座名
Student name :受講者名
Course start date :受講開始日
Course end date :受講終了日
Current time :今の時刻
QR code :QRコード
Custom :文字を入力できる

後は背景を設定できるくらい

これでも十分なのですが、固有のIDを出力したくなり色々調べました

その結果「Order ID」を固有のIDとして出力するコードを発見しました

/*
* Certificate fields
*/

/* EWS Change – Custom Shortcode */
function lpuniqueid_function() {
global $wpdb;
$userid = get_current_user_id();
$courseid = get_the_ID();

$sql = “SELECT ref_id FROM wp_learnpress_user_items WHERE user_id = $userid AND item_id = $courseid;”;
$refid = $wpdb->get_var($sql);

$ordernumber = “#” . str_pad($refid, 10, ‘0’, STR_PAD_LEFT);

return $ordernumber;
}
add_shortcode(‘lpuniqueid’, ‘lpuniqueid_function’);

/* Adds new shortcode option to cert editor */
add_filter( ‘certificates/fields’, function($fields) {
$fields[] = array(
‘name’ => ‘shortcode’,
‘icon’ => ‘dashicons-smiley’,
‘title’ => __( ‘Unique ID’, ‘learnpress-certificates’ )
);
return $fields;
});

if (class_exists(‘LP_Certificate_Layer’)) {
class LP_Certificate_Shortcode_Layer extends LP_Certificate_Layer {
public function apply( $data ) {
$this->options[‘text’] = do_shortcode(‘[lpuniqueid course_id=”‘ . $data[‘course_id’] . ‘]’);
}
}
}

これによって、証明書の作成画面にも「Unique ID」という項目がCustomの横に出てきます

実際、修了書に出力してみたら、固有の番号が出るようになりました。

ひとまずこれで目的達成です。

なお、編集したのは、「プラグインファイルエディター」からではなく「外観」⇒「テーマファイルエディター」から「function.php」です。

子テーマを作っておかないとアップデートの際に、元に戻ってしまうのでご注意を。

Thanks to https://wordpress.org/support/topic/add-custom-fields-to-certificate-2/

コメント

タイトルとURLをコピーしました