Skip to content

Commit d0576cb

Browse files
committed
Don’t sanitize Pods Whatsit objects in pods_sanitize() of params through PodsAPI handling
This will allow those objects to be properly used to save on DB/API method calls
1 parent 813b1ac commit d0576cb

File tree

2 files changed

+22
-17
lines changed

2 files changed

+22
-17
lines changed

classes/PodsAPI.php

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -6504,9 +6504,9 @@ public function duplicate_pod( $params, $strict = false ) {
65046504
$params = array( 'name' => $params );
65056505
}
65066506

6507-
$params = (object) pods_sanitize( $params );
6507+
$params = (object) pods_sanitize( $params, [ 'allow_pods_objects' => true ] );
65086508
} else {
6509-
$params = (object) pods_sanitize( $params );
6509+
$params = (object) pods_sanitize( $params, [ 'allow_pods_objects' => true ] );
65106510
}
65116511

65126512
$pod = $this->load_pod( $params, false );
@@ -6649,9 +6649,9 @@ public function duplicate_group( $params, $strict = false ) {
66496649
$params = array( 'name' => $params );
66506650
}
66516651

6652-
$params = (object) pods_sanitize( $params );
6652+
$params = (object) pods_sanitize( $params, [ 'allow_pods_objects' => true ] );
66536653
} else {
6654-
$params = (object) pods_sanitize( $params );
6654+
$params = (object) pods_sanitize( $params, [ 'allow_pods_objects' => true ] );
66556655
}
66566656

66576657
if ( ! empty( $params->pod_id ) ) {
@@ -6660,7 +6660,7 @@ public function duplicate_group( $params, $strict = false ) {
66606660
$load_params['pod'] = $params->pod;
66616661
}
66626662

6663-
$group = $this->load_group( $params, false );
6663+
$group = $this->load_group( $load_params, false );
66646664

66656665
if ( empty( $group ) ) {
66666666
if ( false !== $strict ) {
@@ -6757,7 +6757,7 @@ public function duplicate_field( $params, $strict = false ) {
67576757
}
67586758
}
67596759

6760-
$params = (object) pods_sanitize( $params );
6760+
$params = (object) pods_sanitize( $params, [ 'allow_pods_objects' => true ] );
67616761

67626762
$load_params = array();
67636763

@@ -6831,7 +6831,7 @@ public function duplicate_field( $params, $strict = false ) {
68316831
*/
68326832
public function duplicate_pod_item( $params ) {
68336833

6834-
$params = (object) pods_sanitize( $params );
6834+
$params = (object) pods_sanitize( $params, [ 'allow_pods_objects' => true ] );
68356835

68366836
$load_pod_params = array(
68376837
'name' => $params->pod,
@@ -7222,7 +7222,7 @@ private function export_pod_item_level( $pod, $params ) {
72227222
*/
72237223
public function reorder_pod_item( $params ) {
72247224

7225-
$params = (object) pods_sanitize( $params );
7225+
$params = (object) pods_sanitize( $params, [ 'allow_pods_objects' => true ] );
72267226

72277227
if ( null === pods_v( 'pod', $params, null, true ) ) {
72287228
return pods_error( __( '$params->pod is required', 'pods' ), $this );
@@ -7289,7 +7289,7 @@ public function reset_pod( $params, $pod = false ) {
72897289
}
72907290

72917291
if ( is_array( $params ) || is_object( $params ) ) {
7292-
$params = (object) pods_sanitize( $params );
7292+
$params = (object) pods_sanitize( $params, [ 'allow_pods_objects' => true ] );
72937293
} else {
72947294
$params = new stdClass();
72957295
}
@@ -7434,7 +7434,7 @@ public function delete_pod( $params, $strict = false, $delete_all = false ) {
74347434
global $wpdb;
74357435

74367436
if ( is_array( $params ) || is_object( $params ) ) {
7437-
$params = (object) pods_sanitize( $params );
7437+
$params = (object) pods_sanitize( $params, [ 'allow_pods_objects' => true ] );
74387438
} else {
74397439
$params = new stdClass();
74407440
}
@@ -7740,9 +7740,9 @@ public function delete_group( $params, $strict = false, $delete_all = false ) {
77407740
$params = [ 'name' => $params ];
77417741
}
77427742

7743-
$params = (object) pods_sanitize( $params );
7743+
$params = (object) pods_sanitize( $params, [ 'allow_pods_objects' => true ] );
77447744
} else {
7745-
$params = (object) pods_sanitize( $params );
7745+
$params = (object) pods_sanitize( $params, [ 'allow_pods_objects' => true ] );
77467746
}
77477747

77487748
if ( ! isset( $params->delete_all ) ) {
@@ -8285,7 +8285,7 @@ public function pod_exists( $params, $type = null ) {
82858285
$params = array( 'name' => $params );
82868286
}
82878287

8288-
$params = (object) pods_sanitize( $params );
8288+
$params = (object) pods_sanitize( $params, [ 'allow_pods_objects' => true ] );
82898289

82908290
if ( ! empty( $params->id ) || ! empty( $params->name ) ) {
82918291
if ( ! isset( $params->name ) ) {
@@ -9341,7 +9341,7 @@ public function load_helpers( $params = null ) {
93419341
*/
93429342
public function load_pod_item( $params ) {
93439343

9344-
$params = (object) pods_sanitize( $params );
9344+
$params = (object) pods_sanitize( $params, [ 'allow_pods_objects' => true ] );
93459345

93469346
if ( ! isset( $params->pod ) || empty( $params->pod ) ) {
93479347
return pods_error( __( 'Pod name required', 'pods' ), $this );
@@ -9386,7 +9386,7 @@ public function load_pod_item( $params ) {
93869386
*/
93879387
public function load_sister_fields( $params, $pod = null ) {
93889388

9389-
$params = (object) pods_sanitize( $params );
9389+
$params = (object) pods_sanitize( $params, [ 'allow_pods_objects' => true ] );
93909390

93919391
if ( empty( $pod ) ) {
93929392
$pod = $this->load_pod( array( 'name' => $params->pod ), false );

includes/data.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,10 @@ function pods_sanitize( $input, $params = array() ) {
2626
$output = array();
2727

2828
$defaults = array(
29-
'nested' => false,
30-
'type' => null,
29+
'nested' => false,
30+
'type' => null,
3131
// %s %d %f etc
32+
'allow_pods_objects' => false,
3233
);
3334

3435
if ( ! is_array( $params ) ) {
@@ -40,6 +41,10 @@ function pods_sanitize( $input, $params = array() ) {
4041
}
4142

4243
if ( is_object( $input ) ) {
44+
if ( $params['allow_pods_objects'] && $input instanceof Whatsit ) {
45+
return $input;
46+
}
47+
4348
$input = get_object_vars( $input );
4449

4550
$n_params = $params;

0 commit comments

Comments
 (0)