Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Cron nie uploaduje obrazków
marcin909090
post 17.02.2016, 12:49:18
Post #1





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 4.11.2015

Ostrzeżenie: (0%)
-----


Witam, puszczam zadanie CRON importu produktów. Dane pobierane są z bazy danych w pętli. Każdy przedmiot ma swój obrazek, a w bazie danych jest tylko informacja pod jakim linkiem się znajduje.
Mam taki kod. Podczas puszczenia skryptu ręcznie produkty dodają się prawidłowo. Podczas podpięcia skryptu do cron'a zostaje dodany opis produktu i skrypt zatrzymuje swoje działanie. Do folderu uploads w WP, nie zostaje nic wrzucone (w przypadku ręcznego odpalenia skryptu, do foledru są uploadowane zdjęcie z linku).

Mój kod do uploadu i wczytania obrazków. (Gdy usunę tą część kodu cron działa i produkty są importowane prawidłowo)
  1. $thumb_url = $foto1;
  2.  
  3. $tmp = download_url( $thumb_url );
  4.  
  5. preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $thumb_url, $matches);
  6. $file_array['name'] = basename($matches[0]);
  7. $file_array['tmp_name'] = $tmp;
  8.  
  9. $thumbid = media_handle_sideload( $file_array, $new_post_id, 'gallery desc' );
  10.  
  11. set_post_thumbnail($new_post_id, $thumbid);
  12.  
  13. $thumb_url2 = $foto2;
  14.  
  15. $tmp2 = download_url( $thumb_url2 );
  16.  
  17. preg_match('/[^\?]+\.(jpg|JPG|jpe|JPE|jpeg|JPEG|gif|GIF|png|PNG)/', $thumb_url2, $matches);
  18.  
  19. $file_array2['name'] = basename($matches[0]);
  20. $file_array2['tmp_name'] = $tmp2;
  21. $imgID = media_handle_sideload( $file_array2, $new_post_id, 'desc' );
  22.  
  23. update_post_meta( $new_post_id, '_product_image_gallery', $imgID);


Siędzę nad tym ponad 2 dni. Problem z prawami dostępu do zapisu ? Błędny kod? Co może być przyczyną ?

Ten post edytował marcin909090 17.02.2016, 12:51:11
Go to the top of the page
+Quote Post
session
post 17.02.2016, 21:40:17
Post #2





Grupa: Zarejestrowani
Postów: 112
Pomógł: 22
Dołączył: 11.04.2010
Skąd: Tarnów

Ostrzeżenie: (0%)
-----


Na początek zrób sobie error log:
  1. ini_set("log_errors", 1);
  2. ini_set("error_log", "errors.log");


Sprawdź, czy masz jakieś błędy w pliku errors.log
Go to the top of the page
+Quote Post
Pyton_000
post 18.02.2016, 08:31:56
Post #3





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


pokaż wpis z crona / skrypt który odpala ten import.

Może jest problem ze ścieżkami. W sensie że jak cron odpala skrypt z

php /var/www/vhosts/domena/skrypt.php

a ręcznie robisz to w katalogu gdzie masz skrypt.
W takim wypadku zrób najpierw cd do tego katalogu, a potem polecenie odpalenia.


W ostateczności zrób endpoint do odpalenia go przez WWW i wtedy przez CURL odpalaj.

Ten post edytował Pyton_000 18.02.2016, 08:33:41
Go to the top of the page
+Quote Post
marcin909090
post 18.02.2016, 11:31:10
Post #4





Grupa: Zarejestrowani
Postów: 27
Pomógł: 0
Dołączył: 4.11.2015

Ostrzeżenie: (0%)
-----


Wygrałem bitwę z cronem medieval.gif
Debugowałem wszystko krok po korku poniższym sposobem z zapisem do pliku oraz tym co podał session.
  1. $logtxt="początek dodawania foto :\n";
  2. $fh2 = fopen($insertLog, 'a');
  3. fwrite($fh2, $logtxt);
  4. fclose($fh2);

Problem ze ścieżkami jak napisał pyton już zaczął występować w debugowaniu.
Error log bez dodatkowej ścieżki dla skryptu uruchamianego ręcznie znajduje się w katalogu wp-admin.
Error log dla skryptu uruchamianego w cronie znajduje się katalog wyżej.
Z jednego polecenia powstawały mi dwa pliki o innych ścieżkach.

Problemem okazała się funkcja :
  1. media_handle_sideload( $file_array, $new_post_id, 'gallery desc' );

Rozwiązanie to dodanie przed funkcją :
  1. require_once(ABSPATH . "wp-admin" . '/includes/image.php');
  2. require_once(ABSPATH . "wp-admin" . '/includes/file.php');
  3. require_once(ABSPATH . "wp-admin" . '/includes/media.php');

Opis funkcji :
https://codex.wordpress.org/Function_Refere...handle_sideload

Problem rozwiązany smile.gif

Ten post edytował marcin909090 18.02.2016, 11:32:46
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 19.04.2024 - 13:30