Php 将重力形成钩子变量传递到另一个重力形成钩子

Php 将重力形成钩子变量传递到另一个重力形成钩子,php,gravityforms,Php,Gravityforms,有一个类似名字的帖子,但上面给出的答案对我来说并不适用 我试图在用户注册我的站点时获取该用户的$user\u id,并在随后的表单提交挂钩中使用该变量 所以 是带有$user\u id变量的钩子 add_action("gform_after_submission_1", "input_fields1", 10, 2); function input_fields1($entry, $form) {} 是用于在提交后处理表单数据的钩子 我试过以下方法: add_action( 'gform_u

有一个类似名字的帖子,但上面给出的答案对我来说并不适用

我试图在用户注册我的站点时获取该用户的$user\u id,并在随后的表单提交挂钩中使用该变量 所以

是带有$user\u id变量的钩子

add_action("gform_after_submission_1", "input_fields1", 10, 2);
function input_fields1($entry, $form) {}
是用于在提交后处理表单数据的钩子

我试过以下方法:

add_action( 'gform_user_registered', 'send_user_email', 10, 4 );
function send_user_email($user_id, $feed, $user_pass) {
var_dump($user_id.' '. 'a');
add_action("gform_after_submission_1", "input_fields1", 10, 2);
function input_fields1($entry, $form) {
global $user_id;
var_dump($user_id.' '.'b');
}
}
这将返回“29a”,这是第一个Var_转储,“b”而不是“29b”,这是我对第二个Var_转储的预期

我的PHP是错误的还是我没有理解这些钩子是如何工作的

我也试过了

add_action("gform_after_submission_1", "input_fields1", 10, 2);
function input_fields1($entry, $form) {

add_action( 'gform_user_registered', 'send_user_email', 10, 4 );
function send_user_email($user_id, $feed, $user_pass) {
var_dump($user_id.' '. 'a');
}
    global $user_id;
    var_dump($user_id.' '.'b');
}

这将返回不带变量的“b”,并且根本没有“a”

我现在意识到我不需要这样做。“gform\u user\u registered”钩子还包含我试图与$user\u id变量一起使用的$entry变量,因此无需在钩子之间移动变量,因为我可以在一个钩子函数中执行所有需要执行的操作。

您需要在第一个函数中为全局变量赋值,如果第二个应该可以访问它。(您需要为函数参数和全局变量使用不同的名称,否则会导致麻烦。)
add_action("gform_after_submission_1", "input_fields1", 10, 2);
function input_fields1($entry, $form) {

add_action( 'gform_user_registered', 'send_user_email', 10, 4 );
function send_user_email($user_id, $feed, $user_pass) {
var_dump($user_id.' '. 'a');
}
    global $user_id;
    var_dump($user_id.' '.'b');
}