Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL][PHP] Pobieranie danych zamówień ze sklepu internetowego
Forum PHP.pl > Forum > Przedszkole
marcin909090
Witam. Sklep postawiony na WordPressie z wtyczką WooCommerce, która zapisuje dane zamówień do pliku wp_postname.
Potrzebuje pobrać dane osobno dla każdego zamówienia dla kuriera i zapisać do określonych zmiennych, by przesłać je później do serwisu kurierskiego w sposób automatyczny.
Niżej przedstawiona funkcja zwraca zmienną ostatniego zamówienia (imie). Takie funkcje posiadam dla każdej istotnej informacji (nazwisko,adres,telefon).
1.Problem w tym, gdy pobieram najnowsze zamówienie. Klient kupuje coś i wtedy wszystkie zmienne mi się zmieniają (cały czas do bazy zapisują się nowe wartości). Jak mam to zrobić, żeby każdą zmienną zamówień (id zamówienia/imie/nazwisko/adres/telefon), których jeszcze nie przesłałem do kuriera zapisać osobno.
2.Jak zrobić, żeby w momencie gdy administrator sklepu prześle dane do kuriera informacje o zamówieniu kasowały się.

  1. function imie(){
  2. $imie = mysql_query("SELECT * FROM `wp_postmeta` WHERE meta_key IN ('_billing_first_name') ORDER BY `post_id` DESC LIMIT 1 ") or die(mysql_error());
  3.  
  4. while($wynik = mysql_fetch_assoc($imie))
  5. {
  6. return $wynik["meta_value"]."<br />";
  7. }
  8. }
patwoj98
A o tablicach w tablicy słyszałeś? Dwuwymiary?
  1. function imie(){
  2. $imie = mysql_query("SELECT * FROM `wp_postmeta` WHERE meta_key IN ('_billing_first_name') ORDER BY `post_id` DESC LIMIT 1 ") or die(mysql_error());
  3. $i = 0;
  4. while($wynik = mysql_fetch_assoc($imie))
  5. {
  6. $tab[$i] = $wynik["meta_value"]."<br />";
  7. $i++;
  8. }
  9. }
  10. echo $tab[0]['meta_value]; // zwróci na ekran 1 rekord
marcin909090
Dzięki, ale jak przypisać np. mój $tab[30] do zamówienia o konkretnym "post_id" (dodam, że post_id nie przechowuje tylko danych zamówień, więc zamówienie nr.30 może mieć post_id o innym numerze)
session
Trochę nie rozumiem, skoro masz WP z WooCommerce to najlepiej skorzystaj z dostarczonych metod i ogromnych możliwości jakie daje ten plugin zamiast dobierać się do samej bazy, zazwyczaj robi się to w ostateczności w WP. Moim zdaniem najlepiej znaleźć sobie jakiś action hook, który ci odpowiada, ale zakładam, że skoro chcesz przekazywać to do kuriera to zamówienie powinno być opłacone. Dla przykładu (po zmianie statusu płatności na "zakończona" wykona się funkcja, do której jako parametr zostanie przekazane ID zamówinia, które właśnie zostało opłacone, i tak dla każdego z osobna):
  1. add_action( 'woocommerce_order_status_completed','my_woo_after_payment' );


W zadanej funkcji korzystasz z odpowiednich metod i własności, aby pobrać dane, które Cie interesują. Sporo zależy też od tego w jaki sposób został wykorzystany WooCommerce:
  1. function my_woo_after_payment($orderId){
  2. $order = new WC_Order( $orderId );
  3. $tab=$order->get_formatted_shipping_address(); // lub get_formatted_billing_address()
  4.  
  5. $imie=$order->billing_first_name;
  6. $nazwisko=$order->billing_last_name;
  7.  
  8. //itd.
  9. // tutaj dalsza część kodu
  10. }


Tak jest łatiwej i poprawniej, ponieważ aktualizacja pluginu nie powinna zmienić działania, jeśli działasz bezpośrednio na bazie prawdopodobieństwo, że z czasem przestanie działać jest większe. Tutaj znajdziesz wszystkie dotępne metody i własności, z których możesz korzystać WC_Order początkowo może się to wydawać trochę chaotyczne, ale nazwy metod mówią same za siebie.

Cytat
2.Jak zrobić, żeby w momencie gdy administrator sklepu prześle dane do kuriera informacje o zamówieniu kasowały się.

Zatem historia zamówień Cie nie interesuje ? wink.gif nie jestem pewny, bo nie korzystałem z tego, ale być może $order->cancel_order() załatwi sprawę.
marcin909090
SUPER ! o to mi chodziło. Po wybraniu dokonanego przez klienta zamówienia, prowadzący sklep ma możliwość wejścia w konkretne zamówienie i naciśnięcia przycisku " wyślij do kuriera", który będzie wysyłał informacje do "apaczki" (www.apaczka.pl) z danymi. Masz pomysł jak zaprogramwoać ten button aby właśnie te zmienne ( $imie,$nazwisko) wyrzucał w returnie ?
W buttonie trzeba dodać akcje, którą napsiałeś ?
session
Jak widać funkcja potrzebuje jedynie ID zamówienia, jeśli wykorzystujesz button nie potrzbujesz żadnego action hooka, więc add_action możesz pominąć. Skoro button znajduje się obok każdego zamówinia to powinien przesyłać jego ID (może być np. z wykorzystaniem AJAXa). Tam gdzie odbierasz dane z buttona wykonujesz tą funkcję przekazując jej ID zmówienia. Do tej funkcji dopisujesz samo przesłanie danych do kuriera (lub wykorzystujesz gotową funkcję jeśli jest jakaś dostarczona). Sporo zależy od tego jak i gdzie wstawiasz wpomniany button, bo to można zrobić na wiele sposobów.
marcin909090
Chciałbym aby button znajdował się koło szczegółów zamówienia (coś jak przycisk z wtyczki PDF invoice). Niema pojęcia o AJAX. Męcze się już 4 godziny z tym korzystając z Twojej funkcji. Mogłbyś mi napisać jak w ogóle gdziekolwiek wyświetlić te dane z funkcji, żeby zoabczyć czy ona działa ? Zadziała wtedy gdy status zamówienia będzie "completed" ? Sama sobie dobierze parametr $orderId?
session
Zatem samego przycisku jeszcze nie masz ? tongue.gif Przydałoby się więcej informacji na temat tego jak używasz Woo, ale zakładam że robisz to w sposób domyślny, miałem chwilę przerwy we współpracy z Woo, ale dla przypomnienia postaram się później coś z tym ogarnąć. Polecam Ci swoje zadanie wykonać etapami . Najpierw spróbuj sobie dodać przycisk w odpowiednim miejscu (możesz sobie otworzyć i przejrzeć pliki pluginu, który sam podałeś, tam znajdziesz wszystko, najlepiej korzystać z edytora, który szuka w plikach i znaleźć odpowiednią funkcję np. przez szukanie action hooka). Jeśli nie bardzo wiesz jak tu kilka pomocnych źródeł:

Add custom functionality on WooCommerce complete button
WooCommerce wordpress add button to order product page on admin panel

W jednym z tych tematów jest link tłumaczący AJAXa: AJAX
marcin909090


Jest przykładowy przycisk, który chcę umieścić osobno (pod oknem PDF Invoice). Po jego kliknięciu dane z zamówienia, które jest wyświetlone na ekranie (

  1. billing_first_name,
  2. billing_last_name,
  3. billing_address_1,
  4. billing_address_2,
  5. billing_city,
  6. billing_phone,
  7. billing_postcode


mają automatycznie przypisywać się do pola w innym pliku .php

  1. $order->setReceiverAddress($imie, $nazwisko, $adres1, $adres2, $miasto, $kraj, $kodpocztowy, $meil, $telefon);


Dzięki, że mi pomagasz smile.gif

ps.update: Osobny przycisk zrobiłem dzięki add_meta_box
session
Tak na szybko, więc nie gwarantuję, że działa tongue.gif musisz sobie przeanalizować kod, dodałem Ci gdzieniegdzie komentarze, przerób go pod swoje oczekiwania wink.gif

1. Dodaj sekcję z przyciskiem, który będzie inicjował funkcję, do strony ze szczegółami zamówienia
  1. function order_details_shippment_button($post){ // Dodajemy przycisk do boxa
  2. $title=__('APACZKA'); // nazwa przycisku wyświetlana m.in. po najechaniu kursorem
  3. $name=__('Prześlij do APACZKA'); // tekst przycisku
  4. $attr='class="button grant_access"'; // klasy CSS
  5.  
  6. $orderId=$post->ID; // numer zamówienia to ID specjalnego wpisu
  7. $action='apaczka'; // dowolny tekst zwiększający bezpieczeństwo, wykorzystywany niżej
  8. $nonce=wp_create_nonce($action); // WP Nonce, więcej w Codexie
  9. $href=admin_url('admin-ajax.php?action=apaczka&post_id='.$orderId.'&nonce='.$nonce); // tworzymy adres przycisku
  10.  
  11. echo '<a id="apaczka" title="'.$title.'" href="'.$href.'" data-id="'.$orderId.'" data-nonce="'.$nonce.'" '.$attr.' style="width:100%; text-align:center; box-shadow:none;">'.$name.'</a>'; // przycisk
  12. }
  13.  
  14. function order_details_page_shippment(){ // Dodajemy nowy box do WooCommerce Order Page
  15. add_meta_box('order_page_shippment', __( 'APACZKA'),'order_details_shippment_button','shop_order','side','high');
  16. }
  17. add_action('add_meta_boxes','order_details_page_shippment');


2. Uruchamiamy i obsługujemy AJAXa wykorzystując WordPressowe funkcje oraz przechwytujemy kliknięcie przycisku:
  1. function ajax_scripts(){
  2. global $pagenow; // bieżąca strona
  3. if(!is_admin() || !in_array($pagenow,array('post.php'))){ return false; } // czy jesteśmy w panelu admina na stronie edycji
  4. if(wp_script_is('jquery','done')){ // jeśli jQuery zostało już załadowane
  5. ?>
  6. <script type="text/javascript">
  7. jQuery(document).ready(function(){
  8. jQuery("#apaczka").click(function(e){
  9. e.preventDefault();
  10. var el=jQuery(this);
  11. var postId=el.data('id');
  12. var nonceVal=el.data('nonce');
  13. el.html('<span class="loader">...</span>');
  14. jQuery.ajax({
  15. url : '<?php echo admin_url('admin-ajax.php'); ?>',
  16. type : 'post',
  17. data : {
  18. action : 'apaczka',
  19. post_id : postId,
  20. nonce : nonceVal
  21. },
  22. success : function(response){
  23. el.html(response);
  24. }
  25. });
  26. });
  27. });
  28. </script>
  29. <?php
  30. }
  31. }
  32. add_action('admin_head','ajax_scripts');

Jako loader możesz użyć sobie jednego z tych wykonanych w CSS3: CSS Loaders wstawiając odpowiedni plik css za pomocą wp_enqueue_style, więcej informacji na ten temat znajdziesz łatwo w google (plik ze stylami umieścisz w katalgu pluginu, ale o tym później).

3. Główna funkcja wykonująca zadanie:
  1. function apaczka_request(){
  2.  
  3. $error=true;
  4. if(is_admin()){
  5. if(isset($_REQUEST['post_id']) && isset($_REQUEST['nonce'])){
  6.  
  7. $orderId=$_REQUEST['post_id'];
  8. $nonce=$_REQUEST['nonce'];
  9.  
  10. if(wp_verify_nonce($nonce,'apaczka')){ // tutaj drugi argument musi mieć taką samą wartość jak $action w kodzie 1!
  11.  
  12. $order=new WC_Order($orderId);
  13. $tab=$order->get_formatted_shipping_address(); // lub get_formatted_billing_address()
  14.  
  15. $first_name=$order->billing_first_name;
  16. $last_name=$order->billing_last_name;
  17.  
  18. $result=true; // do tej zmiennej przypisujesz funkcję, która zrobi to co potrzebujesz (przetworzy dane zamawiającego), funkcja powinna zwracać true jeśli sukces lub false w przeciwnym wypadku
  19.  
  20. if($result){ echo '<span style="color:green;">? '; _e('Paczka została nadana prawidłowo'); echo '</span>'; $error=false; }
  21. }
  22. }
  23. }
  24. if($error){ echo '<span style="color:red;">? '; _e('Wystąpił błąd podczas nadawania paczki'); echo '</span>'; }
  25. die();
  26. }
  27. add_action('wp_ajax_apaczka','apaczka_request');
  28. add_action('wp_ajax_nopriv_apaczka','apaczka_request');

Zwróć uwagę co powinieneś przypisać do $result, wyciągnięcie pozostalych potrzebnych danych i dokończenie funkcji zostawiam już Tobie.

4. Najlepiej zrób z tego plugin, a w WP jest to bardzo proste, wystarczy że wszystkie powyższe kody połączysz w jeden plik, a na samym jego początku dodasz taki nagłówek:
  1. <?php
  2. /**
  3.  * Plugin Name: APACZKA
  4.  * Description: This is a plugin that allows us to integrate APACZKA with WooCommerce plugin
  5.  * Version: 1.0
  6.  * License: GPL2
  7.  */

Możesz w nim wpisać wartości jakie chcesz. Zapisz całość np. jako "apaczka.php" i umieść w katalogu "apaczka". Na koniec umieść katalog "apaczka" w wp-content/plugins, przejdź do panelu admina i włącz swoją nową wtyczkę wink.gif Więcej o tworzeniu pluginów i ewentualnych rzeczach, które możesz sobie do niego dodać przeczytasz tutaj:Writing a Plugin. Jeśli chociaż trochę znasz OOP możesz zrobić sobie z tego klasę. Generalnie nie będę się jakoś bardzo rozpisywał, ponieważ kod mówi sam za siebie, a wszystko można znaleźć w Codexie i Google tongue.gif
marcin909090
Dziękuje thumbsupsmileyanim.gif
Spróbuję to zaimplementować i dam znać najpóźniej w poniedziałek jak poszło.


Mam problem z przesyłem danych do innego pliku php (odpowiedzialengo za przesył danych na strone www.apaczka.pl). Gdy w miejscu
  1. if($result){ echo '<span style="color:green;">? '; _e('Paczka została nadana prawidłowo'); echo '</span>'; $error=false; }
wstawię np.
  1. echo '<span style="color:green;">? '; _e($first_name.'<br />'.$last_name.'<br />'.$address1.'<br />'.$address2.'<br />'.$city.'<br />'.$postcode.'<br />'.$country.'<br />'.$phone); echo '</span>'; $error=false;
wyświetla mi pięknie dane po kliknięciu w button, także wszystko działa.
Natomiast w pliku test.php (pobranym z apaczki) wpisuję
  1. include_once('apaczka.php');
uruchamiam funkcję apaczka_request(), aby użyć zmiennych zapisanych w $tab2 (dodałem taki return)
  1. $first_name=$order->billing_first_name;
  2. $last_name=$order->billing_last_name;
  3. $address1=$order->billing_address_1;
  4. $address2=$order->billing_address_2;
  5. $city=$order->billing_city;
  6. $postcode=$order->billing_postcode;
  7. $country=$order->billing_country;
  8. $phone=$order->billing_phone;
  9.  
  10. $tab2=Array($first_name,$last_name,$address1,$address2,$postcode,$city,$phone);
  11.  
  12. $result=true; // do tej zmiennej przypisujesz funkcję, która zrobi to co potrzebujesz (przetworzy dane zamawiającego), funkcja powinna zwracać true jeśli sukces lub false w przeciwnym wypadku
  13.  
  14. if($result)
  15. {
  16. echo '<span style="color:green;">? '; _e($first_name.'<br />'.$last_name.'<br />'.$address1.'<br />'.$address2.'<br />'.$city.'<br />'.$postcode.'<br />'.$country.'<br />'.$phone); echo '</span>'; $error=false;
  17. return $tab2;
  18.  
  19. }

I pojawia mi się błąd, gdy np. chcę wyświetlić dane zamówienia w innym pliku.
  1. Fatal error: Call to undefined function add_action() in /var/www/vhosts/c6.go4host.pl/httpdocs/wordpress/wp-content/plugins/apaczkaaaa.php on line 26

Jak widać oczywiście nie rozpoznaje "add_action". Probowałem to rozbijać, funkcje gdzie indziej i "add_action" gdzie indziej ale wtedy wtyczka się nie włączy w WP. Więc pytania:
1. Jak połączyć mój sklejony plik "apaczka.php" z innym plikiem .php, gdzie wyświetle zmienne z tablicy $tab2.
2. Czy taki sposób zwracania zadziała? Jaką funkcję mam przypisać do $result? Coś co zwraca $tab2? Funkcja w funkcji ? Jak się wtedy do tego odwołać w innym pliku, gdzy wyrzuca błąd opisany wyżej.
session
Cytat
  1. Fatal error: Call to undefined function add_action() in /var/www/vhosts/c6.go4host.pl/httpdocs/wordpress/wp-content/plugins/apaczkaaaa.php on line 26


Ten kod jest utworzony pod WP, zatem nie możesz go includować do skryptu nie powiązanego z WP, ponieważ wszystkie funkcje wywodzące się z WP nie będą rozpoznawane, bo skrypt ich nie posiada, żeby korzystać z kodu WP poza themem albo pluginem musiałbyć dołączyć wp-load.php lub wp-blog-header.php, aby skrypt mógł korzystać z funkcji WP. Jednak, twój kod jest bezużyteczny bez WP zatem poszedłbym w drugą stronę.

Cytat
Jak połączyć mój sklejony plik "apaczka.php" z innym plikiem .php, gdzie wyświetle zmienne z tablicy $tab2.

Do folderu swojego nowego pluginu (o ile skorzystałeś z tej możliwości) dorzuć skrypty apaczki (te które obsługują wysyłanie danych itp.) i zaincluduj je do apaczka.php.
Zostawiłem Ci $result, żebyś do niej dał funkcję, która ma się wykonać.
  1. $result=funkcjaWysylajacaDaneDoApaczki($first_name,$last_name, [...]);


Jeśli chcesz w innym pliku wyświetlić zmienne z tablicy $tab2, to możesz to zrobić na kilka sposobów, dopisz sobie dodatkową funkcję, która zapisze Ci tablicę do pliku tekstowego i wykonaj ją zapisując wynik do $result (jak wyżej), utwórz sobie drugi skrypt w osobnym pliku, który te dane z tego odczyta, możesz zamiast pliku przechowywać dane w zmiennych sesyjnych, php://memory lub jakimkolwiek innym miejscu pamięci serwera jakie sobie tylko wymyślisz i które masz dostępne. Zamiast tekstu "Paczka została nadana" możesz dać url do przekierowania, a w JavaScript zamiast el.html(response); dać window.location.href = response; i nawet wtedy nie musisz zapisywać nigdzie danych tylko dokleić je do url jako GET. Tylko pytanie po co tongue.gif

EDIT: Sprawdziłem nawet API tej apaczki i w niej jest banalna klasa, którą w równie prosty sposób użyjesz. Dodaj do katalogu pluginu plik: apaczkaSoapClient.php. Zaincluduj ten plik do apaczka.php. Tuż przed $result zrób to co tam trzeba:
Kod
$apaczka = new apaczkaApi('username', 'password','api_key');
$apaczka->setVerboseMode();
$apaczka->setProductionMode();

if(!$resp = $apaczka->validateAuthData()){
    echo 'validateAuthData ERROR';
        return;
}

Potem
Kod
$order = new ApaczkaOrder();
i potem wstawiasz to co dalej i tam zmienne. Na koniec zamiast $resp = $apaczka->placeOrder($order); dajesz $result = $apaczka->placeOrder($order); To co jest poniżej, czyli te var_dumpy i die() możesz raczej wywalić ewentualnie użyć tamtych funkcji co zostały.
marcin909090
Moja funkcja po zmianie. Po zalogowaniu się do serwisu apaczka, mogę obserwować czy nadano paczkę. Posiadam 'username', 'password','api_key'. Rzecz jasna wpisuję je w odpowiednie miejsca. Gdy wysyłam apaczke z pliku test.php (czyli tego API dołączonego) z takim kodem jak niżej dodałem do funkcji (tylko zamiast $result jest $resp jak w oryginale) pojawia się zamówienie w strefie klienta. Gdy kod umieszczam tak jak niżej, zamówienia nie ma, czyli nie działa.
Zmienne w $order->setReceiverAddress narazie są wpisane na sztywno, aby zobaczyć czy w ogóle wyśle zamówienie (jak zadziała zastąpie je właściwymi).
  1. function apaczka_request(){
  2.  
  3.  
  4. $error=true;
  5. if(is_admin()){
  6. if(isset($_REQUEST['post_id']) && isset($_REQUEST['nonce'])){
  7.  
  8. $orderId=$_REQUEST['post_id'];
  9. $nonce=$_REQUEST['nonce'];
  10.  
  11. if(wp_verify_nonce($nonce,'apaczka')){
  12.  
  13. $order=new WC_Order($orderId);
  14. $tab=$order->get_formatted_shipping_address();
  15.  
  16. $first_name=$order->billing_first_name;
  17. $last_name=$order->billing_last_name;
  18. $address1=$order->billing_address_1;
  19. $address2=$order->billing_address_2;
  20. $city=$order->billing_city;
  21. $postcode=$order->billing_postcode;
  22. $country=$order->billing_country;
  23. $phone=$order->billing_phone;
  24.  
  25. $apaczka = new apaczkaApi('username', 'password','api_key');
  26. $apaczka->setVerboseMode();
  27. $apaczka->setProductionMode();
  28.  
  29. if(!$resp = $apaczka->validateAuthData()){
  30. echo 'validateAuthData ERROR';
  31. return;
  32. }
  33.  
  34. $order = new ApaczkaOrder();
  35.  
  36. $order->notificationDelivered = $order->createNotification(false, false, true, false);
  37. $order->notificationException = $order->createNotification(false, false, true, false);
  38. $order->notificationNew = $order->createNotification(false, false, true, false);
  39. $order->notificationSent = $order->createNotification(false, false, true, false);
  40.  
  41. $order->setServiceCode('DHLSTD');
  42. $order->referenceNumber = "MojeID=997";
  43. $order->contents = "Wazne dokumenty";
  44.  
  45. $order->setReceiverAddress('Adam Nowak', 'Adam', 'Adamska', '10/100', 'Wrocław', '0', '35-328', '', 'biuro@alepaczka.pl', '881776453');
  46. $order->setSenderAddress('BaĹ?ka ', 'BaĹ?ka', 'al. KEN 4', '.', 'Warszawa', '0', '01-123', '', 'basia@buziaczek.pl', '224131313');
  47.  
  48. $order_shipment = new ApaczkaOrderShipment('PACZ', 30, 30, 30, 4);
  49. $order->addShipment($order_shipment);
  50.  
  51. $result = $apaczka->placeOrder($order);
  52.  
  53. if($result)
  54. {
  55. echo '<span style="color:green;">? '; _e("Wysłano"); echo '</span>'; $error=false;
  56.  
  57. }
  58. }
  59. }
  60. }
  61. if($error){ echo '<span style="color:red;">? '; _e('Wystąpił błąd podczas nadawania paczki'); echo '</span>'; }
  62. die();
  63. }


Przycisk po kliknięciu wygląda tak, nic nie zwraca.



Nagłowek dodałem po znaczniku <?php i przed komentarzami realizującymi dodanie wtyczki w WP
  1. include('apaczkaSoapClient.php');


Może te dwie zmienne $order się gryzą ? W apaczce i w naszej funkcji ?
session
Przerzuć to include do środka funkcji, zaraz za:
  1. function apaczka_request(){
W dodatku musisz podać ścieżkę bezwględną do pliku (url). Spróbuj tak:
  1. include(plugins_url('apaczkaSoapClient.php', __FILE__));

Zmienna nie powinna mieć znaczenia, ale dla poprawności możesz zmienić tą początkową $order na np. $wp_order.
Przed komentarzami z opisem wtyczki WP nie powinno się z zasady nic wstawiać.
marcin909090
  1. ini_set( 'display_errors', 'On' );
  2. error_reporting( E_ALL );

Magiczny kod powiedział co jest nie tak i UDAŁO SIĘ yahoo.gif
Przesyła do serwisu apaczki poprawne dane znajdujące się w określonych zmiennych.

Dziękuję za te parę dni pomocy. Postawiłbym Ci flachę jakbym Cie spotkał tongue.gif Teraz będę dopracowywał wtyczkę (pobieranie pdfów, formularz od kogo wysyłana jest paczka, formularz wyboru kuriera, prawdiłowa cena w strefie klienta w panelu apaczki itp.)

Proszę moderatorów o NIE zamykanie tematu
session
Cytat
Magiczny kod powiedział co jest nie tak

Czyli co było nie tak? worriedsmiley.gif

Cytat
Postawiłbym Ci flachę jakbym Cie spotkał

Przetestuj działanie wtyczki i wyślij apaczką tongue.gif biggrin.gif btw jest też podobny serwis z fajnym API furgonetka.pl wink.gif Pozatym jest stosunkowo mało tematów z WP na forum, mógłby przydać się taki dział. A może lepiej jak będziesz dawał nowe tematy, bo ten dotyczy pobierania danych, a komuś z podobnym problemem będzie łatwiej szukać odpowiedzi jak będzie mniej postów wink.gif
marcin909090
U mnie coś z plikami było nie tak, kodowanie niewiem jakim cudem sie zmieniło (może poprzez kopiowanie kodu z innych plików). Również wyrzucało błąd w jednej funkcji pliku apaczkaSoapClient.php. Coś musiałem tam popisać, ale zastąpiłem oryginałem.

  1. include('apaczkaSoapClient.php');
ten include jednak musi być na początku.

Zamaist $result użyłem zmiennej z apaczki $resp. Fragment poniżej.
  1.  
  2. $resp = $apaczka->placeOrder($order);
  3. if($resp)
  4. {
  5. echo '<span style="color:green;"> '; _e("Wysłano"); echo '</span>'; $error=false;
  6.  
  7. }
  8. }
  9. }
  10. }
  11. if($error){ echo '<span style="color:red;">? '; _e('Wystąpił błąd podczas nadawania paczki'); echo '</span>'; }
  12. die();
  13. }


Dziękuje jeszcze raz. Gdy pojawi się jakiś problem w doskonaleniu wtyczki, którego nie będę potrafił rozwiązać, a nie będzie to związane z tym kodem to napiszę nowy temat. Miejmy nadzieję, że pójdzie już bez większych problemów bo jeszcze drugie tyle pracy nad tą apaczką.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.