可以';t将值从一个函数传递到另一个函数-WordPress ACF


Can't pass value from one function to another - WordPress ACF

我想检查select字段在后期编辑后是否更改了值,如果是,则向管理员发送电子邮件。

我使用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);

我认为这是关于变量范围的。当您在另一个函数中使用它时,应该将其全局化。

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();
}