Woocommerce - Измените Переменный продукт Добавить в корзину для поведения как внешний продукт с помощью Пользовательского Поля [закрытая] (ссылка)

Я импортирую продукты филиала через XML в Woocommerce. Из-за продуктов, имеющих изменения, если я использую Внешний тип продукта / тип продукта Филиала, я получаю повторение продукта на моем фронтэнде (например, того же продукта с другим местоположением/цветом). Для предотвращения этого, я пытаюсь импортировать эти продукты как переменные продукты, это решает проблему, кроме теперь я должен Измениться добавить в корзину для поведения как внешний продукт (т.е. Кнопка что ссылки на другой сайт).

Я создал Пользовательскую Стоимость, связанную с каждым продуктом под названием "Buy_Link", теперь что?

Я искал и искал, но не могущий найти решение для чего-то я думал, будет относительно просто для кого-то с php знанием.

Я знаю, что должен смочь получить ссылку, делающую что-то вроде этого:

<?php echo get_post_meta($post->ID, 'Buy_Link', true); ?>

(После того, как некоторая справка и немного больше поиска) я буду полагать, что должен буду поместить код: идентификатор, 'Buy_Link', верный);?>

в single-product/add-to-cart/variable.php, но я все еще не уверен, где он вошел бы в тот шаблон.

Я хотел бы, чтобы ссылка заменила часть функциональности оригинала добавить в корзину кнопка.

Очевидно, я не слишком знаком с кодом php, поэтому быть конкретным относительно того, как и куда в шаблоне я могу поместить код. Очень ценивший.

0
11.01.2014, 03:36
3 ответа

Я смог найти решение для добавления пользовательского поля к КАЖДОМУ изменению, в случае, если кто-то ищет это решение, существует учебное руководство здесь (благодарит Derek!):

http://designloud.com/how-to-add-affiliate-links-to-woocommerce-variations/

Я провел недели, пытаясь найти решение для этого - Надежда, это экономит кому-то некоторое время :)

0
20.02.2020, 00:08

Я смог найти решение. Это настолько просто, и я не могу полагать, что только сделал это сначала, но там Вы (понятное дело), я думал, что это было более сложно, чем это...

Мое решение ниже:

Скопируйте шаблон woocommerce в мою тему для переопределения single-product/add-to-cart/variable.php

редактирование variables.php, изменение

<?php echo esc_url( $product->add_to_cart_url() ); ?>

к ниже (заменяют путем вызова моего пользовательского полевого URL):

<?php echo get_post_meta($post->ID, 'Buy_Link', true); ?>

Так или иначе это работает обработка получить ссылку на кнопку покупки (и обходит корзину в целом), но все еще разрешение изменений быть показанным. Теперь я просто должен добраться, пользовательское поле для КАЖДОГО изменения вместо только одного пользовательского поля на переменный продукт (не понял это ограничение)! Затем у меня может быть соответствующая ссылка для КАЖДОГО изменения, не только изменения продукта по умолчанию.

Надежда это помогает кому-то там.

1
20.02.2020, 00:08
  • 1
    add_to_cart_url() является также поддающимся фильтрованию. –  helgatheviking 21.01.2014, 15:56

Вы заставили точный код отображать WordPress пользовательское поле. Я не приучен к WooCommerce, но я могу сказать что WordPress путь и предположить, что WooCommerce не будет отличаться, как они все, на самом деле идут с логикой кодирования.

Следующий код должен только показать (PHP echo) поле"Buy_Link", но это не выбирает поле от базы данных. Таким образом, перед тем кодом, необходимо выбрать связанные данные из базы данных сначала.

<?php echo get_post_meta($post->ID, 'Buy_Link', true); ?>

В WordPress путь мы обычно делаем то использование WP_Query() или get_posts() (случайно с query_posts()). И после этого, необходимо поместить это после the_post() функция.

Но с WP_Query, the_post() функция была бы похожа $query->the_post(), если мы идем как это:

<?php
$args = array('post_type'=>'post', 'post_status'=>'publish');

$query = new WP_Query($args);

if($query->have_posts()){
   while($query->have_posts()) {
     $query->the_post(); //is actually placing the post information here ?>
     <h2><?php the_title(); ?></h2>
     <div><?php echo get_post_meta($post->ID, 'Buy_Link', true); ?></div>
   <?php
   } //endwhile
} //endif
?>

Просто заметьте, что, мы делаем новое WP_Query() с некоторым аргументом, и затем проверяя, что, если существует какое-либо сообщение, поскольку мы запросили? Затем мы запустили PHP while loop передача того же запроса и высказывания, показывает the_post() только от того использования запроса $query-> прежде. И это $query выбирает данные из базы данных.

Так, в летнем необходимо поместить вышеупомянутый код показа пользовательского поля в запросе базы данных.

0
20.02.2020, 00:08
  • 1
    я полагаю, что должен буду поместить код: <?php echo get_post_meta($post->ID, 'Buy_Link', true); ?> в single-product/add-to-cart/variable.php, но я все еще не уверен, где он вошел бы в тот шаблон, так как я хотел бы, чтобы ссылка заменила часть функциональности оригинала добавить в корзину кнопка. Я - испуганные запросы, и циклы все очень сбивают с толку меня. (Извините за двойной комментарий) –  Samantha 06.01.2014, 02:38

Теги

Похожие вопросы