当我单击课程“ learndash_completion_redirect”中的“继续”按钮时,当用户完成三个测验(由$ post_id定义)之一时,我试图将其重定向到调查表。仅应针对这三个测验(id)发生这种情况,但当前在继续按钮的任何实例上都将触发该情况。
Continue按钮定义为上述类,但是我想将其限制为3个id。
我已经尝试了代码,Learndash LMS对于输入的自定义定义非常有限
add_filter('learndash_completion_redirect', function($link, $post_id) {
if ( $post_id === 3126 || 3071 || 3003 ) {
$link = "https://www.rapquiz.vacd.org/post-course-survey/";
}
return $link;
},5,2);
答案 0 :(得分:0)
虽然我必须承认我不完全理解您的问题,但似乎您缺少布尔if
表达式的逻辑。
如果要检查$post_id
是否为3126 OR 3071 OR 3003
,则需要对===
比较的结果进行“或”运算。
因此,您应该更改
if ( $post_id === 3126 || 3071 || 3003 ) {
到
if ( $post_id === 3126 || $post_id === 3071 || $post_id === 3003 ) {
或者,特别是如果您想稍后扩展列表,则可以使用:
if ( in_array($post_id, [3126,3071,3003])) {
哪个检查$post_id
是否匹配数组的元素之一(3126,3071,3003
)
您的旧代码接受每个值的原因是,除0
以外的所有数字都被视为布尔值TRUE
,因此到目前为止您的表达式已匹配
if ( $post_id === 3126 || TRUE || TRUE ) {
成功实现