我想要做的是当一个成员“更新”修改表格时,无论何时更新,他都会在到期日期后加1年。会员总是在4月30日到期,所以我只需要加1年就可以到2014年4月30日,等等。
所以使用以下钩子
add_action('ws_plugin__s2member_during_paypal_notify_during_subscr_modify', 'update_s2_EOT');
add_action('ws_plugin__s2member_during_paypal_notify_during_subscr_signup_w_update_vars', 'update_s2_EOT');
我在做
function update_s2_EOT($vars = array()) {
$user_id = $vars['user_id'];
$existing_eot_time = get_user_field('s2member_auto_eot_time', $user_id);
$new_eot_time = $existing_eot_time;
update_user_option ($user_id, 's2member_auto_eot_time', $new_eot_time);
}
显然这不会增加1年,但这只是一个例子。我能够获取user_id,但EOT变量总是空白,所以在函数运行后,它将我的EOT设置为空。
为什么是get_user_field('s2member_auto_eot_time',$ user_id);回归空白? (我可以确认已设置$ user_id。)
答案 0 :(得分:1)
由于我从未能从任何钩子中获取现有的EOT值,我做了更多的研究,结果证明你可以从proform短代码中完成所有这些。
例如
短代码中的rp =“”值会在当前年末追加“x”天,所以如果您只想添加1年,则可以使用rp =“365”。
因此,如果你需要像4月30日这样的特定日期,你只需要做一些日期计算,根据当前为该用户设置的EOT,计算出4月30日前的天数。