Pisząc kilka lat temu artykuł o automatycznym dodawaniu załącznika do wiadomości e-mail z potwierdzeniem zamówienia w WooCommece (WordPress), co wynikało z nowego wymogu, jaki m.in. na sklepy internetowe wprowadziła ustawa o prawach konsumenta, która weszła w życie 25 grudnia 2014, nie spodziewałem się, że nie tylko będzie to jeden z najpopularniejszych artykułów na stronie, ale jednocześnie będzie w ścisłej czołówce, jeśli chodzi o generowanie zapytań o wsparcie. Ale zanim pospieszycie do swoich stron dodawać artykuł na ten temat, poczekajcie chwilkę, bo jest jeszcze jeden pokrewny temat, który wprawdzie do teraz na stronie się nie pojawił, ale zazwyczaj pytanie o ten element pojawia się przy tej samej okazji. Przynajmniej od osób, które w swoich sklepach internetowych sprzedają (głównie) produkty cyfrowe, takie jak eBooki, szkolenia, wzory dokumentów…

Rezygnacja z prawa do odstąpienia od umowy w WooCommerce

Mowa o 14-dniowym odstąpieniu od umowy, które przysługuje każdemu konsumentowi (a niebawem – bo z początkiem 2021 – zostanie rozszerzone również o osoby prowadzące działalność gospodarczą i dokuonujące – w pewnych sytuacjach – zakupów „na firmę”) w przypadku zakupów dokonywanych poza miejscem świadczenia usługi przez przedsiębiorcę, czyli właściwie z automatu (prawie) wszystkich zakupów dokonywanych przez internet.

W przypadku produktów fizycznych chyba nikt od podstawowej znajomości prawa nawet nie próbuje ograniczyć tego prawa konsumentowi, to jeszcze dokłada – a przynajmniej powinien – starań, by należycie poinformować konsumenta o tym prawie, bo utajnienie tego raczej się nie opłaca:

Art. 29.

Jeżeli konsument nie został poinformowany przez przedsiębiorcę o prawie odstąpienia od umowy, prawo to wygasa po upływie 12 miesięcy od dnia upływu terminu, o którym mowa w art. 27.

W przypadku produktów cyfrowych sytuacja wygląda trochę inaczej, bo choć część osób oferujących swoje cyfrowe produkty nie tylko nie próbuje wyłączyć tego prawa dla konsumenta, to jeszcze robi z tego swój atut (gwarancja satysfakcji lub zwrot pieniędzy), często nawet dodatkowo wydłużając ten okres do 30 dni.

Jednak niektóre sklepy, niektórzy twórcy aż takiej wiary w swój produkt, czy też uczciwość kupujących nie pokładają, i chętnie korzystają z możliwości, jakie daje im prawo, i w przypadku treści cyfrowych wyłączają standardowo przysługujące konsumentowi prawo do zwrotu. Oczywiście musi to odbyć się za wyraźną zgodą konsumenta:

Art. 38.

Prawo odstąpienia od umowy zawartej poza lokalem przedsiębiorstwa lub na odległość nie przysługuje konsumentowi
w odniesieniu do umów:

(…)

13. o dostarczanie treści cyfrowych, które nie są zapisane na nośniku materialnym, jeżeli spełnianie świadczenia rozpoczęło się za wyraźną zgodą konsumenta przed upływem terminu do odstąpienia od umowy i po poinformowaniu go przez przedsiębiorcę o utracie prawa odstąpienia od umowy.

A skoro ma to być za wyraźną zgodą konsumenta, to wydaje się dość oczywiste, że trzeba tu zastosować coś, co będzie wymagało działania klienta, czyli np. odpowiedni „checkbox” do zaznaczenia podczas składania zamówienia.

I tak, po ponad trzech tysiącach znaków wstępu (! ;-)), dochodzimy do mięsa, czyli tego, jak dodać tego typu element w sklepie internetowym działającym na WordPressie, z wykorzystaniem wtyczki WooCommerce.

Zgoda przy przycisku potwierdzającym zamówienie

Wersja podstawowa, na którą decyduje się chyba większość osób, w tym tych, które z tego typu zapytaniem piszą do mnie, to odpowiedni „ptaszek do zaznaczenia” przy innym obowiązkowym „ptaszku do zaznaczenia”, czyli akceptacji regulaminu sklepu internetowego:

By dodać tego typu „ptaszka” w tym miejscu w WooCommerce (WordPress) możemy skorzystać np. z takiego kodu, który umieszczamy w pliku functions.php, oczywiście w motywie potomnym:

function webinsider_wp_wc_add_checkout_no14days() {
	woocommerce_form_field( 'no14days', array(
	   'type'          => 'checkbox',
	   'class'         => array('form-row'),
	   'label_class'   => array('woocommerce-form__label woocommerce-form__label-for-checkbox checkbox'),
	   'input_class'   => array('woocommerce-form__input woocommerce-form__input-checkbox input-checkbox'),
	   'required'      => true,
	   'label'         => 'Wyrażam zgodę na dostarczenie mi treści cyfrowych objętych zamówieniem przed upływem terminu do odstąpienia od umowy...',
	)); 
}
add_action( 'woocommerce_review_order_before_submit', 'webinsider_wp_wc_add_checkout_no14days', 9 );

Można jeszcze dołożyć komunikat „ostrzeżenia”, gdy ktoś będzie chciał sfinalizować zamówienie bez zaznaczenia tej opcji:

function webinsider_wp_wc_add_checkout_no14days_warring() {
    if ( ! (int) isset( $_POST['no14days'] ) ) {
        wc_add_notice( __( 'Zaznacz pole zgody na dostarczenie treści cyfrowych przed upływem terminu do odstąpienia od umowy.' ), 'error' );
    }
}
add_action( 'woocommerce_checkout_process', 'webinsider_wp_wc_add_checkout_no14days_warring' );

A nawet nie tyle można, ile trzeba, bo opcja „required => true” z jakiegoś powodu w dla takiego elementu, w WooCommerce znaczy tylko tyle, że przy tym polu ma pojawić się gwiazdka. A sam fakt braku zaznaczenia tak oznaczonego pola nie blokuje możliwości finalizacji zamówienia.

Oczywiście podane w powyższym przykładzie „wyrażam zgodę na dostarczenie mi treści cyfrowych objętych zamówieniem przed upływem terminu do odstąpienia od umowy”, czy też „zaznacz pole zgody na dostarczenie treści cyfrowych przed upływem terminu do odstąpienia od umowy” jest tylko w celach poglądowych, i w realnym zastosowaniu warto zmienić to na coś bardziej „pro”. Choć ostatecznie pewnie i ten zwrot by przeszedł… ;-)

Zgoda pod sekcją danych klienta

W niektórych przypadkach dostaje jednak zapytanie o umieszczenie tego typu „ptaszka” tuż pod sekcją, gdzie klient podaje swoje dane osobowe, co jest argumentowane – w sumie nawet dość logicznie – że w tym miejscu jest większa szansa na to, że klient ową zgodę zaznaczy bardziej świadomie, czytając, a nie odruchowo, niczym kolejna zgoda „regulaminowa” (np. polityka prywatności).

W takim przypadki możemy skorzystać np. z takiego kodu:

function webinsider_wp_wc_add_checkout_no14days( $fields ) {
	$fields['billing']['billing_no14days'] = array(
		'type'          => 'checkbox',
		'label'     => __('Wyrażam zgodę na dostarczenie mi treści cyfrowych objętych zamówieniem przed upływem terminu do odstąpienia od umowy...', 'woocommerce'),
		'required'  => true,
		'clear'     => true,
		'class'     => array('input-checkbox', 'form-row-wide'),
		'priority'     => '250'
	);
	return $fields;
}
add_filter( 'woocommerce_checkout_fields', 'webinsider_wp_wc_add_checkout_no14days' );

Oczywiście podane w powyższym przykładzie „wyrażam zgodę na dostarczenie mi treści cyfrowych objętych zamówieniem przed upływem terminu do odstąpienia od umowy” jest tylko w celach poglądowych, i w realnym zastosowaniu warto zmienić to na coś bardziej „pro”. Choć ostatecznie pewnie i ten zwrot by przeszedł… ;-)

Tylko gdy w koszyku produkt cyfrowy lub wirtualny

Może się zdarzyć też tak, że w sklepie mamy zarówno produkty cyfrowe (wirtualne i/lub do pobrania) oraz fizyczne. W takim przypadku można się pokusić o „lekką” modyfikację kodu:

function webinsider_wp_wc_add_checkout_no14days() {
	
	$virtual = false;
	$downloadable = false;
    
	foreach( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
		if ( $cart_item['data']->is_downloadable() ) $downloadable = true;
		if ( $cart_item['data']->is_virtual() ) $virtual = true;      
	}
	
	if ( $downloadable || $virtual ) {
		woocommerce_form_field( 'no14days', array(
			'type'          => 'checkbox',
			'class'         => array('form-row'),
			'label_class'   => array('woocommerce-form__label woocommerce-form__label-for-checkbox checkbox'),
			'input_class'   => array('woocommerce-form__input woocommerce-form__input-checkbox input-checkbox'),
			'required'      => true,
			'label'         => 'Wyrażam zgodę na dostarczenie mi treści cyfrowych objętych zamówieniem przed upływem terminu do odstąpienia od umowy...',
		));	
	}
	
}
add_action( 'woocommerce_review_order_before_submit', 'webinsider_wp_wc_add_checkout_no14days', 9 );

W ten sposób pole „wymuszające” rezygnację z prawa do odstąpienia od umowy w ciągu 14 dni pojawi się tylko w przypadkach, gdy w koszyku znajduje się produkt oznaczony jako wirtualny bądź do pobrania.

Pole (nie) obowiązkowe, domyślnie (nie) zaznaczone

Na koniec jeszcze dwie rzeczy nie tyle (tylko i wyłącznie) techniczne, ale też i formalno-prawne, czyli decyzja, czy pole to ma być obowiązkowe do zaznaczenia, by klient mógł złożyć zamówienie, oraz czy może być domyślnie zaznaczone.

Odpowiedź na pierwsze pytanie – czy może/ma być obowiązkowe – może brzmieć „to zależy”, ale w większości przypadków jestem za tym, by było obowiązkowe. W innym przypadku w sklepie trzeba by wdrożyć dodatkowy mechanizm, który by dzielił użytkowników na tych, którzy zaznaczyli i tym samym mogą otrzymać dostęp do produktu, oraz na tych, którzy nie zaznaczyli, a więc muszą poczekać 14 dni, by dostęp otrzymać.

Dodatkowo trzeba by dodać mechanizm, który regularnie by „przeczesywał” zamówienia, sprawdzając, czy minęło już 14 dni w przypadku danego zamówienia, i jeśli tak, to udzielając dostępu. Dodatkowo wysyłając odpowiednią informację do użytkownika, jakby ten zdążył już zapomnieć, że te 14 dni temu coś od nas kupił… ;-)

Odpowiedź na drugie pytanie – czy może/ma być domyślnie zaznaczone – jest już dużo prostsza, bo właściwie sprowadza się do tego, że takie pole nie może (nie powinno) być domyślnie zaznaczone, by można było uznać, że takie zrzeczenie było świadome (przynajmniej teoretycznie, bo z rozumieniem czytanego tekstu różnie bywa ;-)), a tym samym miało moc wiążącą. Podobnie jak ma to miejsce np. w przypadku akceptacji regulaminu (sklepu internetowego), gdzie użytkownik musi (powinien) samodzielnie takie pole zaznaczyć.

(!) Zgłoś błąd na stronie

Zapraszam do naszego Newslettera - ZERO SPAMu, same konkrety, oraz dostęp do dodatkowych materiałów przeznaczonych dla subskrybentów!

Envato Elements - pobierasz co chcesz, ile chcesz