2017-02-16 9 views
-2

Im пытается объединить эти две функции в моем файле functions.php. Я пробовал пару вариантов, но наклоняю, похоже, правильно. Он работает, поскольку он разбит на две функции, но теперь мое любопытство получило лучшее из меня.Объединение двух функций для WooCommerce

Im удаление полей на моей странице оформления в Woo Commerce, два поля. Я склоняюсь к тому, чтобы назвать их как одной функцией, так что я просто использовал два, чтобы заставить его работать, но просто хотел бы знать, как сделать это одним.

function custom_override_checkout_fields_1($fields) { 

    if (! current_user_can('dealer_group') && isset($fields['billing']['rep_name'])) { 
     unset($fields['billing']['rep_name']); 
    } 

    return $fields; 
} 
add_filter('woocommerce_checkout_fields' , 'custom_override_checkout_fields_1'); 

function custom_override_checkout_fields_2($fields) { 

    if (! current_user_can('dealer_group') && isset($fields['billing']['billing_company'])) { 
     unset($fields['billing']['billing_company']); 
    } 

    return $fields; 
} 
add_filter('woocommerce_checkout_fields' , 'custom_override_checkout_fields_2'); 
+4

Почему вы не можете просто поставить два оператора 'if' в одну функцию? – miken32

+0

Просто добавьте второе выражение 'if' в первую функцию. – Cyclonecode

ответ

1
function custom_override_fields($fields) { 
    if (! current_user_can('dealer_group') && isset($fields['billing']['rep_name'])) { 
     unset($fields['billing']['rep_name']); 
    } 
    if (! current_user_can('dealer_group') && isset($fields['billing']['billing_company'])) { 
     unset($fields['billing']['billing_company']); 
    } 
    return $fields; 
} 

Просто объединил два сослагательного наклонения.

+0

Мог ли я знать, почему downvotes? – Ad5001

+0

Это тоже не работает. Оба поля остаются видимыми для обоих типов пользователей. –

+0

@DanCrowe. Тогда проблема не исходит из этого кода:/Его другая часть кода, вызывающая эту ошибку. – Ad5001

4

Вы просто реорганизуете эти две функции в одну. Не нужно проверять на наличие isset, так как unset ничего не сделает, если он не установлен.

+0

Это правильно исследованный ответ в отношении 'isset' и' unset'. –

+0

Это было так, как я думал, но это не сработало. –

 Смежные вопросы

  • Нет связанных вопросов^_^