2017-02-25 15 views
0

function.phpのこの単純な機能については、私はクーポンにチェックボックスを追加しましょう。ただし、クーポンを保存/更新すると、自分のチェックボックスの値(チェック/チェックされていない)がコミットされない(チェックボックスが常にオフになる)。言い換えれば、更新/保存するときに、ポストメーターのmeta_value列の値をyesに更新することができません。チェックボックスはそこにあります、私はちょうどそれを使用することはできません...非常にイライラする!私が間違ってやっている上の任意のsugestionsは、カスタムチェックボックスを追加したWoocommerceクーポン

function add_coupon_revenue_dropdown_checkbox() { 
$post_id = $_GET['post']; 

woocommerce_wp_checkbox(array('id' => 'include_stats', 'label' => __('Coupon check list', 'woocommerce'), 'description' => sprintf(__('Includes the coupon in coupon check drop-down list', 'woocommerce')))); 

$include_stats = isset($_POST['include_stats']) ? 'yes' : 'no'; 

update_post_meta($post_id, 'include_stats', $include_stats); 

do_action('woocommerce_coupon_options_save', $post_id); 

}add_action('woocommerce_coupon_options', 'add_coupon_revenue_dropdown_checkbox', 10, 0); 

を:)してください、私が影響を与えるためにしようとしている部分がある:

のwp-コンテンツ/プラグイン/ woocommerce /含ん/管理/メタボックス/

答えて

2

あなたのコードの問題は、チェックボックスの値をhtmlを生成するのと同じ関数に保存しようとしていることです。これは動作しません。現在の関数を2つの異なるWooCommerceフックで動作する2つの部分に分割する必要があります。

最初は、実際のチェックボックスを表示することである。

function add_coupon_revenue_dropdown_checkbox() { 
    woocommerce_wp_checkbox(array('id' => 'include_stats', 'label' => __('Coupon check list', 'woocommerce'), 'description' => sprintf(__('Includes the coupon in coupon check drop-down list', 'woocommerce')))); 
} 
add_action('woocommerce_coupon_options', 'add_coupon_revenue_dropdown_checkbox', 10, 0); 

第が送信されたフォームが処理されている場合、チェックボックスの値を保存することです。

function save_coupon_revenue_dropdown_checkbox($post_id) { 
    $include_stats = isset($_POST['include_stats']) ? 'yes' : 'no'; 
    update_post_meta($post_id, 'include_stats', $include_stats); 
} 
add_action('woocommerce_coupon_options_save', 'save_coupon_revenue_dropdown_checkbox'); 
+0

haha​​、あなたの前に私の答えを掲載しました!はい、私は今プロセスを理解しています。あなたの答えをありがとう:) – axelra82

関連する問題