Проверьте, есть ли в корзине woocommerce товары с полями гравитации - PullRequest
0 голосов
/ 14 сентября 2018

Краткое объяснение: я использую гравитационные формы, чтобы предложить гравировку на продуктах, и я хотел бы проверить, есть ли в корзине продукт, используя поле Гравитационные формы.Затем, когда он есть, я хотел бы проверить, есть ли в поле Gravity Forms текстовый ввод или определенное поле установлено на «Да».

Есть что-то возможное с идентификаторами полей и идентификаторами форм, что было бы оченьсбивает с толку, чтобы найти все идентификаторы продуктов.Так что было бы лучше установить условную логику, основанную на именах полей.

Я начал понимать это самостоятельно, но я не знаю достаточно о программировании php, чтобы собрать все вещи вместе.

Вот то, что я придумал, чтобы проверить, использует ли продукт Gravity Forms:

в functions.php

add_action( 'woocommerce_after_cart_contents', 'check_gform_input' );
function check_gform_input($form_name) { 

// Iterating through cart items (to get the item info)
foreach (WC()->cart->get_cart() as $cart_item) {

 if (strpos($all_content,'[gravityform') !== false) {
    echo 'Yeah, I found a Gravity Form!';
 }  else {
    echo 'There is no Gravity Form :( ';
    break;
 }  

 }
}

Этот код возвращает мне 'НетФорма гравитации :( 'независимо от того, какой продукт находится в корзине.

У кого-нибудь есть еще идеи, как приблизиться к решению здесь?

Я получил основную идею этого кода отэтот сайт https://legacy.forums.gravityhelp.com/topic/check-if-form-exists и отсюда https://docs.gravityforms.com/gform_field_validation/

...