私はWordPressの電子商取引のウェブサイトで、選択したショッピングプラットフォームを使って作業しています。 WooCommerce。WooCommerceのカスタムチェックボックスで、選択解除すると「添付された」PHPコーディングが削除されないのはなぜですか?
私はfunctions.php
ファイルに次のコードを配置することで、WooCommerce製品ダッシュボードの中に、カスタムチェックボックスを作成しました:カスタムフィールドの値を保存するには
function product_custom_fields_add(){
global $post;
$input_checkbox = get_post_meta($post->ID, '_engrave_text_option', true);
if(empty($input_checkbox) || $input_checkbox == 'no') $input_checkbox = '';
echo '<div class="product_custom_field">';
woocommerce_wp_checkbox(
array(
'id' => '_engrave_text_option',
'desc' => __('set custom Engrave text field', 'woocommerce'),
'label' => __('Display custom Engrave text field', 'woocommerce'),
'desc_tip' => 'true',
'value' => $input_checkbox
)
);
echo '</div>';
}
add_action('woocommerce_product_options_advanced', 'product_custom_fields_add');
、私はfunctions.php
に次のコードを挿入していますファイル:
function woocommerce_product_custom_fields_save($post_id){
$_engrave_text_option = isset($_POST['_engrave_text_option']) ? 'yes' : 'no';
update_post_meta($post_id, '_engrave_text_option', $_engrave_text_option);
}
add_action('woocommerce_process_product_meta', 'woocommerce_product_custom_fields_save');
アイデアは、サイト管理者は、チェックボックスを選択したとき、それは製品ページ上のカスタムテキストボックスを作成するために、以下のコードを、トリガということです
function add_engrave_text_field() {
global $post;
// Get the checkbox value
$engrave_option = get_post_meta($post->ID, '_engrave_text_option', true);
// If is single product page and have the "engrave text option" enabled we display the field
if (is_product() && ! empty($engrave_option)) {
?>
<div>
<label class="product-custom-text-label" for="engrave_text"><?php _e('Custom Letters:', 'woocommerce'); ?><br>
<input style="min-width:220px" type="text" class="product-counter" name="engrave_text" placeholder="<?php _e('Enter Your Custom Letters ...', 'woocommerce'); ?>" minlength="<?php global $post; echo get_post_meta($post->ID,'_minimum_engrave_text_option',true);?>" maxlength="<?php global $post; echo get_post_meta($post->ID,'_maximum_engrave_text_option',true);?>" />
</label>
</div><br>
<?php
}
}
add_action('woocommerce_before_add_to_cart_button', 'add_engrave_text_field', 0);
?>
上記のコードは、チェックボックスをオンにして、製品ページにカスタムテキストフィールドを作成するときに機能します。問題がある場合、チェックボックスの選択が解除されると、カスタムテキストボックスは製品ページに残ります。
私はどこに間違っているのか誰にでも見えますか?ここで
私はあなたがこのコメントに何を意味するかunderstantはありません。私の答えはこの問題の問題を解決しましたか?私はイエスと思う。 –
ありがとうございます。チェックボックスの問題を解決します。 :-) – Craig