1

我想我对返回和回显变量感到非常困惑。

从他们的支持中得到了这个重力形式的钩子......

add_filter('gform_field_value_facebook_name', 'my_custom_population_function');
function my_custom_population_function($value){
    return 'boom!';
}

这有效并返回“繁荣!” 作为我的表单字段默认变量。

这对于一般文本字符串来说非常简单,但我试图返回一个 PHP 变量。

我将 facebook PHP SDK 加载到我的 functions.php 中,其范围比重力形式挂钩更高。facebook SDK 绝对有效,例如我目前在我的 wordpress 主题文件中呼应了这一点......

echo $userData['name']


但我的问题是,如果我尝试将上述变量返回到重力内以进行钩子,为什么它不起作用?

请查看我在下面尝试过的内容,但它什么也没返回...

add_filter('gform_field_value_facebook_name', 'my_custom_population_function');
function my_custom_population_function($value){
    return $userData['name'];
}


当我试图在过滤器中回显一个变量时,我也在我的 wordpress functions.php 中尝试过类似的东西......

$fb_app_id      = '12345678910';

// APP ID FILTER
add_action( 'fb_app_id', 'echo_fb_app_id' );
function echo_fb_app_id() {
    echo $fb_app_id;
}

但这不会返回任何内容,并且范围是相同的。

谁能告诉我为什么我不能传递这些变量。我认为这是技术术语。非常感谢你。

4

1 回答 1

3

这是因为在 PHP 中,函数不读取没有global关键字的全局变量。

$fb_app_id      = '12345678910';

// APP ID FILTER
add_action( 'fb_app_id', 'echo_fb_app_id' );
function echo_fb_app_id() {
    global $fb_app_id; // tells PHP to use the global variable
    echo $fb_app_id;
}

尝试添加global $userData;到您的my_custom_population_function.

于 2012-05-08T17:21:33.430 回答