За последние 24 часа нас посетили 30509 программистов и 1792 робота. Сейчас ищут 1129 программистов ...

Помогите собрать URL из данных

Тема в разделе "PHP для новичков", создана пользователем DjSan, 25 мар 2016.

  1. DjSan

    DjSan Новичок

    С нами с:
    24 мар 2016
    Сообщения:
    25
    Симпатии:
    0
    Вечер добрый!
    У меня есть форма ФИО, телефон, адрес, корзина с товаром (артикул и количество) и т.д.
    Нужно чтобы получилось domain.ru/index.php?user=ФИО&phone=телефон&address=адрес&articles[0]=артикул&quantities[0]=кол-во&articles[1]=артикул&quantities[1]=кол-во

    Добавлено спустя 1 минуту 45 секунд:
    корзина с товаром находиться вне формы подгружена woocommerce
     
  2. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Имя формы можно давать такое articles[1] если что
     
  3. Sergey_Tsarev

    Sergey_Tsarev Активный пользователь

    С нами с:
    17 мар 2016
    Сообщения:
    502
    Симпатии:
    105
    Код (PHP):
    1. <form method="get" action="domain.ru/index.php">
    2. <input type="text" name="user">
    3. <input type="text" name="phone">
    4. <input type="text" name="address">
    5. <input type="text" name="articles[0]">
    6. <input type="text" name="quantities[0]">
    7. <input type="text" name="articles[1]">
    8. <input type="text" name="quantities[1]">
    9. <input type="submit" name="submit" value="Отправить">
    10. </form>
    11.  
     
  4. Period

    Period Новичок

    С нами с:
    29 дек 2014
    Сообщения:
    148
    Симпатии:
    1
    Код (PHP):
    1. <button type="submit">Отправить</button> 
    , иначе в QS попадёт submit=Отправить
     
  5. DjSan

    DjSan Новичок

    С нами с:
    24 мар 2016
    Сообщения:
    25
    Симпатии:
    0
    articles[0] нужно добавить с корзины?
     
  6. DjSan

    DjSan Новичок

    С нами с:
    24 мар 2016
    Сообщения:
    25
    Симпатии:
    0
    [​IMG]
    Код (PHP):
    1. <input type="text" name="articles[0]">
    2. <input type="text" name="quantities[0]">
    3. <input type="text" name="articles[1]">
    4. <input type="text" name="quantities[1]">
    Как вот эти параметры взять из таблицы?
     
  7. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Что значит взять? Они доступны там где формируются. Они же как-то в таблице появляются, ты же хочешь добавить ещё один формат отображения этих данных.
    Там где-то должен быть по идее цикл, в него и добавь ещё форму или данные добавь в массив, а потом сформируй форму.
     
  8. DjSan

    DjSan Новичок

    С нами с:
    24 мар 2016
    Сообщения:
    25
    Симпатии:
    0
    В БД wolivep_woocommerce_sessions, я нашел вроде этот массив. Помоги плиз в долгу не останусь?
     
  9. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    Лучше напиши в раздел free-lance, там за деньги сделают.
     
  10. DjSan

    DjSan Новичок

    С нами с:
    24 мар 2016
    Сообщения:
    25
    Симпатии:
    0
    Я одному уже обратился кинул
     
  11. DjSan

    DjSan Новичок

    С нами с:
    24 мар 2016
    Сообщения:
    25
    Симпатии:
    0
    Вот может кому пригодиться.
    Код (Text):
    1.  
    2. <br/><label for="account_first_name"><?php _e( 'Имя:', 'woocommerce' ); ?> <span class="required">*</span></label>
    3.                 <input type="text" class="form-row-wide" name="family" id="billing_first_name"  value="<?php echo esc_attr($checkout->get_value( 'billing_first_name' )) ?>" </br>
    Помогите написать в php
    из такого:
    Код (PHP):
    1. <?php
    2. foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
    3.                 $_product     = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
    4.  
    5.                 if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_checkout_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
    6.                     ?>
    7.                     <tr class="<?php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ); ?>">
    8.                         <td class="product-name">
    9.                         <?php echo apply_filters( 'woocommerce_cart_item_name', $_product->get_sku(), $cart_item, $cart_item_key ) . ' '; ?>
    10.                             <?php echo apply_filters( 'woocommerce_checkout_cart_item_quantity', ' <strong class="product-quantity">' . sprintf( $cart_item['quantity'] ) . '</strong>', $cart_item, $cart_item_key ); ?>
    11.                             <?php echo WC()->cart->get_item_data( $cart_item ); ?>
    12.                         </td>
    13.                         <?php
    14.                 }
    15.             }
    16. ?>
    в такое
    Код (PHP):
    1. $myi=0;
    2. reset($myitems);
    3. while ($mym=current($myitems)) {
    4. $url.="&articles[".$myi."]=".$mym["id"]."&quantities[".$myi."]=".$mym["quantity"];
    5. $myi++;
    6. next($myitems);
    7. }; 
    Добавлено спустя 35 минут 49 секунд:
    в итоге должно получится articles[0]=артикул&quantities[0]=кол-во&articles[1]=артикул&quantities[1]=кол-во
     
  12. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    работай через гаранта или безопасные сделки на биржах фриланса
     
  13. DjSan

    DjSan Новичок

    С нами с:
    24 мар 2016
    Сообщения:
    25
    Симпатии:
    0
    Подскажите где ошибка?
    Вот сделал так
    Код (PHP):
    1. <? php
    2. <tr class="<? php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item$cart_item_key ) ); ?>">
    3.                         <class="product-name">
    4.                         <?php $myi=0;
    5.                         reset ($cart_item);
    6.                         while ($mym=current($cart_item)){
    7.                             $myurl="&articles[".$myi."]=".$_product->get_sku()."&quantites[".$myi."]=". $cart_item['quantity']; 
    8.                             $myi++;
    9.                             next ($cart_item);
    10.                              }; ?>
    11.                             <div><?php echo $myurl; ?>
    12.                             </div>
    13. ?>
    Ответ выдает вот такой
    &articles[0]=foort&quantites[0]=2
    &articles[0]=foort2&quantites[0]=1

    нужно чтобы получилось
    &articles[0]=foort&quantites[0]=2
    &articles[1]=foort2&quantites[1]=1
     
  14. denis01

    denis01 Суперстар
    Команда форума Модератор

    С нами с:
    9 дек 2014
    Сообщения:
    12.227
    Симпатии:
    1.714
    Адрес:
    Молдова, г.Кишинёв
    странно, зачем там reset(), current(), next()? Может foreach использовать вместо while, там есть $key или используй так же $myi
     
  15. DjSan

    DjSan Новичок

    С нами с:
    24 мар 2016
    Сообщения:
    25
    Симпатии:
    0
    Чет у меня не получается

    Добавлено спустя 26 минут 13 секунд:
    foreach когда делаю у меня получается вот так:
    &articles[0]=foort&quantites[0]=2&articles[1]=foort&quantites[1]=2...&articles[9]=foort&quantites[9]=2&articles[0]=foort2&quantites[0]=1...&articles[1]=foort2&quantites[9]=1
    я все просмотрел, в каждой $cart_item 9 параметров $key и по ним едет цикл, когда переходит на другой товар цикл начинается сначала.
    Направьте на путь истинный уже все прочитал, ну или почти все может что не нашел((((
     
  16. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    давай заново. Как называется массив, в котором сидят эти значения?
     
  17. DjSan

    DjSan Новичок

    С нами с:
    24 мар 2016
    Сообщения:
    25
    Симпатии:
    0
    $cart_item
    $_product->get_sku()
     
  18. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    два их?
     
  19. DjSan

    DjSan Новичок

    С нами с:
    24 мар 2016
    Сообщения:
    25
    Симпатии:
    0
    из таблицы товаров мне нужно отправлять два параметра: Артикул и количество
    пример:
    Товар 1: &articles[0]=foort&quantites[0]=2
    Товар 2: &articles[1]=foort2&quantites[1]=1
    и т.д.
    где foort это $_product->get_sku(), а 2 это $cart_item['quantity']
     
  20. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    ща подумаю
     
  21. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
  22. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    окей. покажи мне вардамп первого и вардамп второго

    Добавлено спустя 17 секунд:
    я был невнимателен
     
  23. p@R@dox 55RU

    p@R@dox 55RU Зэк
    [ БАН ]

    С нами с:
    21 май 2014
    Сообщения:
    1.358
    Симпатии:
    7
    Адрес:
    с планеты Ялмез
    всякое бывает... Но было забавно прочитать, как ты опять на х... посылаешь :D:D:D
     
  24. DjSan

    DjSan Новичок

    С нами с:
    24 мар 2016
    Сообщения:
    25
    Симпатии:
    0
    Я примерно собрал
    Код (PHP):
    1. <?php
    2. foreach ( WC()->cart->get_cart() as $cart_item_key => $cart_item ) {
    3.                 $_product     = apply_filters( 'woocommerce_cart_item_product', $cart_item['data'], $cart_item, $cart_item_key );
    4.  
    5.                 if ( $_product && $_product->exists() && $cart_item['quantity'] > 0 && apply_filters( 'woocommerce_checkout_cart_item_visible', true, $cart_item, $cart_item_key ) ) {
    6.                     ?>
    7.                     <p class="<?php echo esc_attr( apply_filters( 'woocommerce_cart_item_class', 'cart_item', $cart_item, $cart_item_key ) ); ?>">
    8.                         <p class="product-name">
    9.                         <?php $myi=0;
    10.                         foreach ($cart_item as $key){
    11.                             $myurl.="&articles[".$myi."]=".$_product->get_sku()."&quantites[".$myi."]=". $cart_item['quantity']; 
    12.                             $myi++;
    13.                             next ($cart_item);
    14.                             $arr= array ($cart_item);
    15.                             $ar= array ($_product);
    16.                              }; ?>
    17.                             <div><?php echo $myurl; ?>
    18.                             </div>
    19.                             
    20.                             <div><?php echo "*******************"; ?></div>
    21.                             <div>
    22.                             <?php echo print_r($arr); ?></div>
    23.                             <div>
    24.                             <?php echo "//////////////////"; ?></div>
    25.                             <div>
    26.                             <?php echo print_r($ar); ?>
    27.                             </div>
    28.                             
    29.                             
    30.                         
    31.                         </p>
    32.                         </p>
    33.                         <?php
    34.                 }
    35.             }
    36.             
    37. ?>
    Вот так он выводит:
    &articles[0]=foort&quantites[0]=1&articles[1]=foort&quantites[1]=1
    &articles[2]=foort&quantites[2]=1&articles[3]=foort&quantites[3]=1
    &articles[4]=foort&quantites[4]=1&articles[5]=foort&quantites[5]=1
    &articles[6]=foort&quantites[6]=1&articles[7]=foort&quantites[7]=1
    &articles[8]=foort&quantites[8]=1&articles[9]=foort&quantites[9]=1
    *******************
    Array ( [0] => Array ( [product_id] => 565 [variation_id] => 0 [variation] => Array ( ) [quantity] => 1 [line_total] => 750 [line_tax] => 0 [line_subtotal] => 750 [line_subtotal_tax] => 0 [line_tax_data] => Array ( [total] => Array ( ) [subtotal] => Array ( ) ) [data] => WC_Product_Simple Object ( [id] => 565 [post] => WP_Post Object ( [ID] => 565 [post_author] => 16 [post_date] => 2013-12-01 15:49:59 [post_date_gmt] => 2013-12-01 11:49:59 [post_content] => Омега. [post_title] => Масло оливковое Олеастрон 2 [post_excerpt] => Характеристики: [post_status] => publish [comment_status] => open [ping_status] => closed [post_password] => [post_name] => maslo-olivkovoe-oleastron-2 [to_ping] => [pinged] => [post_modified] => 2016-03-23 22:29:40 [post_modified_gmt] => 2016-03-23 18:29:40 [post_content_filtered] => [post_parent] => 0 [guid] => http:// [menu_order] => 0 [post_type] => product [post_mime_type] => [comment_count] => 0 [filter] => raw ) [product_type] => simple [shipping_class:protected] => [shipping_class_id:protected] => 0 [total_stock] => [supports:protected] => Array ( [0] => ajax_add_to_cart ) [price] => 750 [manage_stock] => no [stock_status] => instock [tax_status] => taxable [virtual] => no [sku] => foort ) ) ) 1
    //////////////////
    Array ( [0] => WC_Product_Simple Object ( [id] => 565 [post] => WP_Post Object ( [ID] => 565 [post_author] => 16 [post_date] => 2013-12-01 15:49:59 [post_date_gmt] => 2013-12-01 11:49:59 [post_content] => Омега. [post_title] => Масло оливковое Олеастрон 2 [post_excerpt] => Характеристики: [post_status] => publish [comment_status] => open [ping_status] => closed [post_password] => [post_name] => maslo-olivkovoe-oleastron-2 [to_ping] => [pinged] => [post_modified] => 2016-03-23 22:29:40 [post_modified_gmt] => 2016-03-23 18:29:40 [post_content_filtered] => [post_parent] => 0 [guid] => http:// [menu_order] => 0 [post_type] => product [post_mime_type] => [comment_count] => 0 [filter] => raw ) [product_type] => simple [shipping_class:protected] => [shipping_class_id:protected] => 0 [total_stock] => [supports:protected] => Array ( [0] => ajax_add_to_cart ) [price] => 750 [manage_stock] => no [stock_status] => instock [tax_status] => taxable [virtual] => no [sku] => foort ) ) 1
    &articles[0]=foort&quantites[0]=1&articles[1]=foort&quantites[1]=1
    &articles[2]=foort&quantites[2]=1&articles[3]=foort&quantites[3]=1
    &articles[4]=foort&quantites[4]=1&articles[5]=foort&quantites[5]=1
    &articles[6]=foort&quantites[6]=1&articles[7]=foort&quantites[7]=1
    &articles[8]=foort&quantites[8]=1&articles[9]=foort&quantites[9]=1
    &articles[0]=foort2&quantites[0]=2&articles[1]=foort2&quantites[1]=2
    &articles[2]=foort2&quantites[2]=2&articles[3]=foort2&quantites[3]=2
    &articles[4]=foort2&quantites[4]=2&articles[5]=foort2&quantites[5]=2
    &articles[6]=foort2&quantites[6]=2&articles[7]=foort2&quantites[7]=2
    &articles[8]=foort2&quantites[8]=2&articles[9]=foort2&quantites[9]=2
    *******************
    Array ( [0] => Array ( [product_id] => 564 [variation_id] => 0 [variation] => Array ( ) [quantity] => 2 [line_total] => 2400 [line_tax] => 0 [line_subtotal] => 2400 [line_subtotal_tax] => 0 [line_tax_data] => Array ( [total] => Array ( ) [subtotal] => Array ( ) ) [data] => WC_Product_Simple Object ( [id] => 564 [post] => WP_Post Object ( [ID] => 564 [post_author] => 16 [post_date] => 2013-12-01 15:49:39 [post_date_gmt] => 2013-12-01 11:49:39 [post_content] => Разнообразие [post_title] => Масло оливковое Армония 2 [post_excerpt] => Характеристики: [post_status] => publish [comment_status] => open [ping_status] => closed [post_password] => [post_name] => maslo-olivkovoe-armoniya-2-2 [to_ping] => [pinged] => [post_modified] => 2016-04-05 06:57:39 [post_modified_gmt] => 2016-04-05 02:57:39 [post_content_filtered] => [post_parent] => 0 [guid] => http:// [menu_order] => 0 [post_type] => product [post_mime_type] => [comment_count] => 0 [filter] => raw ) [product_type] => simple [shipping_class:protected] => [shipping_class_id:protected] => 0 [total_stock] => [supports:protected] => Array ( [0] => ajax_add_to_cart ) [price] => 1200 [manage_stock] => no [stock_status] => instock [tax_status] => taxable [virtual] => no [sku] => foort2 ) ) ) 1
    //////////////////
    Array ( [0] => WC_Product_Simple Object ( [id] => 564 [post] => WP_Post Object ( [ID] => 564 [post_author] => 16 [post_date] => 2013-12-01 15:49:39 [post_date_gmt] => 2013-12-01 11:49:39 [post_content] => Разнообразие [post_title] => Масло оливковое Армония 2 [post_excerpt] => Характеристики: [post_status] => publish [comment_status] => open [ping_status] => closed [post_password] => [post_name] => maslo-olivkovoe-armoniya-2-2 [to_ping] => [pinged] => [post_modified] => 2016-04-05 06:57:39 [post_modified_gmt] => 2016-04-05 02:57:39 [post_content_filtered] => [post_parent] => 0 [guid] => http:// [menu_order] => 0 [post_type] => product [post_mime_type] => [comment_count] => 0 [filter] => raw ) [product_type] => simple [shipping_class:protected] => [shipping_class_id:protected] => 0 [total_stock] => [supports:protected] => Array ( [0] => ajax_add_to_cart ) [price] => 1200 [manage_stock] => no [stock_status] => instock [tax_status] => taxable [virtual] => no [sku] => foort2 ) ) 1
     
  25. igordata

    igordata Суперстар
    Команда форума Модератор

    С нами с:
    18 мар 2010
    Сообщения:
    32.408
    Симпатии:
    1.768
    Я не понял тогда что не так. Он же строит тебе урл.