| @@ 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 |
|