Commit Graph

29 Commits

Author SHA1 Message Date
Scott Taylor
3e46dd8b92 Comments: In get_comment_statuses(), also return trash.
XML-RPC: In `wp_xmlrpc_server::wp_editComment()`, allow comments to be trashed.

Introduce unit tests for `wp_editComment` in `xmlrpc/*` #NeverForget

Props tyxla, wonderboymusic.
Fixes #30965.


git-svn-id: https://develop.svn.wordpress.org/trunk@34524 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-24 21:47:51 +00:00
Scott Taylor
9b55d4fecb Comments: in check_comment_flood_db(), don't throttle moderators. If the commenter is logged in, check against their user_id instead of comment_author_IP.
Throwback: "If you can edit comments on the post, 'Slow down Cowboy' shouldn't kick in."

Props garyc40, wonderboymusic.
Fixes #16219.


git-svn-id: https://develop.svn.wordpress.org/trunk@34522 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-24 21:21:16 +00:00
Scott Taylor
d416922cbf Remove some unused globals and/or their docs.
See ##33491.


git-svn-id: https://develop.svn.wordpress.org/trunk@34446 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-22 20:26:17 +00:00
Drew Jaynes
00fe089f24 Docs: The Comments subpackage is plural.
See #33701.


git-svn-id: https://develop.svn.wordpress.org/trunk@34411 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-22 13:44:35 +00:00
Drew Jaynes
10278a11d3 Docs: The Comment API is singular.
See #33701.


git-svn-id: https://develop.svn.wordpress.org/trunk@34409 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-22 13:42:15 +00:00
Drew Jaynes
e3e91dbadc Docs: Add a description for the documented use of the $wpdb global in _prime_comment_caches().
See #8071. See #32246.


git-svn-id: https://develop.svn.wordpress.org/trunk@34355 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-20 09:38:24 +00:00
Boone Gorges
2fd81992bc Split the comment query.
`WP_Comment_Query` now fetches comments in two stages: (1) a query to get the
IDs of comments matching the query vars, and (2) a query to populate the
objects corresponding to the matched IDs. The two queries are cached
separately, so that sites with persistent object caches will continue to have
complete cache coverage for normal comment queries.

Splitting the query allows our cache strategy to be more modest and precise, as
full comment data is only stored once per comment. It also makes it possible
to introduce logic for paginated threading, which is necessary to address
certain performance problems.

See #8071.
data is only stored once per comment, instead of along with

git-svn-id: https://develop.svn.wordpress.org/trunk@34310 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-18 19:27:39 +00:00
Boone Gorges
504deb52fc Lazy-load comment meta on single post pages.
[34268] introduced cache priming for commentmeta, enabled by default. To
ensure performance on single post pages - where commentmeta is most likely
to cause performance issues - we disable up-front cache-priming. Instead, we
prime commentmeta caches for all comments in the loop the first time
`get_comment_meta()` is called on the page.

Props bradt, dd32, wonderboymusic, boonebgorges.
Fixes #16894.

git-svn-id: https://develop.svn.wordpress.org/trunk@34270 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-17 20:00:31 +00:00
Boone Gorges
12329f5ef8 Prime comment meta caches in WP_Comment_Query.
The new 'update_comment_meta_cache' parameter, which defaults to `true`, can
be used to disable this behavior.

`update_comment_cache()` has been updated to support an `$update_meta_cache`
parameter, which also updates to true; this matches the pattern we use for
priming post caches.

See #16894.

git-svn-id: https://develop.svn.wordpress.org/trunk@34268 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-17 19:29:46 +00:00
Sergey Biryukov
54835433c5 Docs: Expand the $comment_approved argument description for 'comment_post' action.
Props cfinke.
Fixes #33903.

git-svn-id: https://develop.svn.wordpress.org/trunk@34253 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-16 22:29:15 +00:00
Boone Gorges
03ec7cc107 Improve consistency of comment notification callback signatures.
Both `wp_new_comment_notify_moderator()` and `wp_new_comment_notify_postauthor()`
now accept a single argument: `$comment_ID`.

Props SergeyBiryukov.
Fixes #33587.

git-svn-id: https://develop.svn.wordpress.org/trunk@34252 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-16 22:25:07 +00:00
Boone Gorges
d26b868870 Don't notify post authors about spam comments.
[34106] moved post author notification to a hook, and in the process, missed
the 'spam' check. This changeset restores that check.

To make unit testing easier, the notification callbacks have been refactored
to return values: false when various conditions aren't met (eg, approved
comments should not trigger moderation emails), and the return value of the
`wp_notify_*()` function otherwise.

Props cfinke, kraftbj.
See #33587.

git-svn-id: https://develop.svn.wordpress.org/trunk@34250 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-16 21:59:16 +00:00
Scott Taylor
5c85369bb6 In _wp_ajax_delete_comment_response(), read the new 'all' prop returned by get_comment_count() via wp_count_comments() when setting $total. 'all' doesn't include spam in its count.
Updates unit tests.

Props dipesh.kakadiya.
Fixes #32362.


git-svn-id: https://develop.svn.wordpress.org/trunk@34161 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-15 01:46:51 +00:00
Scott Taylor
95795c1301 More bonkers comment cache cleanup: toggle wp_defer_comment_counting() in wp_insert_post() and wp_insert_attachment(). Move the cache deletion in wp_update_comment_count_now() to before the get_post() call, so that the caches get deleted even if the post has already been deleted and the function returns early.
See #33875.


git-svn-id: https://develop.svn.wordpress.org/trunk@34158 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-15 00:57:48 +00:00
Scott Taylor
8cb6843170 Ensure that the count cache for all is in sync with comment-{$post_id} values. These are the values most often relied-upon by the list table for comments.
Adds unit tests.

See #33875.


git-svn-id: https://develop.svn.wordpress.org/trunk@34136 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-14 22:38:02 +00:00
Scott Taylor
545da32217 The "counts" cache for comments by post id is never invalidated. Neither wp_update_comment_count() nor wp_update_comment_count_now() touch the cache.
Adds unit test.
See #33875.


git-svn-id: https://develop.svn.wordpress.org/trunk@34131 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-14 22:03:23 +00:00
Scott Taylor
b42a906512 wp_unspam_comment() can accept a full object instead of comment_ID to reduce cache/db lookups..
See #33638.


git-svn-id: https://develop.svn.wordpress.org/trunk@34130 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-14 21:46:40 +00:00
Scott Taylor
166ee8674b More comment functions can accept a full object instead of comment_ID to reduce cache/db lookups.
See ##33638.



git-svn-id: https://develop.svn.wordpress.org/trunk@34129 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-14 21:39:46 +00:00
boonebgorges
05d4233956 Send comment notification emails via a hooked function.
Previously, `wp_notify_postauthor()` and `wp_notify_moderator()` were called
directly from `wp_new_comment()`, making it difficult to modify or suppress
default notification emails.

Props dshanske, thomaswm.
See #33587.

git-svn-id: https://develop.svn.wordpress.org/trunk@34106 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-14 02:16:02 +00:00
Scott Taylor
df637648e2 In WP_Comments_List_Table, favor passing WP_Comment instances instead of $comment_ID to template functions. This allows us to bypass unnecessary cache lookups and simply pass the object through when it is set.
See #33638.


git-svn-id: https://develop.svn.wordpress.org/trunk@33964 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-09 02:59:54 +00:00
Scott Taylor
38d374ab01 After [33891], get_comment() returns global $comment if no args are passed and the global is set (after setting the default to null here). This allows us to ditch global comment imports.
See #33638.


git-svn-id: https://develop.svn.wordpress.org/trunk@33963 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-09 02:50:43 +00:00
Scott Taylor
a4a469d887 After [33843], update the location of some files in This filter is documented in docs
Props dimadin.
See #33413.


git-svn-id: https://develop.svn.wordpress.org/trunk@33954 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-08 22:16:57 +00:00
Scott Taylor
ae8a4e496e Bump the timeout in trackback() to 10 seconds (from 4) to match wp_xmlrpc_server::pingback_ping() and prevent trackback timeouts.
Props gnaka08 for the initial patch.
Fixes #10414.


git-svn-id: https://develop.svn.wordpress.org/trunk@33948 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-08 18:55:45 +00:00
Drew Jaynes
3abc0933bb Docs: Clarify the file header summary for wp-includes/comment-functions.php, introduced in [33750].
See #33413. See #33701.


git-svn-id: https://develop.svn.wordpress.org/trunk@33899 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-04 01:41:17 +00:00
Scott Taylor
60ba8b05e4 Introduce WP_Comment class to model/strongly-type rows from the comments database table. Inclusion of this class is a pre-req for some more general comment cleanup and sanity.
* Takes inspiration from `WP_Post` and adds sanity to comment caching. 
* Clarifies when the current global value for `$comment` is returned. The current implementation in `get_comment()` introduces side effects and an occasion stale global value for `$comment` when comment caches are cleaned.
* Strongly-types `@param` docs
* This class is marked `final` for now

Props wonderboymusic, nacin.

See #32619.


git-svn-id: https://develop.svn.wordpress.org/trunk@33891 602fd350-edb4-49c9-b593-d223f7449a82
2015-09-03 18:16:35 +00:00
Scott Taylor
3028a096be Comments: wp_count_comments() can use get_comment_count() internally to makes its DB query, provided that get_comment_count() returns more properties.
Adds/updates unit tests. There were zero (0) unit tests for `wp_count_comments()`.

Fixes #19903. 


git-svn-id: https://develop.svn.wordpress.org/trunk@33822 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-31 18:50:12 +00:00
Scott Taylor
062aa80c1f Fix the doc block syntax for the 'wp_get_current_commenter' filter.
Props dimadin.
Fixes #33304.


git-svn-id: https://develop.svn.wordpress.org/trunk@33811 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-30 03:20:24 +00:00
Scott Taylor
da0a823129 get_comment_count() currently increments awaiting_moderation when comments are in the trash. This occurs because case 0: will match any value passed to switch that is a string that isn't specified in the list of cases. This is terrifying.
* Cases for `0` and `1` should be `'1'` and `'0'`
* Add unit tests for `get_comment_count()`. Currently, there are none.

See #33414.


git-svn-id: https://develop.svn.wordpress.org/trunk@33806 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-30 02:18:18 +00:00
Scott Taylor
d61669232c Comments: move WP_Comment_Query into its own file. comment.php loads the new files, so this is 100% BC if someone is loading comment.php directly. New files created using svn cp.
Creates: 
`class-wp-comment-query.php` 
`comment-functions.php` 

`comment.php` contains only top-level code. Class file only contains the class. Functions file only contains functions.

See #33413.


git-svn-id: https://develop.svn.wordpress.org/trunk@33750 602fd350-edb4-49c9-b593-d223f7449a82
2015-08-26 04:26:29 +00:00