Очень простая задача
Я начинаю изучать PHP. Но не могу решить одну проблему. Помогите пожалуйста
$woopayment = LP()->settings()->get('woo-payment');
if( $woopayment['enable'] == 'yes' && $woopayment['purchase_button'] !== 'cart') {
return;
}
if ( $woopayment['purchase_button'] == 'single' ) {
?>
<input type="hidden" name="single-purchase" value="yes"/>
<?php
} else if ( $woopayment['purchase_button'] == 'cart' ) {
?>
<button class="button button-add-to-cart" data-action="add-to-cart"
data-block-content="yes"><?php _e( 'Add to cart', 'learnpress-woo-payment' ); ?></button>
<?php
}
?>
Данный код постоянно возвращает: Notice: Undefined index: purchase_button
Ответы (3 шт):
Автор решения: Gaziz
→ Ссылка
Проблема решился с помощью
array_key_exists()
public function before_purchase_button() {
$woopayment = LP()->settings()->get('woo-payment');
if( $woopayment['enable'] == 'yes' && array_key_exists('purchase_button', $woopayment) !== 'cart' ) {
return;
}
echo '<div class="hide-if-js">';
}
Автор решения: nurassyl
→ Ссылка
if( $woopayment['enable'] == 'yes' && array_key_exists('purchase_button', $woopayment) !== 'cart' ) {
return;
}
Использовать функцию array_key_exists не эффективен, это потребляет больше энергии CPU. Лучше использовать это:
error_reporting(E_ALL & ~E_NOTICE);
поставь этот код в начале скрипта после <?php
Автор решения: Node_pro
→ Ссылка
<?php
$woopayment = LP()->settings()->get('woo-payment');
$purchase_button = $woopayment['purchase_button'] ?? NULL;
if( $woopayment['enable'] == 'yes' && $purchase_button !== 'cart') {
return;
}
if ( $purchase_button=== 'single'):
<input type="hidden" name="single-purchase" value="yes"/>
<?php else if ( $purchase_button === 'cart' ):?>
<button class="button button-add-to-cart" data-action="add-to-cart"
data-block-content="yes"><?php _e( 'Add to cart', 'learnpress-woo-payment' ); ?></button>
<?php endif; ?>
Если у Вас PHP 7+, вы можете использовать ?? или же сделать проверку через isset. Также рекомендую Вам использовать строгое сравнение
