Intereting Posts
Сетка сетки «последний» класс для каждого третьего элемента Петля с динамическими категориями Удаление перенаправления FeedBurner Удалить ненужный запрос Mysql wordpress http к серверу https windows Добавить Incrementing ID в каждый абзац in_content OOP: отображать предупреждение и деактивировать плагин, если версия PHP меньше 5.4 Перехватите действие «потерянного пароля», предварительно перенаправив его на существующую страницу инструкций результат поиска фильтра с помощью мета-ключа персонализированного сообщения Могу ли я получить уведомление по электронной почте, когда медиа загружается в медиа-библиотеку? Как сделать поиск только для поиска в сообщении? Почему мой сайт показывает правильную страницу на первой странице, когда вы приходите на сайт, но не когда вы нажимаете «домой»? The_content и Preg_replace в загруженном iframe Как получить идентификатор пользователя при регистрации и добавить в пользовательскую таблицу Множественная установка WP с той же базой данных пользователей

Woocommerce – изменение переменной продукта Добавить в корзину, чтобы вести себя как внешний продукт с помощью настраиваемого поля (ссылка)

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

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

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

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

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

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

в single-product / add-to-cart / variable.php, но я все еще не уверен, куда он пойдет в этом шаблоне.

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

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

Solutions Collecting From Web of "Woocommerce – изменение переменной продукта Добавить в корзину, чтобы вести себя как внешний продукт с помощью настраиваемого поля (ссылка)"

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

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

Скопируйте шаблон woocommerce в мою тему, чтобы переопределить файл с одним продуктом / add-to-cart / variable.php

редактируя переменные.php, измените

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

к нижнему (замените, вызвав мой собственный URL-адрес поля):

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

Во всяком случае, это работает, чтобы получить ссылку на кнопку покупки (и вообще обходит корзину), но все же позволяет показывать варианты. Теперь мне просто нужно получить настраиваемое поле для варианта EACH вместо одного настраиваемого поля для переменной продукта (не понимал этого ограничения)! Тогда у меня может быть соответствующая ссылка для варианта EACH, а не только изменение продукта по умолчанию.

Надеюсь, это поможет кому-то там.

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

Следующий код должен просто показать (PHP echo ) поле « Buy_Link », но оно не 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() один и тот же запрос, а высказывание, show the_post() только из этого запроса, используя $query-> before. И этот $query извлекает данные из базы данных.

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

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

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

Я потратил несколько недель, пытаясь найти решение для этого – Надеюсь, это немного сэкономит 🙂