无法将值从一个函数传递到另一个函数 - WordPress ACF

时间:2016-01-11 14:30:06

标签: php wordpress function advanced-custom-fields

我想检查选择字段是否在发布后编辑时更改了它的值,如果是,则向管理员发送电子邮件。

我使用acf / pre_save_post将以前的值保存到变量$ pre_status_eksperimenta中,如下所示:

function action_pre_post_update( $post_id ) { 
    $pre_status_eksperimenta = get_post_meta($post_id, 'status', true);
};          
add_action( 'acf/pre_save_post', 'action_pre_post_update', 10, 1 ); 

当我var_dump($ pre_status_eksperimenta)时,我得到了正确的值,这意味着它有效。

然后我想把它传递给一个acf / save_post钩子并检查是否有变化,但现在当我var_dump($ pre_status_eksperimenta)我得到NULL

function status_change_notification($ID) {
    var_dump($pre_status_eksperimenta);
    die();
}
add_action( 'acf/save_post', 'status_change_notification', 10, 1);

1 个答案:

答案 0 :(得分:2)

我认为它关于变量范围。当你在另一个函数中使用它时,你应该对它进行全局化。

function action_pre_post_update( $post_id ) { 
    global $pre_status_eksperimenta;
    $pre_status_eksperimenta = get_post_meta($post_id, 'status', true);
};

然后

function status_change_notification($ID) {
    global $pre_status_eksperimenta;
    var_dump($pre_status_eksperimenta);
    die();
}