添加到购物车之前,需要使用Woocommerce复选框

时间:2016-11-29 19:22:24

标签: wordpress woocommerce

我想要的是什么:在将产品添加到购物车之前,用户必须通过选中复选框来确认他们已阅读产品的“备忘单”。 (备忘单只是另一个链接上的pdf图。)

我一直在研究以下代码,但我无法让它正常工作。当未选中复选框时,它会弹出通知,但当页面重新加载时,“添加到购物车”按钮仍然处于禁用状态,因此用户必须重置其变体选项。即使这样,通知也会重新开始。

我不确定我可能缺少什么。任何帮助将不胜感激。

我的代码:

// Add Confirmation Checkbox on Product Single  
add_action( 'woocommerce_single_product_summary', 'woocommerce_cheat_sheet_confirm', 29 );  
    function woocommerce_cheat_sheet_confirm() {
        global $post;
        $cheat_sheet = get_field('cheat_sheet'); // Get Advanced Custom Field
            if ( ! empty( $cheat_sheet ) ) { // If it exists, add the confirmation box ?>                   
                    <div id="cheat-sheet-confirmation" class="checkbox">
                        <form>  
                             <label>
                                 <input id="cheatsheetconfirm" name="cheatsheetconfirm" type="checkbox" value="isconfirmed"> I confirm that I have read the <a href="<?php echo $cheat_sheet['url']; ?>">cheat sheet</a>.
                             </label>
                        </form>
                    </div>
            <?php } 
    }


   function cheatsheetConfirmation($passed, $product_id, $qty) { 
       $is_checked = isset($_POST['cheatsheetconfirm']) && $_POST['cheatsheetconfirm'] == 'on';
        if ($is_checked == false) {
           wc_add_notice( __( 'Please acknowledge that you have read the cheat sheet.', 'woocommerce' ), 'error' );
           $passed = false;
    }       
    return $passed;
}
   add_filter( 'woocommerce_add_to_cart_validation', 'cheatsheetConfirmation', 10, 3 );

0 个答案:

没有答案