نمایش قوانین و مقرارت جداگانه برای هر محصول در ووکامرس
گاهی اوقات لازم است قوانین و مقرارت مربوط به هر محصول در صفحه پرداخت ووکامرس نمایش دهیم. در اینجا باید از دستورات شرطی استفاده کنیم.
کافیست کد زیر را در functions.php قرار دهید
add_action( 'woocommerce_review_order_before_submit', 'a4fran3_add_checkout_per_product_terms', 9 ); function a4fran3_add_checkout_per_product_terms() { // Show Terms 1 $product_id_1 = 522; $product_cart_id_1 = WC()->cart->generate_cart_id( $product_id_1 ); $in_cart_1 = WC()->cart->find_product_in_cart( $product_cart_id_1 ); if ( $in_cart_1 ) { ?> <p class="form-row terms wc-terms-and-conditions"> <label class="woocommerce-form__label woocommerce-form__label-for-checkbox checkbox"> <input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="terms-1" <?php checked( apply_filters( 'woocommerce_terms_is_checked_default', isset( $_POST['terms-1'] ) ), true ); ?> id="terms-1"> <span>I agree to <a href="___" target="_blank">terms-1</a></span> <span class="required">*</span> </label> <input type="hidden" name="terms-1-field" value="true"> </p> <?php } // Show Terms 2 $product_id_2 = 2152; $product_cart_id_2 = WC()->cart->generate_cart_id( $product_id_2 ); $in_cart_2 = WC()->cart->find_product_in_cart( $product_cart_id_2 ); if ( $in_cart_2 ) { ?> <p class="form-row terms wc-terms-and-conditions"> <label class="woocommerce-form__label woocommerce-form__label-for-checkbox checkbox"> <input type="checkbox" class="woocommerce-form__input woocommerce-form__input-checkbox input-checkbox" name="terms-2" <?php checked( apply_filters( 'woocommerce_terms_is_checked_default', isset( $_POST['terms-2'] ) ), true ); ?> id="terms-2"> <span>I agree to <a href="____" target="_blank">terms-2</a></span> <span class="required">*</span> </label> <input type="hidden" name="terms-2-field" value="true"> </p> <?php } } // Show notice if customer does not tick either terms add_action( 'woocommerce_checkout_process', 'a4fran3_not_approved_terms_1' ); add_action( 'woocommerce_checkout_process', 'a4fran3_not_approved_terms_2' ); function a4fran3_not_approved_terms_1() { if ( $_POST['terms-1-field'] == true ) { if ( empty( $_POST['terms-1'] ) ) { wc_add_notice( __( 'Please agree to terms-1' ), 'error' ); } } } function a4fran3_not_approved_terms_2() { if ( $_POST['terms-2-field'] == true ) { if ( empty( $_POST['terms-2'] ) ) { wc_add_notice( __( 'Please agree to terms-2' ), 'error' ); } } }
کافیست در کد بالا آیدی محصول مورد نظر خود را قرار دهید.
نتیجه کد بالا :