@@ 413-474 (lines=62) @@ | ||
410 | * @since 2.0 |
|
411 | * |
|
412 | */ |
|
413 | public function save_user_meta ( $id, $user_meta = null, $strict = false, $fields = array() ) { |
|
414 | $simple_tableless_objects = PodsForm::simple_tableless_objects(); |
|
415 | ||
416 | $conflicted = pods_no_conflict_check( 'user' ); |
|
417 | ||
418 | if ( !$conflicted ) |
|
419 | pods_no_conflict_on( 'user' ); |
|
420 | ||
421 | if ( !is_array( $user_meta ) ) |
|
422 | $user_meta = array(); |
|
423 | ||
424 | $id = (int) $id; |
|
425 | ||
426 | $meta = get_user_meta( $id ); |
|
427 | ||
428 | foreach ( $user_meta as $meta_key => $meta_value ) { |
|
429 | if ( null === $meta_value ) { |
|
430 | $old_meta_value = ''; |
|
431 | ||
432 | if ( isset( $meta[ $meta_key ] ) ) |
|
433 | $old_meta_value = $meta[ $meta_key ]; |
|
434 | ||
435 | delete_user_meta( $id, $meta_key, $old_meta_value ); |
|
436 | } |
|
437 | else { |
|
438 | $simple = false; |
|
439 | ||
440 | if ( isset( $fields[ $meta_key ] ) ) { |
|
441 | $field_data = $fields[ $meta_key ]; |
|
442 | ||
443 | $simple = ( 'pick' == $field_data[ 'type' ] && in_array( pods_var( 'pick_object', $field_data ), $simple_tableless_objects ) ); |
|
444 | } |
|
445 | ||
446 | if ( $simple ) { |
|
447 | delete_user_meta( $id, $meta_key ); |
|
448 | ||
449 | if ( ! is_array( $meta_value ) ) { |
|
450 | $meta_value = array( $meta_value ); |
|
451 | } |
|
452 | ||
453 | foreach ( $meta_value as $value ) { |
|
454 | add_user_meta( $id, $meta_key, $value ); |
|
455 | } |
|
456 | } |
|
457 | else { |
|
458 | update_user_meta( $id, $meta_key, $meta_value ); |
|
459 | } |
|
460 | } |
|
461 | } |
|
462 | ||
463 | if ( $strict ) { |
|
464 | foreach ( $meta as $meta_key => $meta_value ) { |
|
465 | if ( !isset( $user_meta[ $meta_key ] ) ) |
|
466 | delete_user_meta( $id, $meta_key, $user_meta[ $meta_key ] ); |
|
467 | } |
|
468 | } |
|
469 | ||
470 | if ( !$conflicted ) |
|
471 | pods_no_conflict_off( 'user' ); |
|
472 | ||
473 | return $id; |
|
474 | } |
|
475 | ||
476 | /** |
|
477 | * Save a comment and it's meta |
|
@@ 543-604 (lines=62) @@ | ||
540 | * |
|
541 | * @since 2.0 |
|
542 | */ |
|
543 | public function save_comment_meta ( $id, $comment_meta = null, $strict = false, $fields = array() ) { |
|
544 | $simple_tableless_objects = PodsForm::simple_tableless_objects(); |
|
545 | ||
546 | $conflicted = pods_no_conflict_check( 'comment' ); |
|
547 | ||
548 | if ( !$conflicted ) |
|
549 | pods_no_conflict_on( 'comment' ); |
|
550 | ||
551 | if ( !is_array( $comment_meta ) ) |
|
552 | $comment_meta = array(); |
|
553 | ||
554 | $id = (int) $id; |
|
555 | ||
556 | $meta = get_comment_meta( $id ); |
|
557 | ||
558 | foreach ( $comment_meta as $meta_key => $meta_value ) { |
|
559 | if ( null === $meta_value ) { |
|
560 | $old_meta_value = ''; |
|
561 | ||
562 | if ( isset( $meta[ $meta_key ] ) ) |
|
563 | $old_meta_value = $meta[ $meta_key ]; |
|
564 | ||
565 | delete_comment_meta( $id, $meta_key, $old_meta_value ); |
|
566 | } |
|
567 | else { |
|
568 | $simple = false; |
|
569 | ||
570 | if ( isset( $fields[ $meta_key ] ) ) { |
|
571 | $field_data = $fields[ $meta_key ]; |
|
572 | ||
573 | $simple = ( 'pick' == $field_data[ 'type' ] && in_array( pods_var( 'pick_object', $field_data ), $simple_tableless_objects ) ); |
|
574 | } |
|
575 | ||
576 | if ( $simple ) { |
|
577 | delete_comment_meta( $id, $meta_key ); |
|
578 | ||
579 | if ( ! is_array( $meta_value ) ) { |
|
580 | $meta_value = array( $meta_value ); |
|
581 | } |
|
582 | ||
583 | foreach ( $meta_value as $value ) { |
|
584 | add_comment_meta( $id, $meta_key, $value ); |
|
585 | } |
|
586 | } |
|
587 | else { |
|
588 | update_comment_meta( $id, $meta_key, $meta_value ); |
|
589 | } |
|
590 | } |
|
591 | } |
|
592 | ||
593 | if ( $strict ) { |
|
594 | foreach ( $meta as $meta_key => $meta_value ) { |
|
595 | if ( !isset( $comment_meta[ $meta_key ] ) ) |
|
596 | delete_comment_meta( (int) $id, $meta_key, $comment_meta[ $meta_key ] ); |
|
597 | } |
|
598 | } |
|
599 | ||
600 | if ( !$conflicted ) |
|
601 | pods_no_conflict_off( 'comment' ); |
|
602 | ||
603 | return $id; |
|
604 | } |
|
605 | ||
606 | /** |
|
607 | * Save a taxonomy's term |