The issue is here at the beginning of the condition:
- Code: Select all
if (is_object ($user = new WP_User ($user_id)) && $user->ID && $subscr_id && $custom && $GLOBALS["WS_PLUGIN__"]["s2member"]["o"]["eot_del_notification_urls"] && is_array ($cv = preg_split ("/\|/", $custom)))
If !$subscr_id or !$custom, the condition will never fire (and the eot notification urls will never be pinged).
Now this may seem unintuitive but in my opinion, the EOT/Deletion notifications should still fire EVEN IF the user doesn't have a paypal subscriber ID. I know, you're saying but why would they be a user if they never made it through the paypal process? I can think of a hundred reasons to have WP users that aren't 'paid members'.
Beyond that though, s2member docs say that it will ping the EOT/Delete notification URLS even in the case of a manual delete from the Dashboard. To me, that indicates any user that I choose to delete via WP Admin. What the docs don't mention is that the user has to have been a 'paid member' and have gone through the 'process' first.
I have a reason for EOT urls to be pinged when ANY user is deleted, not just ones that were originally paid members. I think s2member could change the documentation to explain this a little better OR (cross fingers) support the pinging of EOT URLS when ANY user is deleted
I love s2member but this little snafo cost me about 7.5 hours
To be clear, I don't think this is a bug ... I think s2member is behaving as it was designed, I just didn't find the design of this area particularly intuitive.