Skip to content

Commit df1a16a

Browse files
author
Jonny Harris
committed
Abstract meta CRUD, into methods
1 parent 518acae commit df1a16a

File tree

5 files changed

+93
-13
lines changed

5 files changed

+93
-13
lines changed

src/Comment_Meta_Command.php

Lines changed: 17 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,23 @@
2424
class Comment_Meta_Command extends \WP_CLI\CommandWithMeta {
2525
protected $meta_type = 'comment';
2626

27+
28+
protected function add_metadata( $object_id, $meta_key, $meta_value, $unique = false ) {
29+
return add_comment_meta( $object_id, $meta_key, $meta_value, $unique );
30+
}
31+
32+
protected function update_metadata( $object_id, $meta_key, $meta_value, $prev_value = '' ) {
33+
return update_comment_meta( $object_id, $meta_key, $meta_value, $prev_value );
34+
}
35+
36+
protected function get_metadata( $object_id, $meta_key = '', $single = false ) {
37+
return get_comment_meta( $object_id, $meta_key, $single );
38+
}
39+
40+
protected function delete_metadata( $meta_type, $object_id, $meta_key, $meta_value = '', $delete_all = false ) {
41+
return delete_comment_meta( $object_id, $meta_key, $meta_value, $delete_all );
42+
}
43+
2744
/**
2845
* Check that the comment ID exists
2946
*
@@ -35,4 +52,3 @@ protected function check_object_id( $object_id ) {
3552
return $comment->comment_ID;
3653
}
3754
}
38-

src/Post_Meta_Command.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -34,4 +34,20 @@ protected function check_object_id( $object_id ) {
3434
$post = $fetcher->get_check( $object_id );
3535
return $post->ID;
3636
}
37+
38+
protected function add_metadata( $object_id, $meta_key, $meta_value, $unique = false ) {
39+
return add_post_meta( $object_id, $meta_key, $meta_value, $unique );
40+
}
41+
42+
protected function update_metadata( $object_id, $meta_key, $meta_value, $prev_value = '' ) {
43+
return update_post_meta( $object_id, $meta_key, $meta_value, $prev_value );
44+
}
45+
46+
protected function get_metadata( $object_id, $meta_key = '', $single = false ) {
47+
return get_post_meta( $object_id, $meta_key, $single );
48+
}
49+
50+
protected function delete_metadata( $meta_type, $object_id, $meta_key, $meta_value = '', $delete_all = false ) {
51+
return delete_post_meta( $object_id, $meta_key, $meta_value, $delete_all );
52+
}
3753
}

src/Term_Meta_Command.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,20 @@ protected function check_object_id( $object_id ) {
3737
return $term->term_id;
3838
}
3939

40+
protected function add_metadata( $object_id, $meta_key, $meta_value, $unique = false ) {
41+
return add_term_meta( $object_id, $meta_key, $meta_value, $unique );
42+
}
43+
44+
protected function update_metadata( $object_id, $meta_key, $meta_value, $prev_value = '' ) {
45+
return update_term_meta( $object_id, $meta_key, $meta_value, $prev_value );
46+
}
47+
48+
protected function get_metadata( $object_id, $meta_key = '', $single = false ) {
49+
return get_term_meta( $object_id, $meta_key, $single );
50+
}
51+
52+
protected function delete_metadata( $meta_type, $object_id, $meta_key, $meta_value = '', $delete_all = false ) {
53+
return delete_term_meta( $object_id, $meta_key, $meta_value, $delete_all );
54+
}
55+
4056
}

src/User_Meta_Command.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -226,6 +226,22 @@ public function update( $args, $assoc_args ) {
226226
parent::update( $args, $assoc_args );
227227
}
228228

229+
protected function add_metadata( $object_id, $meta_key, $meta_value, $unique = false ) {
230+
return add_user_meta( $object_id, $meta_key, $meta_value, $unique );
231+
}
232+
233+
protected function update_metadata( $object_id, $meta_key, $meta_value, $prev_value = '' ) {
234+
return update_user_meta( $object_id, $meta_key, $meta_value, $prev_value );
235+
}
236+
237+
protected function get_metadata( $object_id, $meta_key = '', $single = false ) {
238+
return get_user_meta( $object_id, $meta_key, $single );
239+
}
240+
241+
protected function delete_metadata( $meta_type, $object_id, $meta_key, $meta_value = '', $delete_all = false ) {
242+
return delete_user_meta( $object_id, $meta_key, $meta_value, $delete_all );
243+
}
244+
229245
/**
230246
* Replaces user_login value with user ID
231247
* user meta is a special case that also supports user_login

src/WP_CLI/CommandWithMeta.php

Lines changed: 28 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<?php
1+
$this->update_metadata( <?php
22

33
namespace WP_CLI;
44

@@ -68,7 +68,7 @@ public function list_( $args, $assoc_args ) {
6868

6969
$object_id = $this->check_object_id( $object_id );
7070

71-
$metadata = get_metadata( $this->meta_type, $object_id );
71+
$metadata = $this->get_metadata( $object_id );
7272
if ( ! $metadata ) {
7373
$metadata = array();
7474
}
@@ -147,7 +147,7 @@ public function get( $args, $assoc_args ) {
147147

148148
$object_id = $this->check_object_id( $object_id );
149149

150-
$value = get_metadata( $this->meta_type, $object_id, $meta_key, true );
150+
$value = $this->get_metadata( $object_id, $meta_key, true );
151151

152152
if ( '' === $value )
153153
die(1);
@@ -186,8 +186,8 @@ public function delete( $args, $assoc_args ) {
186186

187187
if ( Utils\get_flag_value( $assoc_args, 'all' ) ) {
188188
$errors = false;
189-
foreach( get_metadata( $this->meta_type, $object_id ) as $meta_key => $values ) {
190-
$success = delete_metadata( $this->meta_type, $object_id, $meta_key );
189+
foreach( $this->get_metadata( $object_id ) as $meta_key => $values ) {
190+
$success = $this->delete_metadata( $object_id, $meta_key );
191191
if ( $success ) {
192192
WP_CLI::log( "Deleted '{$meta_key}' custom field." );
193193
} else {
@@ -201,7 +201,7 @@ public function delete( $args, $assoc_args ) {
201201
WP_CLI::success( 'Deleted all custom fields.' );
202202
}
203203
} else {
204-
$success = delete_metadata( $this->meta_type, $object_id, $meta_key, $meta_value );
204+
$success = $this->delete_metadata( $object_id, $meta_key, $meta_value );
205205
if ( $success ) {
206206
WP_CLI::success( "Deleted custom field." );
207207
} else {
@@ -242,7 +242,7 @@ public function add( $args, $assoc_args ) {
242242
$object_id = $this->check_object_id( $object_id );
243243

244244
$meta_value = wp_slash( $meta_value );
245-
$success = add_metadata( $this->meta_type, $object_id, $meta_key, $meta_value );
245+
$success = $this->add_metadata( $object_id, $meta_key, $meta_value );
246246

247247
if ( $success ) {
248248
WP_CLI::success( "Added custom field." );
@@ -285,13 +285,13 @@ public function update( $args, $assoc_args ) {
285285
$object_id = $this->check_object_id( $object_id );
286286

287287
$meta_value = sanitize_meta( $meta_key, $meta_value, $this->meta_type );
288-
$old_value = sanitize_meta( $meta_key, get_metadata( $this->meta_type, $object_id, $meta_key, true ), $this->meta_type );
288+
$old_value = sanitize_meta( $meta_key, $this->get_metadata( $object_id, $meta_key, true ), $this->meta_type );
289289

290290
if ( $meta_value === $old_value ) {
291291
WP_CLI::success( "Value passed for custom field '$meta_key' is unchanged." );
292292
} else {
293293
$meta_value = wp_slash( $meta_value );
294-
$success = update_metadata( $this->meta_type, $object_id, $meta_key, $meta_value );
294+
$success = $this->update_metadata( $object_id, $meta_key, $meta_value );
295295

296296
if ( $success ) {
297297
WP_CLI::success( "Updated custom field '$meta_key'." );
@@ -336,7 +336,7 @@ public function pluck( $args, $assoc_args ) {
336336
return $key;
337337
}, array_slice( $args, 2 ) );
338338

339-
$value = get_metadata( $this->meta_type, $object_id, $meta_key, true );
339+
$value = $this->get_metadata( $object_id, $meta_key, true );
340340

341341
$traverser = new RecursiveDataStructureTraverser( $value );
342342

@@ -405,7 +405,7 @@ public function patch( $args, $assoc_args ) {
405405
}
406406

407407
/* Need to make a copy of $current_meta_value here as it is modified by reference */
408-
$current_meta_value = $old_meta_value = sanitize_meta( $meta_key, get_metadata( $this->meta_type, $object_id, $meta_key, true ), $this->meta_type );
408+
$current_meta_value = $old_meta_value = sanitize_meta( $meta_key, $this->get_metadata( $object_id, $meta_key, true ), $this->meta_type );
409409
if ( is_object( $current_meta_value ) ) {
410410
$old_meta_value = clone $current_meta_value;
411411
}
@@ -424,7 +424,7 @@ public function patch( $args, $assoc_args ) {
424424
WP_CLI::success( "Value passed for custom field '$meta_key' is unchanged." );
425425
} else {
426426
$slashed = wp_slash( $patched_meta_value );
427-
$success = update_metadata( $this->meta_type, $object_id, $meta_key, $slashed );
427+
$success = $this->update_metadata( $object_id, $meta_key, $slashed );
428428

429429
if ( $success ) {
430430
WP_CLI::success( "Updated custom field '$meta_key'." );
@@ -434,6 +434,22 @@ public function patch( $args, $assoc_args ) {
434434
}
435435
}
436436

437+
protected function add_metadata( $object_id, $meta_key, $meta_value, $unique = false ) {
438+
return add_metadata( $this->meta_type, $object_id, $meta_key, $meta_value, $unique );
439+
}
440+
441+
protected function update_metadata( $object_id, $meta_key, $meta_value, $prev_value = '' ) {
442+
return update_metadata( $this->meta_type, $object_id, $meta_key, $meta_value, $prev_value );
443+
}
444+
445+
protected function get_metadata( $object_id, $meta_key = '', $single = false ) {
446+
return get_metadata( $this->meta_type, $object_id, $meta_key, $single );
447+
}
448+
449+
protected function delete_metadata( $meta_type, $object_id, $meta_key, $meta_value = '', $delete_all = false ) {
450+
return delete_metadata( $this->meta_type, $object_id, $meta_key, $meta_value, $delete_all );
451+
}
452+
437453
/**
438454
* Get the fields for this object's meta
439455
*

0 commit comments

Comments
 (0)