[wp-trac] [WordPress Trac] #38048: Weird behaviour of "add_action('wp_login', 'func')" in combination with wishlist member
WordPress Trac
noreply at wordpress.org
Wed Sep 14 01:10:53 UTC 2016
#38048: Weird behaviour of "add_action('wp_login','func')" in combination with
wishlist member
--------------------------+------------------------------
Reporter: jobst | Owner:
Type: defect (bug) | Status: new
Priority: normal | Milestone: Awaiting Review
Component: Plugins | Version: 4.6.1
Severity: normal | Resolution:
Keywords: | Focuses:
--------------------------+------------------------------
Changes (by SergeyBiryukov):
* focuses: ui, accessibility, administration =>
* component: General => Plugins
Old description:
> Hi
>
> I added a ticket at wishlist as well as I cannot figure out where this
> problem is starting.
> I am also not sure when this started but I cannot see changes in the
> login time of Wishlist members - so I debugged.
>
> Wishlist adds a function to the list of hooks for wp_login in its main
> file wpm.php like so
> add_action('wp_login', array(&$WishListMemberInstance, 'Login'));
>
> I turned off all plugins that were not needed for this and only kept the
> required ones, e.g. wishlist. woocommerce e.g.
>
> I put a line at the end of my functions.php with a marker file like so:
> add_action('wp', function(){ error_log("HERE_HERE_HERE_HERE");
> error_log(print_r($GLOBALS['wp_filter']['wp_login'],1)); exit; } );
>
> I then basically accessed the "my_account" page.
> The php log file did NOT show an entry of wishlist in the wp_login action
> hook array.
>
> I then disabled every action hook for wp_login, even mine.
> The php log file STILL did NOT show an entry of wishlist in the wp_login
> action hook array.
>
> Then I changed in the file wpm.php from
> add_action('wp_login', array(&$WishListMemberInstance, 'Login'));
> to
> add_action('wp_login', array(&$WishListMemberInstance, 'Login'),20,2);
>
> and sure enough it showed up, and the login time for the members changed.
>
> I looked at the function "add_action" and "add_filter" but I could not
> see anything what could prevent the login member function to be added.
>
> So is this a bug?
> Is this because of the sheer size of &$WishListMemberInstance that
> add_action does not want to do it?
>
> However, just before the class definition of WishlistMember I added a
> function called "MyTestFunction" and replaced the
> "array(&$WishListMemberInstance,'Login')" with 'MyTestFunction' and
> looked at the debug output and sure enough the function was added to the
> list of wp_login hooks.
>
> I added a ticket to wishlist as well.
>
> Jobst
New description:
Hi
I added a ticket at wishlist as well as I cannot figure out where this
problem is starting.
I am also not sure when this started but I cannot see changes in the login
time of Wishlist members - so I debugged.
Wishlist adds a function to the list of hooks for wp_login in its main
file wpm.php like so
{{{
add_action('wp_login', array(&$WishListMemberInstance, 'Login'));
}}}
I turned off all plugins that were not needed for this and only kept the
required ones, e.g. wishlist. woocommerce e.g.
I put a line at the end of my functions.php with a marker file like so:
{{{
add_action('wp', function(){ error_log("HERE_HERE_HERE_HERE");
error_log(print_r($GLOBALS['wp_filter']['wp_login'],1)); exit; } );
}}}
I then basically accessed the "my_account" page.
The php log file did NOT show an entry of wishlist in the `wp_login`
action hook array.
I then disabled every action hook for wp_login, even mine.
The php log file STILL did NOT show an entry of wishlist in the `wp_login`
action hook array.
Then I changed in the file wpm.php from
{{{
add_action('wp_login', array(&$WishListMemberInstance, 'Login'));
}}}
to
{{{
add_action('wp_login', array(&$WishListMemberInstance, 'Login'),20,2);
}}}
and sure enough it showed up, and the login time for the members changed.
I looked at the function "add_action" and "add_filter" but I could not see
anything what could prevent the login member function to be added.
So is this a bug?
Is this because of the sheer size of `&$WishListMemberInstance` that
add_action does not want to do it?
However, just before the class definition of WishlistMember I added a
function called `MyTestFunction` and replaced the
`array(&$WishListMemberInstance,'Login')` with `MyTestFunction` and looked
at the debug output and sure enough the function was added to the list of
wp_login hooks.
I added a ticket to wishlist as well.
Jobst
--
--
Ticket URL: <https://core.trac.wordpress.org/ticket/38048#comment:1>
WordPress Trac <https://core.trac.wordpress.org/>
WordPress publishing platform
More information about the wp-trac
mailing list