diff --git src/bp-xprofile/classes/class-bp-xprofile-field.php src/bp-xprofile/classes/class-bp-xprofile-field.php
index 511a097..11c48fd 100644
|
|
class BP_XProfile_Field { |
943 | 943 | $sql = $wpdb->prepare( "UPDATE {$table_name} SET group_id = %d WHERE parent_id = %d", $field_group_id, $field_id ); |
944 | 944 | $wpdb->query( $sql ); |
945 | 945 | |
| 946 | // Invalidate profile field cache. |
| 947 | wp_cache_delete( $field_id, 'bp_xprofile_fields' ); |
| 948 | |
946 | 949 | return $parent; |
947 | 950 | } |
948 | 951 | |
diff --git tests/phpunit/testcases/xprofile/class-bp-xprofile-field.php tests/phpunit/testcases/xprofile/class-bp-xprofile-field.php
index 816a7ef..2e9370a 100644
|
|
class BP_Tests_BP_XProfile_Field_TestCases extends BP_UnitTestCase { |
183 | 183 | |
184 | 184 | $this->assertFalse( wp_cache_get( 12345, 'bp_xprofile_fields' ) ); |
185 | 185 | } |
| 186 | |
| 187 | /** |
| 188 | * @ticket BP7112 |
| 189 | */ |
| 190 | public function test_update_position_should_invalidate_cache() { |
| 191 | $group = $this->factory->xprofile_group->create(); |
| 192 | $field = $this->factory->xprofile_field->create( array( |
| 193 | 'field_group_id' => $group, |
| 194 | ) ); |
| 195 | |
| 196 | // Prime cache. |
| 197 | $fetched_field = xprofile_get_field( $field ); |
| 198 | $new_field_order = 12345; |
| 199 | |
| 200 | // Update field position. |
| 201 | BP_XProfile_Field::update_position( $field, $new_field_order, $group ); |
| 202 | |
| 203 | // Cache call should miss and fresh data is fetched. |
| 204 | $updated_fetched_field = xprofile_get_field( $field ); |
| 205 | $this->assertEquals( $new_field_order, $updated_fetched_field->field_order ); |
| 206 | } |
186 | 207 | } |