0

我有一个 wordpress 网站,客户在其中制作带有文本和图标的图像,一旦通过 woocommerce 处理并支付了该图像名称的费用,12345.png就会保存为 Customer_product_image

function add_order_item_meta($item_id, $values) {
    $key = 'customer_product_image'; // Define your key here
    $value = $values['user_img']; // Get your value here
    woocommerce_add_order_item_meta($item_id, $key, $value);
}

而且我工作得很好,但现在我正在禁止我的头靠在墙上!当购买的图像显示在订单管理详细信息页面上时,它显示为CUSTOMER_PRODUCT_IMAGE: 1234.png我将如何将其包装在图像标签中以便图像显示在那里?

我在谷歌上搜索了高低,但一直找不到任何东西,这可能是我不知道实际搜索的是什么......

4

2 回答 2

0

您可以使用过滤器woocommerce_order_item_display_meta_value来输出图像。将此代码放在您的functions.php 文件中,您需要修改img 标记的src 属性以在文件名值之前包含适当的URL。您还可以使用过滤器修改显示标签woocommerce_order_item_display_meta_key

add_filter( 'woocommerce_order_item_display_meta_value', 'modify_order_item_display_value' , 10, 3 );

function modify_order_item_display_value( $display_value, $meta, $wc_order_item ) {
    $meta_data = $meta->get_data();

    if( $meta_data['key'] === 'customer_product_image' ) {
        return '<img src="' . $meta_data['value'] . '">';
    }

    return $display_value;
}

add_filter('woocommerce_order_item_display_meta_key', 'modify_order_item_display_key', 10, 3);

function modify_order_item_display_key( $display_key, $meta, $wc_order_item ) {
    $meta_data = $meta->get_data();

    if( $meta_data['key'] === 'customer_product_image' ) {
        return 'Customer Image';
    }

    return $display_key;
}
于 2018-03-18T17:01:07.430 回答
0

这对我有用!

首先,我添加了这个片段来删除订单详细信息渲染上的自定义元项目:

add_filter( 'woocommerce_hidden_order_itemmeta', 'hide_order_item_meta_fields' );

function hide_order_item_meta_fields( $fields ) {
$fields[] = 'current_view';
$fields[] = 'custom_image';//Add all meta keys to this array,so that it will not be displayed in order meta box
return $fields;
}

其次,我将其添加回来,并带有所需的文本和图像标签:

 add_action( 'woocommerce_after_order_itemmeta', 'order_meta_customized_display',10, 3 );


 function order_meta_customized_display( $item_id, $item, $product ){
  $all_meta_data=get_metadata( 'order_item', $item_id, "", "");
  $useless = array(
  "_qty","_tax_class","_variation_id","_product_id","_line_subtotal","_line_total","_line_subtotal_tax","_line_tax","_line_tax_data"
  );// Add key values that you want to ignore

  $customized_array= array();
  foreach($all_meta_data as $data_meta_key => $value) {
    if(!in_array($data_meta_key,$useless)){
      $newKey = ucwords(str_replace('_'," ",$data_meta_key ));//To remove underscrore and capitalize
      $customized_array[$newKey]=ucwords(str_replace('_'," ",$value[0])); // Pushing each value to the new array
      }
    }

  if (!empty($customized_array)) {
    foreach($customized_array as $data_meta_key => $value){

    echo "<div class='product_container'><span>Produkt Billede: </span><img src='".wp_upload_dir()['baseurl'].'/flapper/'. $value ."' /> </div>";
        }
    }
 }

我在这个页面上找到了这个问题的答案

于 2018-03-18T17:01:40.853 回答