我在functions.php中有一些代码,你可以在下面看到。当我使用动作挂钩时,函数不会执行,但是当我挂钩它的过滤器时,有人可以解释为什么,最好的做法是什么?
ACTION
// ADD £40 ON SUCCESFUL SUBSCRIPTION PAYMENT (EXAMPLE 1)
function custom_add_funds($user_id) {
// get current user's funds
$funds = get_user_meta( $user_id, 'account_funds', true );
// add £40
$funds = $funds + 40;
// add funds to user
update_user_meta( $user_id, 'account_funds', $funds );
}
add_action('processed_subscription_payment', 'custom_add_funds');
过滤
// ADD £40 ON SUCCESFUL SUBSCRIPTION PAYMENT (EXAMPLE 2)
function custom_add_funds_two($user_id) {
// get current user's funds
$funds = get_user_meta( $user_id, 'account_funds', true );
// add £40
$funds = $funds + 40;
// add funds to user
update_user_meta( $user_id, 'account_funds', $funds );
}
add_filter('processed_subscription_payment','custom_add_funds_two');
答案 0 :(得分:0)
两种功能都有不同的功能。 操作是基于事件的。假设你想在提交表单或页面加载后调用一个函数,那么你将使用add_action函数。
而过滤器用于更改当前流量。就像一个页面有内容“你好我的测试内容”,并且你想要显示“你好世界这是你的测试内容”这样做你将使用过滤器。< / p>
有关详细信息,请参阅以下链接:
Difference between add_filter versus add_action https://wordpress.stackexchange.com/questions/120339/difference-between-do-action-and-add-action