1. Приветствуем Вас на нашем закрытом форуме для складчиков сайта cmsheaven.org. Если Вы частный вебмастер, фрилансер, владелец малого или среднего бизнеса, представитель студии по разработке сайтов - будем рады видеть Вас в наших рядах экономных людей.
    Регистрация на форуме возможна только после вступления в складчину

Добавление записей в wp_term_relationships для вариаций

Тема в разделе "Вопросы по Wordpress [тех. поддержка]", создана пользователем hol2006, 14 июн 2017.

  1. hol2006

    hol2006 Cкладчик

    Регистрация:
    28 мар 2017
    Сообщения:
    7
    Симпатии:
    1
    Извините за глупый вопрос, но я в замешательстве. Когда я использую WP ALL IMPORT, он добавляет записи в wp_term_relationships только для родительских продуктов, но я хочу добавить записи (ссылки на термины) для вариантов. Я попытался сделать это, добавив в функцию functions.php пользовательскую функцию с помощью save_post, но это не сработает. Помогите мне пожалуйста, что я делаю неправильно?

    Код:
    add_action( 'save_post', 'relations_var' );
    function relations_var( $post_id ) {
        global $wpdb;
        foreach(get_the_terms($post_id) as $term) {
            $wpdb->insert( 'wp_term_relationships', array( 'object_id' => $post_id, 'term_taxonomy_id' => $term->term_id, 'term_order' => 0), array('%d','%d','%d')); //   
        }
    }
    #1
  2. hol2006

    hol2006 Cкладчик

    Регистрация:
    28 мар 2017
    Сообщения:
    7
    Симпатии:
    1
    UPDATE
    Я написал небольшой аддон для WP ALL Import, но он не работает как хотелось бы. Я думаю, проблема заключается в том, что я не правильно пытаюсь взять ID атрибутов и прочих таксономий.
    Если я использую статистический term_taxonomy_id, все работает хорошо. Когда я использую $term_id в поле term_taxonomy_id, всплывает эта ошибка:
    Код:
    WordPress database error: [You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0)' at line 1]
    INSERT INTO `wp_term_relationships`(`object_id`, `term_taxonomy_id`, `term_order`) VALUES (3595,,0)
    Сам код функции аддона для плагина:
    Код:
    function relationships_addon_import($post_id, $data, $import_options) {
    
        global $relationships_addon;
        global $wpdb;
         $product = get_product($post_id);
        foreach( $product->get_attributes() as $taxonomy => $terms_slug ){
        foreach($terms_slug as $term){
        $term_obj = get_term_by('slug', $term, $taxonomy);
        $term_id = $term_obj->term_id; 
        $sql = "
                INSERT INTO `wp_term_relationships`(`object_id`, `term_taxonomy_id`, `term_order`) VALUES ($post_id, $term_id, 0)
            ";
                $wpdb->get_var( $sql );
                $relationships_addon->log( '- Adding wp_term_relationships, for post_id: '  . $post_id .'   term ID: ' . );
        }
        }
    }
    Помогите пожалуйста =)
    #2