У меня есть веб-сайт Woocommerce, и у каждого продукта есть поле IMEI.Мне нужно только для конкретного продукта удалить поле проверки (чтобы не проверять поле IMEI).Я пробовал много способов, я не могу заставить его работать.
Вот снимок экрана:

И код:
function custom_output_engraving_field() {
$product;
?>
<div class="imei-engraving-field">
<label for="imei-values" name="suwp-imei-values-label">IMEI: <br> (Enter 15 digits), dial *#06# to display </label>
<input type="text" id="imei-engraving" name="imei-engraving" placeholder="<?php _e( 'Enter engraving text', 'myimei' ); ?>" maxlength="15">
<label for="imeinote-values" name="suwp-imeinote-values-label">IMEI Note: </label>
<textarea rows="10" cols="30" id="imeinote-engraving" name="imeinote-engraving" placeholder="<?php _e( 'Enter engraving text', 'myimeinote' ); ?>"> </textarea>
</div>
<?php
}
add_action( 'woocommerce_before_add_to_cart_button', 'custom_output_engraving_field', 15 );
function suwpimei_custom_fields_validation($true, $product_id, $quantity ) {
$imei_values = trim($_REQUEST['imei-engraving']);
$imei = trim($imei_values);
$chk_dup_imei[] = $imei;
$serial_length = 15;
$actual_length = (int)strlen($imei);
$flag_continue_imei = TRUE;
$flag_msg_imei = array();
if ( empty( $imei_values ) ) {
// empty submission
$flag_continue_imei = FALSE;
$flag_msg_imei = 'Please enter at least one IMEI.<br />';
} else {
if ( $actual_length != $serial_length && suwpimei_is_digits($imei) == 1 ) {
$flag_continue_imei = FALSE;
$flag_msg_imei = $imei . ' should be ' . $serial_length . ' characters, not '. $actual_length . '. This is not a valid IMEI entry.<br />';
}
if ( suwpimei_is_digits($imei) != 1 ) {
$flag_continue_imei = FALSE;
$flag_msg_imei = $imei . ' is invalid. IMEI should be digits only: no letters, punctuation, or spaces.<br />';
}
if ( $actual_length == $serial_length && suwpimei_is_digits($imei) == 1 ) {
// only do the suwp_check_imei when imei is 15 digits
if ($serial_length == 15) {
if (suwpimei_check_imei($imei) == 0) {
$flag_continue_imei = FALSE;
$flag_msg_imei = $imei . ' is not a valid IMEI entry.<br />';
}
}
}
}
$flag_msg_string = '';
$flag_msg_string = $flag_msg_imei;
if ( !$flag_continue_imei ) {
wc_add_notice( $flag_msg_string, 'error' );
return false;
}
if( ! empty ( WC()->cart->get_cart() ) ) {
//WC()->cart->empty_cart();
wc_add_notice( 'Only allowed 1 item in cart, please remove previous item.', 'error' );
return false;
}
return true;
}
add_action( 'woocommerce_add_to_cart_validation', 'suwpimei_custom_fields_validation', 10, 3 );