php - 挂钩到“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);
解决方案
虽然我必须承认我不完全理解您的问题,但您似乎缺少一些 boolean 表达式的逻辑if
。如果要检查是否$post_id
为3126 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 ) {
评估
推荐阅读
- typescript - 无法从 Vue.js 中的方法访问数据(使用 Ionic)
- javascript - 带有内部 html 的 Javascript 弹出窗口无法打开
- javascript - 如何创建点击计数器?
- python - 为什么我的多处理可能会暂停一段时间?
- c++ - 我无法让 GLEW 在 ubuntu 20.04 (C++) 中处理 netbeans
- python - 如何创建值在不同时间变化的元组生成器
- python - 如何在同一行上打印 if 语句
- visual-studio - 字符串太大,无法使用 UTF-8 进行编码,而是在 Visual Studio 2019 for Xamarin.android 项目中写为“STRING_TOO_LARGE”
- regex - Powershell Regex:如果它包含一个既不在开头也不在结尾的句点,则匹配整个字符串
- php - PHP警告Wordpress中的非法字符串'privacy_policy'