fix itemmetadata repo to respect use_logs flag. Makes importer faster

This commit is contained in:
leogermani 2019-01-21 14:32:45 -02:00
parent 1f35a51c8e
commit b273482224
1 changed files with 23 additions and 16 deletions

View File

@ -38,9 +38,11 @@ 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 ($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,
@ -50,6 +52,7 @@ class Item_Metadata extends Repository {
} else {
$diffs['value'] = [];
}
}
$unique = ! $item_metadata->is_multiple();
@ -101,7 +104,9 @@ class Item_Metadata extends Repository {
}
}
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 ) {
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(),