1

return'ing と echo'ing の変数に本当に混乱していると思います。

私は彼らのサポートからこの重力フォームフックを手に入れました...

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

これは動作し、'boom!' を返します。私のフォームフィールドのデフォルト変数として。

これは、一般的なテキスト文字列の場合は非常に簡単ですが、代わりに PHP 変数を返そうとしています。

重力フォームフックよりも高いスコープで、functions.php に facebook PHP SDK をロードしています。Facebook SDK は間違いなく機能します。たとえば、現在、これを自分のワードプレスのテーマ ファイルに反映しています...

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

globalこれは、PHP では、関数がキーワードなしではグローバル変数を読み取らないためです。

$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 に答える