s2Member EOT修改

时间:2013-12-09 15:21:48

标签: php wordpress

我想要做的是当一个成员“更新”修改表格时,无论何时更新,他都会在到期日期后加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。)

1 个答案:

答案 0 :(得分:1)

由于我从未能从任何钩子中获取现有的EOT值,我做了更多的研究,结果证明你可以从proform短代码中完成所有这些。

例如

短代码中的rp =“”值会在当前年末追加“x”天,所以如果您只想添加1年,则可以使用rp =“365”。

因此,如果你需要像4月30日这样的特定日期,你只需要做一些日期计算,根据当前为该用户设置的EOT,计算出4月30日前的天数。