实际上我正在尝试添加一些操作add_action
和add_filter
. 但我不知道为什么add_filter
在运行之前add_action
。因为我设置了相同的优先级并且我在 Wordpress 文档中读到,如果操作具有相同的优先级,那么首先编写的操作总是首先运行。
但我不知道在我的情况下add_filter
是否运行过add_action
。
这是我的代码:
add_action 代码,上面写在我的代码中。
add_action('leaky_paywall_form_processing', 'zeen101_custom_registration_fields_save', 10, 5);
function zeen101_custom_registration_fields_save($post_data, $user_id, $price, $mode, $site)
{
if ($post_data['company']) {
update_user_meta($user_id, 'company', sanitize_text_field($post_data['company']));
}
if ($post_data['city']) {
update_user_meta($user_id, 'city', sanitize_text_field($post_data['city']));
}
}
add_filter 代码写在我的代码下面
add_filter('leaky_paywall_mailchimp_merge_fields', 'zeen101_custom_mailchimp_merge_fields', 10, 2);
function zeen101_custom_mailchimp_merge_fields($merge_fields, $email)
{
$mode = leaky_paywall_get_current_mode();
$user = get_user_by('email', $email);
if (!$user) {
return $merge_fields;
}
$level_id = get_user_meta($user->ID, '_issuem_leaky_paywall_' . $mode . '_level_id', true);
$levels = leaky_paywall_get_levels();
$level_name = $levels[$level_id]['label'];
$created = get_user_meta($user->ID, '_issuem_leaky_paywall_' . $mode . '_created', true);
$expires = get_user_meta($user->ID, '_issuem_leaky_paywall_' . $mode . '_expires', true);
$firstname = get_user_meta($user->ID, '_issuem_leaky_paywall_' . $mode . '_first_name', true);
$lastname = get_user_meta($user->ID, '_issuem_leaky_paywall_' . $mode . '_last_name', true);
$email = get_user_meta($user->ID, '_issuem_leaky_paywall_' . $mode . '_email', true);
$company = get_user_meta($user->ID, 'company', true);
$city = get_user_meta($user->ID, 'city', true);
$merge_fields['LP_LEVEL'] = $level_name;
$merge_fields['LP_SUBDATE'] = $created;
$merge_fields['LP_EXPIRES'] = $expires;
$merge_fields['FNAME'] = $firstname;
$merge_fields['LNAME'] = $lastname;
$merge_fields['EMAIL'] = $email;
$merge_fields['COMPANY'] = $company;
$merge_fields['CITY'] = $city;
return $merge_fields;
}
那我想add_action
先跑add_filter
。我怎么能这样做?
谢谢。