首页 > 解决方案 > 挂钩到“learndash_completion_redirect”以允许覆盖重定向链接

问题描述

当用户单击“learndash_completion_redirect”类课程中的继续按钮时,当他们完成三个测验之一(由 $post_id 定义)时,我试图将用户重定向到调查表。这应该只发生在这三个测验 (id) 上,但目前正在继续按钮的任何实例上触发。

继续按钮定义为上述类,但我想将其限制为仅 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);

标签: phpwordpress

解决方案


虽然我必须承认我不完全理解您的问题,但您似乎缺少一些 boolean 表达式的逻辑if。如果要检查是否$post_id3126 OR 3071 OR 3003,则需要 OR===比较的结果。因此,你应该改变

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都被视为 boolean TRUE,因此您的表达式到目前为止匹配

if ( $post_id === 3126 || TRUE || TRUE ) {

评估


推荐阅读