我创建了一个自定义插件,它可以在 woocommerce 单一产品页面中动态显示自定义字段。显示字段,将其添加到购物车并添加到订单数据和电子邮件。然而,我花了几天时间尝试添加文件上传字段,但没有成功。该字段在前端显示如下:
add_action( 'woocommerce_before_add_to_cart_button', 'display_custom_fields' );
function display_custom_fields() {
?>
<p class="form-row validate-required" id="image" >
<span class="woocommerce-input-wrapper">
<label for="image" class=""><?php echo $stamp_welcome_text; ?> </label>
<input type="file" name="image" accept="image/*" >
</span>
</p>
<?php
}
然后添加到购物车,例如:
add_filter( 'woocommerce_add_cart_item_data', 'add_cart_item_data', 10,3 );
function add_cart_item_data( $cart_item_data, $product_id ) {
if ($_FILES['image'] ) {
require_once( ABSPATH . 'wp-admin/includes/image.php' );
require_once( ABSPATH . 'wp-admin/includes/file.php' );
require_once( ABSPATH . 'wp-admin/includes/media.php' );
$attachment_id = media_handle_upload( 'image', 0 );
if ( is_wp_error( $attachment_id ) AND $_FILES['image']['size'] > 0) {
die($attachment_id->get_error_message().'. Παρακαλώ επικοινωνήστε μαζί μας.');
} else $cart_item_data['image'] = $attachment_id;
}
return $item_cart_data;
}
当然,这只是代码的一部分。其余字段工作完美。是的,如果有人想知道的话,我只尝试过代码本身。
我已经“玩”了好几天了,但我不知道出了什么问题。非常感谢任何帮助:)
一只斗牛犬
慕田峪7331174
PIPIONE
RISEBY