From b2734822249afc64abd9734fdd54557d20a10771 Mon Sep 17 00:00:00 2001 From: leogermani Date: Mon, 21 Jan 2019 14:32:45 -0200 Subject: [PATCH] fix itemmetadata repo to respect use_logs flag. Makes importer faster --- .../class-tainacan-item-metadata.php | 39 +++++++++++-------- 1 file changed, 23 insertions(+), 16 deletions(-) diff --git a/src/classes/repositories/class-tainacan-item-metadata.php b/src/classes/repositories/class-tainacan-item-metadata.php index 7a9bc3350..ca620c7b8 100644 --- a/src/classes/repositories/class-tainacan-item-metadata.php +++ b/src/classes/repositories/class-tainacan-item-metadata.php @@ -38,17 +38,20 @@ class Item_Metadata extends Repository { } $is_update = true; - $old = get_post_meta( $item_metadata->get_item()->get_id(), $item_metadata->get_metadatum()->get_id(), true ); + $new = $item_metadata->get_value(); - - if($old != $new) { - $diffs['value'] = [ - 'new' => $new, - 'old' => $old, - 'diff_with_index' => [], - ]; - } else { - $diffs['value'] = []; + + if ($this->use_logs) { + $old = get_post_meta( $item_metadata->get_item()->get_id(), $item_metadata->get_metadatum()->get_id(), true ); + if($old != $new) { + $diffs['value'] = [ + 'new' => $new, + 'old' => $old, + 'diff_with_index' => [], + ]; + } else { + $diffs['value'] = []; + } } $unique = ! $item_metadata->is_multiple(); @@ -100,8 +103,10 @@ class Item_Metadata extends Repository { } } } - - $this->logs_repository->insert_log( $item_metadata, $diffs, $is_update ); + + if ($this->use_logs) { + $this->logs_repository->insert_log( $item_metadata, $diffs, $is_update ); + } do_action( 'tainacan-insert', $item_metadata, $diffs, $is_update ); do_action( 'tainacan-insert-Item_Metadata_Entity', $item_metadata ); @@ -173,13 +178,15 @@ class Item_Metadata extends Repository { $taxonomy = new Entities\Taxonomy( $metadata_type->get_option( 'taxonomy_id' ) ); if ( $taxonomy ) { - $old = wp_get_object_terms( $item_metadata->get_item()->get_id(), $taxonomy->get_db_identifier(), [ - 'fields' => 'names' - ] ); + if ( $this->use_logs ) { + $old = wp_get_object_terms( $item_metadata->get_item()->get_id(), $taxonomy->get_db_identifier(), [ + 'fields' => 'names' + ] ); + } $success = wp_set_object_terms( $item_metadata->get_item()->get_id(), $new_terms, $taxonomy->get_db_identifier() ); - if ( ! $success instanceof \WP_Error ) { + if ( $this->use_logs && ! $success instanceof \WP_Error ) { $new = get_terms(array( 'taxonomy' => $taxonomy->get_db_identifier(),