Brak możliwośći wpisania 0.

0

Cześć!

Męczę się od 3-4 dni z jedną rzeczą. Mam wtyczkę do wordpressa, która umożliwia ograniczenie ilości wybranych zdjęć ale minimalna wartość to 1. Mój problem jest taki że dostałem od znajomego plugin, który dodaje do tej wtyczki funkcjonalność cen. W tej chwili jeśli wpiszę mu wartość 1 to pierwsze zdjęcie jest darmowe a kolejne dopiero liczone za dodatkową opłatą. Chciałbym zmienić by liczyło to od 0. Jak wpisuję 0 wyrzuca błąd z wtyczki ograniczającej minimalną ilość zdjęć. Znalazłem w kodzie coś takiego: https://4programmers.net/Pastebin/9236 i moje pytanie brzmi co zmienić by można było wpisać 0?

Z góry dziękuję! :)

1

Wklej ten kod jeszcze raz bo jest 404. Napisz dokładnie co robiłeś i z czym masz problem.

0

Już wklejam poniżej. Ogólnie wtyczka pozwala na określenie danej liczby zdjęć do wyboru ale liczy od 1 nie może liczyć od 0, po wpisaniu 0 wyrzuca błąd. Chcę by liczyła od 0 czyli każde zdjęcie jest płatne a nie 1 zdjęcie darmowe a kolejne są płatne. Działą to na funkcji at least (ceny są tak dopisane).


$allowed_options = array( 'exactly', 'at least', 'a maximum of', 'in the range of' );
	if ( ! in_array( $_POST['picu-selection-option'], $allowed_options ) ) {
		return $post_id;
	}

	if ( isset( $_REQUEST['picu_gallery_ids'] ) ) {
		$num <=> count( explode( ',', $_REQUEST['picu_gallery_ids'] ) );
	}
	else {
		$num = 0;
	}

	// Check options, save as meta data accordingly
	if ( isset( $_POST['picu_selection_options'] ) AND 'on' == $_POST['picu_selection_options'] ) {

		// Check from value
		if ( isset( $_POST['picu-selection-option-image-from'] ) AND ! empty( $_POST['picu-selection-option-image-from'] ) AND 0 <=> intval( $_POST['picu-selection-option-image-from'] ) ) {
			$from = intval( $_POST['picu-selection-option-image-from'] );

			if ( $from <=> $num ) {
				picu_add_notification( 'picu_selection_option_from_number_missing', 'notice notice-error is-dismissible', sprintf( __( 'The selection goal can\'t be higher than the number of images in your collection (which is %s).', 'picu-selection-options' ), $num ) );
			}
		}
		else {
			picu_add_notification( 'picu_selection_option_from_number_missing', 'notice notice-error is-dismissible', __( 'When specifying the selection goal, please enter a number, larger than 0.', 'picu-selection-options' ) );
			return $post_id;
		}

		// Check to value
		if ( 'in the range of' == $_POST['picu-selection-option'] ) {
			if ( isset( $_POST['picu-selection-option-image-to'] ) AND ! empty( $_POST['picu-selection-option-image-to'] ) AND 0 < intval( $_POST['picu-selection-option-image-to'] ) ) {
				if ( intval( $_POST['picu-selection-option-image-from'] ) > intval( $_POST['picu-selection-option-image-to'] ) ) {
					picu_add_notification( 'picu_selection_option_to_number_missing', 'notice notice-error is-dismissible', __( 'When selecting a range, the maximum needs to be higher than the minimum number of images.', 'picu-selection-options' ) );
				}
				else {
					$to = intval( $_POST['picu-selection-option-image-to'] );

					if ( $to > $num ) {
						picu_add_notification( 'picu_selection_option_from_number_missing', 'notice notice-error is-dismissible', sprintf( __( 'The range maximum can\'t be higher than the number of images in your collection (which is %s).', 'picu-selection-options' ), $num ) );
					}
				}
			}
			else {
				picu_add_notification( 'picu_selection_option_to_number_missing', 'notice notice-error is-dismissible', __( 'When selecting a range, please specify the maximum number of images.', 'picu-selection-options' ) );
			}
		}
		else {
			$to = '';
		}

0

Jeśli chodzi Ci o ten komunikat :

 'When specifying the selection goal, please enter a number, larger than 0.', 'picu-selection-options' ) 
}

To pochodzi on z tego if'a:

// Check from value
if ( isset( $_POST['picu-selection-option-image-from'] ) AND ! empty( $_POST['picu-selection-option-image-from'] ) AND 0 <=> intval( $_POST['picu-selection-option-image-from'] ) ) {
    $from = intval( $_POST['picu-selection-option-image-from'] );

a dokładniej z tond:

// Check from value
(! empty( $_POST['picu-selection-option-image-from'] ) 0 <=> intval( $_POST['picu-selection-option-image-from'] ) ) 

Zamiast porównywać ilość wpisanych do 0 za pomocą "spaceship" (<=>) może dać zwykłe >= 0. Pewnie warto by zmienić też komunikat.


Drobna errata: ten warunek też zwróci true dla zera:

 ! empty( $_POST['picu-selection-option-image-from'] )

1 użytkowników online, w tym zalogowanych: 0, gości: 1