钩入“ learndash_completion_redirect”以允许覆盖重定向链接

时间:2018-12-28 17:11:46

标签: php wordpress

当我单击课程“ 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);

1 个答案:

答案 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 ) {

成功实现