首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >s2Member EOT改性

s2Member EOT改性
EN

Stack Overflow用户
提问于 2013-12-09 15:21:48
回答 1查看 457关注 0票数 1

我想做的是,当一位议员在修改表格后“续期”时,他的届满日期是加1年,而不论他何时续期。成员总是在4月30日到期,所以我只需要增加一年,使之成为2014年4月30日、2015年4月30日,等等。

所以用下面的钩子

代码语言:javascript
复制
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');

我在做

代码语言:javascript
复制
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);  
}

很明显,这并没有增加一年的时间,但这只是一个例子。我能够获得user_id,但是EOT变量始终是空的,所以在函数运行后,它会将用户的EOT设置为空。

为什么get_user_field(‘s2Members_auto_eot_time’,$user_id);返回为空?(我可以确认$user_id已经设置)。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-12-11 21:10:33

因为我从来无法从任何钩子中获得现有的EOT值,所以我做了一些更多的研究,结果发现您可以通过proform的简短代码来完成这一切。

例如

短代码中的rp="“值将将"x”天附加到当前年度的末尾,因此,如果您只想添加1年,则可以使用rp="365“。

所以,如果你需要一个月中的某一天,比如4月30日,你只需要做一些日期计算,就可以根据当前为用户设置的EOT计算出4月30日之前的几天。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/20474145

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档