Webist - strony WWW, sklepy internetowe, integracje, wtyczki WordPress

Webist

Webist WP Esti CRM - dokumentacja

Spis treści

Aktualna wersja wtyczki: 0.6
Poprzednia wersja wtyczki: 0.5.2

Wymagania wtyczki

Wtyczka Webist WP Esti CRM ma minimalne wymagania, które WordPress, serwer oraz nasz Klient muszą spełniać. Oto ich lista:

  • aktywny SSL,
  • minimalna wersja PHP: 7.4.
  • obsługa PHP cURL.
  • poprawny klucz licencyjny do wtyczki,
  • companyID i token z Esti CRM.

Konfiguracja WordPress’a

Instalacja wtyczki przebiega w standardowy sposób. Należy ją zainstalować ręcznie przesyłając plik archiwum ZIP na serwer. Następnie warto się upewnić, czy w Ustawienia -> Bezpośrednie odnośniki mamy opcje ustawione tak jak na obrazku poniżej:

 

Instalacja wtyczki Webist WP Esti CRM

Tytuł może wydawać się mylący, ale nie chodzi tutaj o rodzaj API lub o typ eksportu, a o to, w jaki sposób aktualizator ofert aktualnie działa.

W tym momencie aktualizator pobiera nieruchomości w następujący sposób:

  1. Najpierw usuwane są nieruchomości, które nie znajdują się już w API, ale znajdują się w WordPressie.
  2. Następnie, jeśli post istnieje to sprawdza jego datę oraz datę aktualizacji z Esti CRM:
    1. Jeśli data jest późniejsza niż data w WordPressie to usuwa nieruchomość i pobiera ją na nowo.
    2. Jeśli data jest wcześniejsza lub równa dacie z API, to omija tą nieruchomość (nie potrzebuje ona aktualizacji).
  3. Natomiast, jeśli post nie istnieje to po prostu go dodaje.

Wtyczka posiada własne archiwum (korzysta z templatu motywu). Zmiana archiwum wtyczki może nastąpić poprzez nadpisanie template’u wtyczki w pliku functions.php lub poprzez Theme Builder (Kreator Motywów) w Elementorze Pro. Także prawidłowo skonfigurowane archiwum dla wszystkich rodzai wpisów jest dobrym rozwiązaniem.

Wyświetlić archiwum nieruchomości można za pomocą shortcode: [all_estates_archive].

Aby wyświetlić listing nieruchomości należy użyć shortcode [all_estates]. Shortcode ten zwraca listę wszystkich nieruchomości wraz z paginacją (podzieleniem na strony). Style elementu można zmienić nadpisując kod CSS lub używając ustawień*.
* – rozwiązanie dostępne w przyszłości

Przykładowy kod:

				
					<?php
//wyświetlenie listingu za pomocą shortcode
echo do_shortcode('[all_estates]');
?>
				
			

Kategorie we wtyczce możemy skonfigurować poprzez dodanie kategorii obsługiwanych przez wtyczkę do ustawień samej wtyczki. Wystarczy uzupełnić Custom Taxonomy dla Custom Post Type wtyczki.

Na początku, w kokpicie, przechodzimy do „Nieruchomości” -> „Kategorie”. Następnie dodajemy dwie kategorie:

  • Sprzedaż (slug: sprzedaz),
  • Wynajem (slug: wynajem).

Wtyczka automatycznie przypisze nieruchomość do odpowiedniej kategorii na podstawie danych z Esti CRM.

Typy nieruchomości we wtyczce możemy skonfigurować poprzez dodanie kategorii obsługiwanych przez wtyczkę do ustawień samej wtyczki. Wystarczy uzupełnić Custom Taxonomy dla Custom Post Type wtyczki.

Na początku, w kokpicie, przechodzimy do „Nieruchomości” -> „Typ”. Następnie dodajemy wszystkie typy obsługiwane przez EstiCRM. Przykładowo:

  • Mieszkanie (slug: mieszkanie),
  • Działka (Rolna) (slug: dzialka-rolna).

Wtyczka automatycznie przypisze nieruchomość do odpowiedniej typu na podstawie danych z Esti CRM.

Lokalizację we wtyczce możemy skonfigurować poprzez dodanie wszystkich obsługiwanych miast do ustawień wtyczki. Wystarczy uzupełnić Custom Taxonomy dla Custom Post Type wtyczki.

Na początku, w kokpicie, przechodzimy do „Nieruchomości” -> „Lokalizacja”:

Następnym krokiem jest po prostu dodanie lokalizacji zgodnie z tym, jakie są w EstiCRM:

Wtyczka automatycznie przypisuje nieruchomość do danej lokalizacji na podstawie danych z EstiCRM.

Taksonomię agenta we wtyczce możemy skonfigurować poprzez dodanie go ręcznie lub pobranie ofert. Aktualizator ofert spróbuje automatycznie uzupełnić dane na temat agenta. Jest także możliwość wypełnienia ich ręcznie. Wystarczy uzupełnić Custom Taxonomy dla Custom Post Type wtyczki.

Na początku, w kokpicie, przechodzimy do „Nieruchomości” -> „Agent”:

Następnym krokiem jest po prostu dodanie lub uzupełnienie informacji na temat agenta. Z każdym odświeżeniem informacje są uzupełniane o te z API, jeśli te dane nie są puste:

Dodatkowo, wtyczka posiada shortcode pozwalający na wyświetlenie informacji na temat agenta danej nieruchomości:

				
					//wyświetlenie wartości dla bieżacego posta (pojedynczego)
[estate_agent_meta meta_key="klucz_metadanych"]
//wyświetlenie wartości dla wybraneg posta (po ID)
[estate_agent_meta meta_key="klucz_metadanych" post_id="123"]
				
			

Poniżej znajduje się lista kluczy dla tego shortcode’a:

  • WWEC_AgentName – imię agenta,
  • WWEC_AgentSurname – nazwisko agenta,
  • WWEC_AgentFullname – imię i nazwisko agenta,
  • WWEC_AgentEmail – adres e-mail agenta,
  • WWEC_AgentFirstPhoneNumber – pierwszy numer telefonu agenta,
  • WWEC_AgentSecondPhoneNumber – drugi numer telefonu agenta,
  • WWEC_AgentLicenseNumber – numer licencji agenta,
  • WWEC_AgentImageID – ID obrazka wyróżniającego (z WP Media) agenta.

Wtyczka posiada możliwość pobierania obrazów bezpośrednio na serwer. Obrazy te zostają zapisane w mediach strony oraz przypisane do odpowiednich nieruchomości. Na poniższym screenshocie widać ustawienia pobierania obrazów:

Należy pamiętać o tym, że pobieranie obrazów wymaga większych zasobów niż sama aktualizacja ofert. Jeśli aktualizacja nie następuje w pełni lub w trakcie skrypt się „crashuje” to należy rozważyć poniższe rozwiązania:
  • zwiększenie WP_MEMORY_LIMIT,
  • zwiększenie max_execution_time w ustawieniach PHP,
  • zwiększenie memory_limit w ustawieniach PHP (jest to powiązane bezpośrednio z WP_MEMORY_LIMIT).
Należy pamiętać o tym, że nawet, jeśli wyłączymy pobieranie obrazów to obrazek wyróżniający i tak będzie pobierany przez wtyczkę.

Istnieje możliwość dodania galerii zdjęć (wyświetlane są zdjęcia nieruchomości w prostym sliderze). Są na to dwa sposoby. Pierwszy to zmiana ustawień (w panelu wtyczki). Tam możemy włączyć lub wyłączyć wyświetlanie galerii obrazów do posta (także możesz zmienić szybkość przewijania zdjęć):

Drugim sposobem jest użycie shortcode. Pozwala on na wyświetlenie galerii w pojedynczym poście typu Nieruchomości.

				
					// wyświetlenie galerii zdjęć dla bieżacego posta (pojedynczego)
[estate_gallery]
// wyświetlenie galerii zdjęć dla wybraneg posta (po ID)
[estate_gallery post_id="123"]
				
			

Należy pamiętać, że jeśli nieruchomość nie ma zdjęć to w tym miejscu wyświetli się komunikat widoczny tylko dla administratorów witryny.

Istnieje możliwość dodania mapy (wyświetlana jest lokalizacja nieruchomości). Są na to dwa sposoby. Pierwszy to zmiana ustawień (w panelu wtyczki). Tam możemy włączyć lub wyłączyć dodawanie mapy do posta (także możesz zmienić zoom na mapie):

Drugim sposobem jest użycie shortcode. Pozwala on na wyświetlenie mapy w pojedynczym poście typu Nieruchomości.

				
					//wyświetlenie mapy dla bieżacego posta (pojedynczego)
[estate_map]
//wyświetlenie wartości dla wybraneg posta (po ID)
[estate_map post_id="123"]
				
			

W obu przypadkach zostaje użyta mapa z OpenStreetMap. Należy pamiętać także o tym, że jeśli adres będzie w nieprawidłowym formacie to mapa może się wyświetlać w sposób nieprawidłowy. Może także przez to wcale się nie wyświetlać w pojedynczej nieruchomości. Dodatkowo, przy pierwszym włączeniu wtyczka ma domyślnie wyłączoną tą opcję w ustawieniach.

Lista nazw elementów dla Custom Meta Box każdego posta:

  • propertyAgentName – imię agenta nieruchomości, wartość tekstowa, wartość domyślna: „Brak”,
  • propertyAgentSurname – nazwisko agenta nieruchomości, wartość tekstowa, wartość domyślna: „Brak”,
  • propertyAgentPhone – numer telefonu agenta nieruchomości, wartość liczbowa, wartość domyślna: „Brak”,
  • propertyAgentEmail – adres e-mail agenta nieruchomości, wartość tekstowa, wartość domyślna: „Brak”,
  • propertyFloors – ilość pięter w nieruchomości, wartość domyślna: „Brak”,
  • propertyElevator – czy nieruchomość posiada windę, wartości:
    • 0 – nie posiada,
    • 1 – posiada,
  • propertyPrice – cena nieruchomości, preformatowana (np. cena 1000000 jest zmieniania na podstawie ustawień w panelu wtyczki), wartość domyślna: „Brak”,
  • propertyPricePerM – cena za metr kwadratowy, wartość tekstowa, brak formatowania, wartość domyślna: „Brak”,
  • propertyPriceCurrency – waluta, możliwe wartości:
    • PLN,
    • EUR,
    • USD,
  • propertyArea – powierzchnia nieruchomości, tylko wartość liczbowa, wartość domyślna: „Brak”,
  • propertyRooms – ilość pokoi, tylko wartość liczbowa, wartość domyślna: „Brak”,
  • propertyLocalization – lokalizacja nieruchomości, wartość tekstowa, wartość domyślna: „Brak”,
  • propertyRooms – ilość pokoi w nieruchomości, wartość liczbowa, wartość domyślna: „Brak”,
  • propertyBathrooms – ilość łazienek w nieruchomości, wartość liczbowa, wartość domyślna: „Brak”,
  • propertyYearBuilt – rok wybudowania nieruchomości, wartość liczbowa, wartość domyślna: „Brak”,
  • propertyBedrooms – ilość sypialni w nieruchomości, wartość liczbowa, wartość domyślna: „Brak”,
  • propertyToilets – ilość toalet w nieruchomości, wartość liczbowa, wartość domyślna: „Brak”,
  • propertyFloor – piętro nieruchomości, wartość liczbowa, wartość domyślna: „Brak”
  • propertyImages – zapisane w postaci JSON obrazy do galerii. Jeśli obrazy są pobierane bezpośrednio do WordPress’a (na serwer), to zapisywane są ID z mediów. Jeśli obrazy nie są pobierane, to w postaci JSON zapisane są linki do obrazów,
  • propertyID – ID nieruchomości z systemu Esti CRM,
  • propertyUpdateDate – data ostatniej aktualizacji ofert (z systemu Esti CRM).

Wartość domyślna jest używana tylko wtedy, gdy przesłane dane dla danego pola są puste lub zniszczone.

Przykładowy kod:

				
					<?php
//pobranie wartości custom fields dla posta o danym ID
$meta = get_post_custom($post -> ID);
//wyświetlenie preformatowanej ceny nieruchomści
var_dump($meta['propertyPrice'][0]);
?>
				
			

Dodatkowo, od wersji 0.3 jest możliwość wyświetlenia tych elementów poprzez shortcode:

				
					//wyświetlenie wartości dla bieżacego posta
[estate_property_meta meta_key="klucz_metadanych"]
//wyświetlenie wartości dla wybraneg posta
[estate_property_meta meta_key="klucz_metadanych" post_id="123"]
				
			

Wszystkie filtry

WWEC_PropertiesSlug

Filtr WWEC_PropertiesSlug służy do zmiany bezpośredniego odnośnika do nieruchomości.

Aktualny slug: nieruchomosci
Przykład: strona.pl/nieruchomosci/nieruchomosc-1

Przykładowy kod:
				
					<?php
// zmiana bezspośredniego odnośnika do nieruchomości na 'webist-nieruchomosci'
add_filter('WWEC_PropertiesSlug', 'WWEC_PropertiesSlugCallback', 10, 1);

function WWEC_PropertiesSlugCallback(){
	return "webist-nieruchomosci";
}
?>
				
			

WWEC_PropertiesCategorySlug

Filtr WWEC_PropertiesCategorySlug służy do zmiany bezpośredniego odnośnika do kategorii nieruchomości.

Aktualny slug: kategorie-nieruchomosci
Przykład: strona.pl/kategorie-nieruchomosci/sprzedaz

Przykładowy kod:
				
					<?php
// zmiana bezspośredniego odnośnika do kategorii nieruchomości na 'kategoria-nieruchomosci'
add_filter('WWEC_PropertiesCategorySlug', 'WWEC_PropertiesCategorySlugCallback', 10, 1);

function WWEC_PropertiesCategorySlugCallback(){
	return "kategoria-nieruchomosci";
}
?>
				
			

WWEC_PropertiesTypeSlug

Filtr WWEC_PropertiesTypeSlug służy do zmiany bezpośredniego odnośnika do typu nieruchomości.

Aktualny slug: typy-nieruchomosci
Przykład: strona.pl/typy-nieruchomosci/dom

Przykładowy kod:
				
					<?php
// zmiana bezspośredniego odnośnika do typu nieruchomości na 'typ-nieruchomosci'
add_filter('WWEC_PropertiesTypeSlug', 'WWEC_PropertiesTypeSlugCallback', 10, 1);

function WWEC_PropertiesTypeSlugCallback(){
	return "typ-nieruchomosci";
}
?>
				
			

WWEC_PropertiesLocalizationSlug

Filtr WWEC_PropertiesLocalizationSlug służy do zmiany bezpośredniego odnośnika do lokalizacji nieruchomości.

Aktualny slug: lokalizacje-nieruchomosci
Przykład: strona.pl/lokalizacje-nieruchomosci/dom

Przykładowy kod:
				
					<?php
// zmiana bezspośredniego odnośnika do lokalizacji nieruchomości na 'lokalizacja-nieruchomosci'
add_filter('WWEC_PropertiesLocalizationSlug', 'WWEC_PropertiesLocalizationSlugCallback', 10, 1);

function WWEC_PropertiesLocalizationSlugCallback(){
	return "lokalizacja-nieruchomosci";
}
?>
				
			

WWEC_PropertiesAgentSlug

Filtr WWEC_PropertiesAgentSlug służy do zmiany bezpośredniego odnośnika do archiwum agenta nieruchomości.

Aktualny slug: agent-nieruchomosci
Przykład: strona.pl/agent-nieruchomosci/jan-kowalski

Przykładowy kod:
				
					<?php
// zmiana bezspośredniego odnośnika do lokalizacji nieruchomości na 'agent'
add_filter('WWEC_PropertiesAgentSlug', 'WWEC_PropertiesAgentSlugCallback', 10, 1);

function WWEC_PropertiesAgentSlugCallback(){
	return "agent";
}
?>
				
			

WWEC_EstateTitleModifier

Filtr WWEC_EstateTitleModifier służy do modyfikacji tytułu nieruchomości w aktualizatorze ofert. Pozwala to modyfikować to, w jaki sposób tytuły nieruchomości zostaną zapisane.

Przykładowy kod:
				
					<?php
// modyfikacja tytułu nieruchomości poprzez kod
function customWWEC_titleTitleModifierCallback($title){
    // przykład modyfikacji tytułu - dodajemy prefiks
    return '[NazwaAgencji]: '.$title;
}

add_filter('WWEC_EstateTitleModifier', 'customWWEC_titleTitleModifierCallback');
?>
				
			

WWEC_EstateSlugModifier

Filtr WWEC_EstateSlugModifier służy do modyfikacji linku nieruchomości w aktualizatorze ofert. Pozwala to modyfikować to, w jaki sposób link do nieruchomości będzie wyglądał. Należy pamiętać, że link jest generowany na podstawie tytułu, ale filtr tytułu nie wpływa na link. 

Przykładowy kod:
				
					<?php
// modyfikacja slugu/url'a nieruchomości poprzez kod
function customWWEC_estateSlugModifierCallback($title){
    // przykład modyfikacji tytułu - przycinamy slug do maksymalnie 48 znaków
    if (strlen($slug) > $max_length){
        $slug = substr($slug, 0, $max_length);
    }

    return $slug;
}

add_filter('WWEC_EstateSlugModifier', 'customWWEC_estateSlugModifierCallback');
?>
				
			

Aby włączyć automatyczną aktualizację ofert należy dodać zadanie WP Cron w PHP. Można to zrobić za pomocą wtyczki WP Crontrol. Poniższy fragment kodu pozwala na aktualizację ofert:

				
					<?php
$ch = curl_init();
curl_setopt_array($ch, array(CURLOPT_URL => wp_nonce_url(site_url()."/wp-content/plugins/webist-wp-esticrm/update-offers.php", 'wwec_update_offers'), CURLOPT_RETURNTRANSFER => false));
$output = curl_exec($ch);
?>