У меня есть простой сайт WordPress, который использует WooCommerce.
Я хотел бы добавить функциональность на страницу / checkout пользовательского поля woocommerce. В идеале это поле будет иметь тип Select с несколькими параметрами. Это не проблема, так как я могу добавить приведенный ниже код в файл functions.php моей дочерней темы, чтобы создать это.
function customise_checkout_field($checkout)
{
// Heading for form
echo '<p>Custom Question Heading</p>';
woocommerce_form_field( 'questionOne', array(
'type' => 'select',
'class' => array( 'custom-dev-select'),
'label' => 'This is the question',
'options' => array(
'blank' => 'Choose One',
'value1' => 'Answer 1,
'value2' => 'Answer 2
),
'required' => true
)
);
$checkout->get_value( $random_question );
}
Это создаст одну опцию выбора с вышеуказанными атрибутами.
Проблема в том, что я хотел бы сказать X3 из этих полей woocommerce_form_field, каждая из которых имеет свою метку / вопрос и разные варианты. Например;
Вопрос 1: Является ли яблоко a:
Вариант 1: Фрукты
Вариант 2: мясо
Вариант 3: Вег
Вопрос 2: Некоторый вопрос
Вариант 1: лорем
Вариант 2: Lorem
Вариант 3: Lorem
И затем каждый раз, когда страница загружается или обновляется и т. Д., Загружается другой вопрос.
Я попытался добавить несколько «woocommerce_form-field» в массив и использовать array_rand и т. Д., Однако это не работает. Вот пример кода, который у меня есть, который в настоящее время не работает, но вы понимаете, как бы я хотел, чтобы он работал.
function customise_checkout_field($checkout)
{
// Heading for form
echo '<p>Custom Question Heading</p>';
$questions = array(
"question1" => array(
"This is question one",
"Choice 1",
"Choice 2"
),
"question2" => array(
"This is question Two",
"Choice 1.1",
"Choice 2.1"
),
"question3" => array(
"label" => "This is question Three",
"Choice 1.2",
"Choice 2.2"
),
);
$random_question = $questions[array_rand($questions)];
$selected_label = $random_question[0];
$selected_answer = $random_question[1];
$selected_answer2 = $random_question[2];
woocommerce_form_field( 'questionOne', array(
'type' => 'select',
'class' => array( 'custom-dev-select'),
'label' => $selected_label,
'options' => array(
'blank' => 'Choose One',
'value1' => $selected_answer,
'value2' => $selected_answer2
),
'required' => true
)
);
$checkout->get_value( $random_question );
}
add_action('woocommerce_after_order_notes', 'customise_checkout_field');
Любая помощь будет принята с благодарностью. WordPress, woocommerce & php довольно новы для меня, так как это не мой основной язык для использования.