-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathformitable_development_kit.php
More file actions
78 lines (58 loc) · 2.41 KB
/
formitable_development_kit.php
File metadata and controls
78 lines (58 loc) · 2.41 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
<?php
/*
Plugin Name: Formitable Development Kit
Plugin URI: https://formitable.com
Description: Tools for integrating Formitable on your website.
Version: 1.4.1
Author: Formitable
License: GPLv2 or later
*/
if ( ! defined( 'ABSPATH' ) ) exit;
add_action('admin_menu', 'formitable_widget_actions');
add_action('wp_footer', 'formitable_write_widget');
function formitable_development_kit_admin() {
include('formitable_development_kit_admin.php');
}
function formitable_widget_actions() {
add_options_page("Formitable", "Formitable", "manage_options", "Formitable", "formitable_development_kit_admin");
}
function formitable_write_widget(){
echo formitable_get_widgetcode();
}
function formitable_get_widgetcode(){
$widgetCode =
'<script>
(function (d, s, id, h) { var ftjs = d.getElementsByTagName(s)[0]; if (d.getElementById(id)) return;
var js = d.createElement(s); js.id = id; js.src = "https://cdn.formitable.com/sdk/v1/ft.sdk.min.js";
h && (js.onload = h); ftjs.parentNode.insertBefore(js, ftjs); }
(document, "script", "formitable-sdk"' . getWidgetHandler() . '));' . PHP_EOL .
'</script>' . PHP_EOL;
if (get_option('ft_booking_active') == 1)
{
$widgetCode .= '<div class="ft-widget-side" data-restaurant="' . get_option('ft_restaurantUid') . '" data-open="' . get_option('ft_booking_autoOpen') . '" data-open-mobile="' . get_option('ft_booking_autoOpen_mobile') . '" data-toolbar="' . (get_option('ft_booking_toolbar') ? 'true' : 'false') . '" data-toolbar-mobile="' . (get_option('ft_booking_toolbar_mobile') ? 'true' : 'false') . '" data-color="' . get_option('ft_booking_color') . '" data-language="' . formitable_get_language() . '" data-tag="' . get_option('ft_booking_tag') . '"></div>';
}
return $widgetCode;
}
function getWidgetHandler(){
$analytics = get_option('ft_modules_analytics');
if ($analytics) {
return ", function() { FT.load(\"Analytics\") }";
}
}
function formitable_get_language(){
$lang = get_option('ft_booking_language');
if ($lang === 'browser')
return 'auto'; // 'auto' in FT will take the browser's language, in Wordpress it means the website's language.
if ($lang === 'auto') {
$locale = get_locale();
if(strpos($locale, '_') === false)
return 'en';
$all_languages = array('ca', 'da', 'de', 'es', 'en', 'fr', 'nb', 'nl', 'sv');
$items = explode('_', $locale);
if (in_array($items[0], $all_languages))
return $items[0];
return 'en';
}
return $lang;
}
?>