На моем веб-сайте Woocommerce пользователи могут создавать до 6 различных изображений с помощью плагина Необычный продукт .Я пытаюсь отобразить эскизы этих пользователей на элементах корзины на странице оформления заказа вместо того, чтобы показывать только одно изображение товара.
Веб-сайт Я пытаюсь сделать это возможным.
(пример фото)
class-wc-cart.php
$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML( $thumbnail );
$xpath = new DOMXPath( $dom );
libxml_clear_errors();
$doc = $dom->getElementsByTagName("img")->item(1);
$src = $xpath->query(".//@src");
$srcset = $xpath->query(".//@srcset");
// custom image from customer
foreach ( $src as $s ) {
$s->nodeValue = $fpd_data['fpd_product_thumbnail'];
}
foreach ( $srcset as $s ) {
$s->nodeValue = $fpd_data['fpd_product_thumbnail'];
}
return $dom->saveXML( $doc );
Я использую foreach для циклического просмотра изображений от модного дизайнера.Но, похоже, это просто первое изображение в моей кассе.
Любая идея, если это вообще возможно, или я должен использовать другой подход в файле class-wc-cart.php
в woocommerce.
class-wc-product.php
//the additional form fields
public function add_product_designer_form() {
global $post;
$product_settings = new FPD_Product_Settings($post->ID);
if( $product_settings->show_designer() ) {
?>
<input type="hidden" value="<?php echo esc_attr( $post->ID ); ?>" name="add-to-cart" />
<input type="hidden" value="" name="fpd_product" />
<input type="hidden" value="" name="fpd_product_thumbnail[]" />
<input type="hidden" value="<?php echo isset($_GET['cart_item_key']) ? $_GET['cart_item_key'] : ''; ?>" name="fpd_remove_cart_item" />
<?php
if( !fpd_get_option('fpd_wc_disable_price_calculation') )
echo '<input type="hidden" value="" name="fpd_product_price" />';
do_action('fpd_product_designer_form_end', $product_settings);
}
}
В коде есть функция " after_product_designer ", в которую я добавляю некоторый код jquery, чтобы получить поле ввода, которое должно публиковать несколько fpd_thumbnails из FPD.
В if (order.product! = False)
var values = [];
if(<?php echo fpd_get_option('fpd_cart_custom_product_thumbnail'); ?>) {
// $cartForm.find('input[name="fpd_product_thumbnail"]').val(dataURL); (OLD/Original)
$('input[name="fpd_product_thumbnail[]"]').each(function(){ // NEW
values.push($(this).val(dataURL));
});
}