Używam rozszerzenia [Product Add-ons] [1] dla WooCommerce, które umożliwia niestandardowe pola dla produktów. To automatycznie wyświetla się w szablonie pojedynczego produktu.WooCommerce: Jak wyświetlać pola z rozszerzenia "Product Add-ons"?
Przez próbę i błąd w szablonie pojedynczego produktu, wygląda na to, że hakuje gdzieś w woocommerce_single_product_summary
(single_meta?).
Potrzebuję uzyskać ten sam zestaw pól formularza, aby wyświetlić szablon archive-product
(lista produktów). W moim przypadku jest to pole dla wniosku o kartę i jeden dla daty dostawy. Oba są potrzebne, zanim produkt zostanie dodany do koszyka z archiwum produktu. Nie jestem pewien, czy istnieje funkcja, którą mogę wzywać do tego, jeśli wiąże się to z bardziej zaawansowanym kodowaniem.
ODPOWIEDŹ W Pelmered za, udało mi się dostać dodatek na polach, aby pokazać się z dodanie tego do functions.php:
add_action('woocommerce_after_shop_loop_item_title', array($GLOBALS['Product_Addon_Display'], 'display'), 10);
1. podejściu
Następnie, Problem polegał na tym, że archiwum produktów nie tworzyło elementu formularza, a jedynie link do zakotwiczenia przycisku Dodaj do koszyka. Próbowałem więc ręcznie wstawić formularz. Kod z content-product.php
:
<?php do_action('woocommerce_before_shop_loop_item'); ?>
<h2><?php the_title(); ?></h2>
<?php // MANUALLY PUT IN FORM, BECAUSE HOOKS ONLY PUT IN A BUTTON AND NO FORM. NEEDED FOR ADD-ON FIELDS ?>
<form class="cart" method="post" enctype='multipart/form-data'>
<?php
/**
* woocommerce_after_shop_loop_item_title hook
*
* @hooked woocommerce_template_loop_rating - 5
* @hooked woocommerce_template_loop_price - 10
*/
do_action('woocommerce_after_shop_loop_item_title');
?>
<div itemprop="description">
<?php the_content(); ?>
</div>
<input type="hidden" name="add-to-cart" value="<?php echo esc_attr($product->id); ?>" />
<button type="submit" class="single_add_to_cart_button button alt"><?php echo $product->single_add_to_cart_text(); ?></button>
</form>
<?php //do_action('woocommerce_after_shop_loop_item'); ?>
To działało, ale swego rodzaju bałagan wiadomości Składanie i flash, AJAX. Po kliknięciu przycisku Dodaj do koszyka strona wygląda na odświeżoną, a następnie wygląda na to, że nic się nie stało. Ale kiedy przejdziesz do innej strony, wyświetla ona komunikaty (i wiele może się układać).
2. podejściu
Tak widziałem, że oryginalny AJAX Przycisk koszyk (nie w formie) został przy użyciu ciąg kwerendy wysłać identyfikator produktu. Tak więc próbuję teraz dostosować dodatkowe parametry, modyfikując JS dodawany do koszyka. To zadziałało. Co dodałem jako zaakceptowaną odpowiedź.
Odpowiedzią ze wsparcia woocommerce było „to dostosowanie nie jest objęty naszą polityką wsparcia”. Naprawdę potrzebuję rozwiązania tego. – jwinn