我使用插件Custom fields
添加了几个组。之后,我在产品页面上显示了它们,并尝试在添加产品时保存它们,但它们未出现在$_POST
数组中。我的代码如下:
add_action('woocommerce_single_product_summary', 'display_custom_meta_field_value', 25 );
function display_custom_meta_field_value() {
global $product;
$type = get_post_meta( $product->get_id(),'pers_type', true );
$label = get_post_meta( $product->get_id(),'pers_label', true );
$value = get_post_meta( $product->get_id(),'pers_value', true );
$type_one = get_post_meta( $product->get_id(),'pers_type_one', true );
$label_one = get_post_meta( $product->get_id(),'pers_label_one', true );
$value_one = get_post_meta( $product->get_id(),'pers_value_one', true );
$type_two = get_post_meta( $product->get_id(),'pers_type_two', true );
$label_two = get_post_meta( $product->get_id(),'pers_label_two', true );
$value_two = get_post_meta( $product->get_id(),'pers_value_two', true );
$type_three = get_post_meta( $product->get_id(),'pers_type_three', true );
$label_three = get_post_meta( $product->get_id(),'pers_label_three', true );
$value_three = get_post_meta( $product->get_id(),'pers_value_three', true );
$type_four = get_post_meta( $product->get_id(),'pers_type_four', true );
$label_four = get_post_meta( $product->get_id(),'pers_label_four', true );
$value_four = get_post_meta( $product->get_id(),'pers_value_four', true );
$type_five = get_post_meta( $product->get_id(),'pers_type_five', true );
$label_five = get_post_meta( $product->get_id(),'pers_label_five', true );
$value_five = get_post_meta( $product->get_id(),'pers_value_five', true );
if ($type) {
echo "<div id='personalisation_wrapper'>";
echo "<h5 style='color: #50c5da'>Personalisation</h5>";
renderPersonalisation($type, $label, $value, "pers");
renderPersonalisation($type_one, $label_one, $value_one, "pers_one");
renderPersonalisation($type_two, $label_two, $value_two, "pers_two");
renderPersonalisation($type_three, $label_three, $value_three, "pers_three");
renderPersonalisation($type_four, $label_four, $value_four, "pers_four");
renderPersonalisation($type_five, $label_five, $value_five, "pers_five");
echo "</div>";
}
}
function renderPersonalisation($type, $label, $value, $name) {
if ($type) {
if( $type == 'Text' ) {
echo '<p style="margin-bottom: 2px;" id="pers_label_one">' . $label . '</p>';
echo '<input style="border: 1px solid #ccc!important; background: none!important" class="pers_inputs" placeholder="'.$value.'" type="text" name="'.$name.'" >';
} else {
$values = explode("\n", $value);
echo '<p style="margin-bottom: 2px;" id="pers_label_one">' . $label . '</p>';
echo '<select style="
border: 1px solid #ccc!important;
background: url(image/select_arrow.png) no-repeat center right!important;
" class="pers_inputs" name="'.$name.'" >';
foreach ($values as $k => $v) {
echo "<option value='".$v."' >".$v."</option>";
}
echo "</select>";
}
}
}
// Save custom personalisation to cart item
add_filter( 'woocommerce_add_cart_item_data', 'save_custom_fields_data_to_cart', 10, 2 );
function save_custom_fields_data_to_cart( $cart_item_data, $product_id ) {
var_dump($_POST);die;
}
这些字段具有名称,看不到为什么它们没有出现在转储数组中。谢谢!