首页 > 解决方案 > woocommerce/花式产品设计师的结帐部分中的多个缩略图

问题描述

在我的 Woocommerce 网站中,用户可以通过Fancy 产品设计器插件设计自己的多达 6 个不同的图像。我试图在结帐页面的购物车项目上输出这些用户的缩略图,而不是只显示一张产品图片。

网站我正在努力使这成为可能。

在此处输入图像描述(示例照片)


类-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 的文件中使用另一种方法。


类-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 发布多个 fpd_thumbnail 的输入字段。

它在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));
    });
}

标签: phpwordpresswoocommerceshopping-cart

解决方案


1)您应该向WP.SE询问与 WP 相关的问题

2)您的解决方案应低于代码(functions.php根据您的需要添加和修改):

// Product thumbnail in checkout
add_filter( 'woocommerce_cart_item_thumbnail', 'product_thumbnail_in_checkout', 200, 3 );
function product_thumbnail_in_checkout( $thumbnail, $cart_item, $cart_item_key )
{
    $use_product_thumb = false;   //true or false
    if (array_key_exists('fpd_data', $cart_item))
    {
        $thumbnail =""; //clear existing thumb
        if ($use_product_thumb)
        {
            $fp = json_decode( stripslashes($cart_item['fpd_data']['fpd_product']) , true);
            foreach($fp['product'] as $each)
            {
             $thumb = $each["thumbnail"];
             $thumbnail .= '<img src="'.$thumb.'" style="width:50px; float:left; margin:5px;" />';
            }
        }
        else{
            $thumbnail = '<img src="'.$cart_item['fpd_data']['fpd_product_thumbnail'].'" style="float: left; margin: 5px; width: 200px; max-width: 550px;" />'; 
        }
    }
    return $thumbnail;
}

推荐阅读