Taxonomy: Pass object ids to delete_* actions.

Allows for more targeted updates to affected posts in callbacks.
Disambiguates `$objects` variable and amends unit tests.

Fixes #35213.


git-svn-id: https://develop.svn.wordpress.org/trunk@36080 602fd350-edb4-49c9-b593-d223f7449a82
This commit is contained in:
Konstantin Obenland
2015-12-23 23:43:03 +00:00
parent 9c2d3a7a4d
commit 1d68393907
3 changed files with 25 additions and 14 deletions

View File

@@ -5,9 +5,11 @@
*/
class Tests_Term_WpDeleteTerm extends WP_UnitTestCase {
protected $deleted_term;
protected $object_ids;
/**
* @ticket 33485
* @ticket 35213
*/
public function test_count_property_passed_to_filters_should_reflect_pre_deleted_term() {
register_taxonomy( 'wptests_tax', 'post' );
@@ -16,20 +18,23 @@ class Tests_Term_WpDeleteTerm extends WP_UnitTestCase {
'taxonomy' => 'wptests_tax',
) );
$p = self::factory()->post->create();
$post_id = self::factory()->post->create();
wp_set_object_terms( $p, array( $terms[0] ), 'wptests_tax' );
wp_set_object_terms( $post_id, array( $terms[0] ), 'wptests_tax' );
add_action( 'delete_term', array( $this, 'catch_deleted_term' ), 10, 4 );
add_action( 'delete_term', array( $this, 'catch_deleted_term' ), 10, 5 );
wp_delete_term( $terms[0], 'wptests_tax' );
$this->assertEquals( 1, $this->deleted_term->count );
$this->assertSame( $this->object_ids, array( "$post_id" ) );
wp_delete_term( $terms[1], 'wptests_tax' );
$this->assertEquals( 0, $this->deleted_term->count );
$this->assertSame( $this->object_ids, array() );
}
public function catch_deleted_term( $term_id, $tt_id, $taxonomy, $deleted_term ) {
public function catch_deleted_term( $term_id, $tt_id, $taxonomy, $deleted_term, $object_ids ) {
$this->deleted_term = $deleted_term;
$this->object_ids = $object_ids;
}
}