/** * Dodanie checkboxa ze zgodą na dostarczenie treści cyfrowych w WooCommerce checkout */ // 1. Wyświetlenie checkboxa na stronie zamówienia add_action( 'woocommerce_review_order_before_submit', 'dodaj_zgode_na_tresci_cyfrowe', 9 ); function dodaj_zgode_na_tresci_cyfrowe() { woocommerce_form_field( 'akceptacja_tresci_cyfrowych', array( 'type' => 'checkbox', 'class' => array( 'form-row-wide', 'zgoda-cyfrowa' ), 'label' => 'Wyrażam zgodę na rozpoczęcie dostarczania treści cyfrowych przed upływem terminu do odstąpienia od umowy i przyjmuję do wiadomości, że po spełnieniu świadczenia utracę prawo odstąpienia od umowy.', 'required' => true, ), isset($_POST['akceptacja_tresci_cyfrowych']) ? 1 : 0 ); } // 2. Walidacja checkboxa - zablokowanie zamówienia, jeśli nie zaznaczono add_action( 'woocommerce_checkout_process', 'walidacja_zgody_na_tresci_cyfrowe' ); function walidacja_zgody_na_tresci_cyfrowe() { if ( ! ( isset( $_POST['akceptacja_tresci_cyfrowych'] ) && $_POST['akceptacja_tresci_cyfrowych'] ) ) { wc_add_notice( 'Musisz wyrazić zgodę na rozpoczęcie dostarczania treści cyfrowych przed upływem terminu do odstąpienia od umowy.', 'error' ); } } // 3. Zapisanie informacji o wyrażonej zgodzie w meta danych zamówienia add_action( 'woocommerce_checkout_update_order_meta', 'zapisz_zgode_na_tresci_cyfrowe' ); function zapisz_zgode_na_tresci_cyfrowe( $order_id ) { if ( isset( $_POST['akceptacja_tresci_cyfrowych'] ) && $_POST['akceptacja_tresci_cyfrowych'] ) { update_post_meta( $order_id, '_akceptacja_tresci_cyfrowych', 'tak' ); } } // 4. Wyświetlenie potwierdzenia zgody w mailach transakcyjnych oraz w szczegółach zamówienia (np. na stronie podziękowania) add_action( 'woocommerce_order_details_after_order_table', 'wyswietl_zgode_w_mailu_i_zamowieniu', 10, 4 ); add_action( 'woocommerce_email_after_order_table', 'wyswietl_zgode_w_mailu_i_zamowieniu', 10, 4 ); function wyswietl_zgode_w_mailu_i_zamowieniu( $order, $sent_to_admin = false, $plain_text = false, $email = '' ) { // Pobranie ID zamówienia (kompatybilność z HPOS oraz starym systemem postów) $order_id = method_exists( $order, 'get_id' ) ? $order->get_id() : $order->id; $zgoda = get_post_meta( $order_id, '_akceptacja_tresci_cyfrowych', true ); if ( $zgoda === 'tak' ) { echo '
'; echo 'Potwierdzamy, że podczas składania zamówienia została wyrażona zgoda o następującej treści: „Wyrażam zgodę na rozpoczęcie dostarczania treści cyfrowych przed upływem terminu do odstąpienia od umowy i przyjmuję do wiadomości, że po spełnieniu świadczenia utracę prawo odstąpienia od umowy.”'; echo '
'; echo '';
echo 'Status: WYRAŻONA
';
echo 'Klient zaakceptował treść: „Wyrażam zgodę na rozpoczęcie dostarczania treści cyfrowych przed upływem terminu do odstąpienia od umowy i przyjmuję do wiadomości, że po spełnieniu świadczenia utracę prawo odstąpienia od umowy.”';
echo '