Inventory_Presser_WP_All_Import::detect_delimited_options( mixed $post_id, mixed $meta_key, mixed $meta_value )
If the value being saved to the meta key inventory_presser_options_array contains pipe-delimited or comma-delimited values, split the string and add each option individually.
On This Page
Parameters Parameters
- $post_id
-
(mixed) (Required) ID of the post whose meta was updated.
- $meta_key
-
(mixed) (Required) The meta key that has been updated.
- $meta_value
-
(mixed) (Required) The new meta value.
Return Return
(void)
Source Source
File: includes/integrations/class-wp-all-import.php
public function detect_delimited_options( $post_id, $meta_key, $meta_value ) {
// Is it a vehicle?
if ( ! class_exists( 'INVP' ) || INVP::POST_TYPE !== get_post_type( $post_id ) ) {
// No.
return;
}
if ( apply_filters( 'invp_prefix_meta_key', 'options_array' ) !== $meta_key ) {
return;
}
if ( empty( $meta_value ) ) {
return;
}
// Are there lots of commas or pipes in the value?
$delimiters = array(
'|' => substr_count( $meta_value ?? '', '|' ),
',' => substr_count( $meta_value ?? '', ',' ),
';' => substr_count( $meta_value ?? '', ';' ),
);
$delimiters = array_filter(
$delimiters,
function ( $value ) {
return $value > 1;
}
);
if ( empty( $delimiters ) ) {
// No.
return;
}
$found_delimiter = array_search( max( $delimiters ), $delimiters, true );
if ( false === $found_delimiter ) {
// No.
return;
}
// Repeating delimiter found. Erase the current value.
delete_post_meta( $post_id, $meta_key );
// Add each option individually, options_array is a multi-meta value.
foreach ( array_filter( explode( $found_delimiter, $meta_value ) ) as $option ) {
if ( '' === trim( $option ) ) {
continue;
}
add_post_meta( $post_id, $meta_key, trim( $option ) );
}
}
Expand full source codeCollapse full source codeView on Github