WooCommerce 老师电子邮件定制
WooCommerce Sensei Email customization
当过滤器跨模板共享时,如何在一个模板中更改标题或文本?
插件代码(在class-woothemes-sensei-email-learner-graded-quiz.php):
$this->subject = apply_filters( 'sensei_email_subject', sprintf( __( '[%1$s] You have completed a course', 'woothemes-sensei' ), get_bloginfo( 'name' ) ), $this->template);
我的自定义代码(在functions.php):
add_filter( 'sensei_email_subject', 'my_custom_sensei_email_subject', 'class_woothemes_sensei_email_learner_graded_quiz' );
function my_custom_sensei_email_subject( $subject ) {
global $woothemes_sensei;
$subject = sprintf( __( '[%1$s] Your Evaluation has been graded', 'woothemes-sensei' ), get_bloginfo( 'name' ));
return $subject;
}
// This changes the title regardless of which template is being used.
在您的函数中,缺少一个参数,如您所见,过滤器挂钩上有 2 个:$subject
和 $template
(可选)。
因此您需要在函数中添加第二个参数 $template
。然后在 if 语句中,您只能定位正确的模板。
假设正确的目标模板 slug 是:learner_graded_quiz
所以正确的代码应该是:
add_filter( 'sensei_email_subject', 'my_custom_sensei_email_subject', 10, 2 );
function my_custom_sensei_email_subject( $subject, $template ) {
// Only for your specific template
if( 'learner-graded-quiz' != $template ) return $subject;
$subject = sprintf( __( '[%1$s] Your Evaluation has been graded', 'woothemes-sensei' ), get_bloginfo( 'name' ));
return $subject;
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。
没有测试,因为我没有老师…
You don't need in your code global $woothemes_sensei;
as it's not used.
当过滤器跨模板共享时,如何在一个模板中更改标题或文本?
插件代码(在class-woothemes-sensei-email-learner-graded-quiz.php):
$this->subject = apply_filters( 'sensei_email_subject', sprintf( __( '[%1$s] You have completed a course', 'woothemes-sensei' ), get_bloginfo( 'name' ) ), $this->template);
我的自定义代码(在functions.php):
add_filter( 'sensei_email_subject', 'my_custom_sensei_email_subject', 'class_woothemes_sensei_email_learner_graded_quiz' );
function my_custom_sensei_email_subject( $subject ) {
global $woothemes_sensei;
$subject = sprintf( __( '[%1$s] Your Evaluation has been graded', 'woothemes-sensei' ), get_bloginfo( 'name' ));
return $subject;
}
// This changes the title regardless of which template is being used.
在您的函数中,缺少一个参数,如您所见,过滤器挂钩上有 2 个:$subject
和 $template
(可选)。
因此您需要在函数中添加第二个参数 $template
。然后在 if 语句中,您只能定位正确的模板。
假设正确的目标模板 slug 是:learner_graded_quiz
所以正确的代码应该是:
add_filter( 'sensei_email_subject', 'my_custom_sensei_email_subject', 10, 2 );
function my_custom_sensei_email_subject( $subject, $template ) {
// Only for your specific template
if( 'learner-graded-quiz' != $template ) return $subject;
$subject = sprintf( __( '[%1$s] Your Evaluation has been graded', 'woothemes-sensei' ), get_bloginfo( 'name' ));
return $subject;
}
代码进入您的活动子主题(或主题)的 function.php 文件或任何插件文件。
没有测试,因为我没有老师…
You don't need in your code
global $woothemes_sensei;
as it's not used.