WordPress integrace
Navod na integraci rezervacniho systemu do WordPressu.
Moznosti integrace
1. Blok Vlastni HTML (nejjednodussi)
- Upravte stranku kde chcete rezervacni formular
- Pridejte blok Vlastni HTML
- Vlozte embed kod:
<iframe
src="https://zarezervujto.cz/vas-projekt-slug"
width="100%"
height="700"
frameborder="0"
style="border: none; border-radius: 12px;"
></iframe>
2. Shortcode
Pridejte do souboru functions.php vasi sablony:
function zarezervujto_shortcode($atts) {
$atts = shortcode_atts([
'slug' => '',
'height' => '700'
], $atts);
if (empty($atts['slug'])) {
return '<p>Chyba: Zadejte slug projektu</p>';
}
return sprintf(
'<iframe src="https://zarezervujto.cz/%s" width="100%%" height="%spx" frameborder="0" style="border: none; border-radius: 12px;"></iframe>',
esc_attr($atts['slug']),
esc_attr($atts['height'])
);
}
add_shortcode('zarezervujto', 'zarezervujto_shortcode');
Pouziti v editoru:
[zarezervujto slug="vas-projekt-slug" height="700"]
3. Elementor widget
Pro Elementor pouzijte widget HTML a vlozte embed kod.
4. Gutenberg blok
Pro vlastni Gutenberg blok vytvorte plugin:
<?php
/**
* Plugin Name: Zarezervujto Block
* Description: Gutenberg blok pro rezervacni system
* Version: 1.0.0
*/
function zarezervujto_block_init() {
register_block_type(__DIR__ . '/build');
}
add_action('init', 'zarezervujto_block_init');
Reseni problemu
Widget se nezobrazuje
Pricina: WordPress muze blokovat iframe z bezpecnostnich duvodu.
Reseni: Pridejte do functions.php:
function allow_zarezervujto_iframe($content) {
return str_replace(
'<iframe src="https://zarezervujto.cz',
'<iframe loading="lazy" src="https://zarezervujto.cz',
$content
);
}
add_filter('the_content', 'allow_zarezervujto_iframe');
Widget ma spatnou vysku
Reseni: Upravte CSS:
/* Pridejte do Vzhled > Upravit CSS */
.wp-block-html iframe {
min-height: 700px;
}
@media (max-width: 768px) {
.wp-block-html iframe {
min-height: 600px;
}
}
Konflikty s tema
Nektera temata mohou zpusobit problemy se styly. Pridejte:
.zarezervujto-container {
all: initial;
}
.zarezervujto-container iframe {
width: 100%;
height: 700px;
border: none;
border-radius: 12px;
}
A obalte iframe:
<div class="zarezervujto-container">
<iframe src="https://zarezervujto.cz/vas-projekt-slug"></iframe>
</div>
WooCommerce integrace
Pro integraci s WooCommerce (napr. pridani rezervace jako produktu):
1. Vytvorte produkt "Rezervace"
- Pridejte novy produkt
- Nastavte cenu na 0 Kc
- V popisu vlozte embed kod
2. Webhook pro potvrzeni platby
Nastavte webhook v WooCommerce pro upozorneni pri dokonceni objednavky:
add_action('woocommerce_order_status_completed', function($order_id) {
$order = wc_get_order($order_id);
// Poslat do Zarezervujto API
wp_remote_post('https://api.zarezervujto.cz/api/v1/vas-projekt/reservations', [
'headers' => [
'X-API-Key' => 'vas_api_klic',
'Content-Type' => 'application/json'
],
'body' => json_encode([
'email' => $order->get_billing_email(),
'firstName' => $order->get_billing_first_name(),
'lastName' => $order->get_billing_last_name(),
'phone' => $order->get_billing_phone(),
// ... dalsi data z objednavky
])
]);
});
Cachovani
Pokud pouzivate cachovaci plugin (WP Super Cache, W3 Total Cache), vylucte stranku s rezervacnim formularaem z cache:
WP Super Cache
Pridejte do nastaveni:
/rezervace/
/booking/
W3 Total Cache
V Page Cache → Never cache pages pridejte URL stranky.
Bezpecnost
CSP hlavicky
Pokud pouzivate Content Security Policy, pridejte:
frame-src https://zarezervujto.cz;
CORS
Nase API automaticky povoluje pozadavky z vasich domen. Pokud mate problemy, kontaktujte podporu.