Contactformulier koppelen aan CRM
Ik heb een eigen bedrijf en onze programmeur is sinds 2-3 weken vertrokken. Nu zijn wij bezig met een nieuwe website, wij hebben ook een eigen CRM systeem waarin automatisch de contactformulieren komen als deze worden ingevuld.
Echter om dit op de nieuwe website te laten werken is nogal drama ( dit omdat ik nieuw ben met PHP )
ik hoopte dat 1 van jullie kan zien hoe onze oude programmeur dit toendertijd heeft gedaan.
Contactformulier op website:
Code (php)
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
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
<?php
$send = false;
if ($_POST) {
$send = true;
if (empty($_POST['naam']) || empty($_POST['email']) || empty($_POST['telefoon']) || empty($_POST['bericht'])) {
$send = false;
}
if ($send) {
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Support <[email protected]>' . "\r\n";
$headers .= 'To: ' . $_POST['naam'] . ' <' . $_POST['email'] . '>' . "\r\n";
$clients = Client::find($_POST['email']);
if (count($clients) > 0) {
$client = $clients[0];
} else {
$client = Client::newClient('', 0, '', $_POST['naam'], '', '', $_POST['email'], $_POST['telefoon'], '');
}
$ticket = Ticket::newTicket($client, 'Website contactformulier', $_POST['bericht']);
$url = "http://helpdesk.vas-ict.nl/index.php?ticket=" . $ticket->getId() . '&hash=' . $ticket->get('hash');
$message = 'Geachte heer/mevrouw,</br>
</br>
Uw ticket is bij ons ontvangen. U kunt uw ticket volgen via deze link: <a href="' . $url . '">' . $url . '</a> </br></br> Met vriendelijke groet,</br></br>vas-ict';
mail($_POST['email'], 'Website contactformulier', $message, $headers);
echo "Bedankt voor uw bericht. Het bericht is verzonden en zal zo snel mogelijk in behandeling worden genomen.";
}
}
if ($_POST && !$send) {
echo "<span style='color:red'>Het formulier is niet verzonden want niet alle velden zijn ingevuld.</span>";
}
if (!$send) {
?>
<form method="post">
<table width="100%">
<tbody>
<tr>
<td>Naam:</td>
<td><input name="naam" style="width: 95%;" type="text"
value="<?= isset($_POST['naam']) ? $_POST['naam'] : '' ?>"/></td>
</tr>
<tr>
<td>E-mail:</td>
<td><input name="email" style="width: 95%;" type="text"
value="<?= isset($_POST['email']) ? $_POST['email'] : '' ?>"/></td>
</tr>
<tr>
<td>Telefoon:</td>
<td><input name="telefoon" style="width: 95%;" type="text"
value="<?= isset($_POST['telefoon']) ? $_POST['telefoon'] : '' ?>"/></td>
</tr>
<tr>
<td>Bericht:</td>
<td><textarea name="bericht"
style="width:95%; height:100px;"><?= isset($_POST['bericht']) ? $_POST['bericht'] : '' ?></textarea>
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Verzenden"/></td>
</tr>
</tbody>
</table>
</form>
<?php
}
?>
$send = false;
if ($_POST) {
$send = true;
if (empty($_POST['naam']) || empty($_POST['email']) || empty($_POST['telefoon']) || empty($_POST['bericht'])) {
$send = false;
}
if ($send) {
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";
$headers .= 'From: Support <[email protected]>' . "\r\n";
$headers .= 'To: ' . $_POST['naam'] . ' <' . $_POST['email'] . '>' . "\r\n";
$clients = Client::find($_POST['email']);
if (count($clients) > 0) {
$client = $clients[0];
} else {
$client = Client::newClient('', 0, '', $_POST['naam'], '', '', $_POST['email'], $_POST['telefoon'], '');
}
$ticket = Ticket::newTicket($client, 'Website contactformulier', $_POST['bericht']);
$url = "http://helpdesk.vas-ict.nl/index.php?ticket=" . $ticket->getId() . '&hash=' . $ticket->get('hash');
$message = 'Geachte heer/mevrouw,</br>
</br>
Uw ticket is bij ons ontvangen. U kunt uw ticket volgen via deze link: <a href="' . $url . '">' . $url . '</a> </br></br> Met vriendelijke groet,</br></br>vas-ict';
mail($_POST['email'], 'Website contactformulier', $message, $headers);
echo "Bedankt voor uw bericht. Het bericht is verzonden en zal zo snel mogelijk in behandeling worden genomen.";
}
}
if ($_POST && !$send) {
echo "<span style='color:red'>Het formulier is niet verzonden want niet alle velden zijn ingevuld.</span>";
}
if (!$send) {
?>
<form method="post">
<table width="100%">
<tbody>
<tr>
<td>Naam:</td>
<td><input name="naam" style="width: 95%;" type="text"
value="<?= isset($_POST['naam']) ? $_POST['naam'] : '' ?>"/></td>
</tr>
<tr>
<td>E-mail:</td>
<td><input name="email" style="width: 95%;" type="text"
value="<?= isset($_POST['email']) ? $_POST['email'] : '' ?>"/></td>
</tr>
<tr>
<td>Telefoon:</td>
<td><input name="telefoon" style="width: 95%;" type="text"
value="<?= isset($_POST['telefoon']) ? $_POST['telefoon'] : '' ?>"/></td>
</tr>
<tr>
<td>Bericht:</td>
<td><textarea name="bericht"
style="width:95%; height:100px;"><?= isset($_POST['bericht']) ? $_POST['bericht'] : '' ?></textarea>
</td>
</tr>
<tr>
<td> </td>
<td><input type="submit" value="Verzenden"/></td>
</tr>
</tbody>
</table>
</form>
<?php
}
?>
ik zie niet hoe deze aan de database gekoppeld zit.
alvast bedankt
Gewijzigd op 20/06/2016 19:08:46 door Vincent van As
Er moet dan een class zijn die Client heet, en daarin staat een functie die newTicket heet.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
public function getTickets($client_visible = false)
{
$tickets = array();
$filter = "";
if ($client_visible) {
$filter = "AND client_visible = 1";
}
$query = "SELECT tickets.*, users.name AS added_by FROM tickets LEFT JOIN users ON users.id = user_id WHERE client_id = '" . $this->getId() . "' " . $filter . " ORDER BY START DESC";
foreach (DB::getRows($query) as $row) {
$tickets[] = new Ticket($row);
}
return $tickets;
}
{
$tickets = array();
$filter = "";
if ($client_visible) {
$filter = "AND client_visible = 1";
}
$query = "SELECT tickets.*, users.name AS added_by FROM tickets LEFT JOIN users ON users.id = user_id WHERE client_id = '" . $this->getId() . "' " . $filter . " ORDER BY START DESC";
foreach (DB::getRows($query) as $row) {
$tickets[] = new Ticket($row);
}
return $tickets;
}
Die functie haalt via een Database-class (DB) de tickets op.
dus als ik dat contactformulier aan een nieuwe website toevoeg zou deze automatisch moeten werken?
Je moet dan wel de database uiteraard meenemen, en daarvan de juiste gegevens invoeren.
sorry dat ik zo onwetend ben hoor. Maar er wordt een nieuwe website in wordpress gemaakt. op dezelfde vps etc. alleen zal het db_wordpress worden of zo iets.
Op https://codex.wordpress.org/Writing_a_Plugin staat uitleg geschreven over hoe je WordPress kan uitbouwen met eigen functies. Maar er zijn ook kant en klare plugins te vinden.
nogmaals bedankt voor de moeite
Gewijzigd op 20/06/2016 20:07:20 door - Ariën -