问题描述
我正在使用 “Sensei LMS” 和 “Sensei LMS 证书” 插件。
现在,为了增强“Sensei LMS 证书”插件功能,我创建了一个自定义元框和自定义字段,如下所示:https://prnt.sc/104s7oy
我正在使用此操作挂钩 sensei_certificates_before_pdf_output
以 PDF 格式显示文本
<?PHP
add_action( 'sensei_certificates_before_pdf_output','action__sensei_certificates_before_pdf_output',20,2 );
function action__sensei_certificates_before_pdf_output( $pdf_certificate,$fpdf ) {
global $woothemes_sensei_certificates;
$show_border = apply_filters( 'woothemes_sensei_certificates_show_border',0 );
$start_position = 200;
$args = array(
'post_type' => 'certificate','Meta_key' => 'certificate_hash','Meta_value' => $pdf_certificate->hash,);
$query = new WP_Query( $args );
$certificate_id = 0;
if ( $query->have_posts() ) {
$query->the_post();
$certificate_id = $query->posts[0]->ID;
}
wp_reset_query();
if ( 0 < intval( $certificate_id ) ) {
$user_id = get_post_meta( $certificate_id,'learner_id',true );
$student = get_userdata( $user_id );
$student_name = $student->display_name;
$fname = $student->first_name;
$lname = $student->last_name;
if ( '' != $fname && '' != $lname ) {
$student_name = $fname . ' ' . $lname;
}
$course_id = get_post_meta( $certificate_id,'course_id',true );
$course_title = get_post_field('post_title',$course_id);
$course_end = Sensei_Utils::sensei_check_for_activity(
array(
'post_id' => intval( $course_id ),'user_id' => intval( $user_id ),'type' => 'sensei_course_status',),true
);
$course_end_date = $course_end->comment_date;
$date = woothemes_Sensei_Certificates_Utils::get_certificate_formatted_date( $course_end_date );
if ( isset( $woothemes_sensei_certificates->certificate_template_fields['certificate_custom_message']['text'] ) && '' != $woothemes_sensei_certificates->certificate_template_fields['certificate_custom_message']['text'] ) {
$certificate_custom_message = $woothemes_sensei_certificates->certificate_template_fields['certificate_custom_message']['text'];
$certificate_custom_message .= str_replace( array( '{{learner}}','{{course_title}}','{{completion_date}}','{{course_place}}' ),array( $student_name,$course_title,$date,get_bloginfo( 'name' ) ),$certificate_custom_message );
}
$output_fields = array(
'certificate_custom_message' => 'textarea_field',);
foreach ( $output_fields as $Meta_key => $function_name ) {
if ( isset( $woothemes_sensei_certificates->certificate_template_fields[ $Meta_key ]['position']['x1'] ) ) {
$font_settings = $woothemes_sensei_certificates->get_certificate_font_settings( $Meta_key );
call_user_func_array( array( $pdf_certificate,$function_name ),array( $fpdf,$Meta_key,$show_border,array( $woothemes_sensei_certificates->certificate_template_fields[ $Meta_key ]['position']['x1'],$woothemes_sensei_certificates->certificate_template_fields[ $Meta_key ]['position']['y1'],$woothemes_sensei_certificates->certificate_template_fields[ $Meta_key ]['position']['width'],$woothemes_sensei_certificates->certificate_template_fields[ $Meta_key ]['position']['height'] ),$font_settings ) );
}
}
} else {
wp_die( esc_html__( 'The certificate you are searching for does not exist.','' ),esc_html__( 'Certificate Error','' ) );
}
}
但这就是 PDF 中文本的显示方式:https://prnt.sc/104sg3v
预期结果是“Hello Test hii”而不是“certificate_custom_message”
我该如何解决这个问题?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)