forked from jgwhite/wp-broadbean
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathinbox.php
107 lines (84 loc) · 4.14 KB
/
inbox.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
<?php
/*
Broadbean Inbox Handler
*/
// Load the Wordpress environment.
$root = $_SERVER['DOCUMENT_ROOT'];
if (file_exists($root.'/wp-load.php')) {
require_once($root.'/wp-load.php');
} else {
echo 'Uh oh, cannot find wp-load.php';
}
// Look-up Broadbean username/password settings.
$username = get_option('broadbean_username');
$password = get_option('broadbean_password');
// Parse the xml we should have received in the request body.
$xml = trim(file_get_contents('php://input'));
$params = json_decode(json_encode(simplexml_load_string($xml)), 1);
// Guard against incorrect params.
if (trim($params['username']) !== $username || trim($params['password']) !== $password) {
echo 'Incorrect username and/or password';
die();
}
// Process an 'add' command.
function broadbean_add($params) {
$job_post_id = wp_insert_post(array(
'post_type' => 'job',
'post_title' => trim($params['job_title']),
'post_content' => trim($params['job_description']),
'tags_input' => array(trim($params['job_category']), trim($params['job_duration']))
));
if ($job_post_id != 0) {
add_post_meta($job_post_id , 'job_type' , trim($params['job_type']) , true);
add_post_meta($job_post_id , 'contact_name' , trim($params['contact_name']) , true);
add_post_meta($job_post_id , 'contact_email' , trim($params['contact_email']) , true);
add_post_meta($job_post_id , 'contact_telephone' , trim($params['contact_telephone']) , true);
add_post_meta($job_post_id , 'contact_url' , trim($params['contact_url']) , true);
add_post_meta($job_post_id , 'days_to_advertise' , trim($params['days_to_advertise']) , true);
add_post_meta($job_post_id , 'application_email' , trim($params['application_email']) , true);
add_post_meta($job_post_id , 'application_url' , trim($params['application_url']) , true);
add_post_meta($job_post_id , 'job_reference' , trim($params['job_reference']) , true);
add_post_meta($job_post_id , 'job_category' , trim($params['job_category']) , true);
add_post_meta($job_post_id , 'job_title' , trim($params['job_title']) , true);
add_post_meta($job_post_id , 'job_type' , trim($params['job_type']) , true);
add_post_meta($job_post_id , 'job_duration' , trim($params['job_duration']) , true);
add_post_meta($job_post_id , 'job_startdate' , trim($params['job_startdate']) , true);
add_post_meta($job_post_id , 'job_skills' , trim($params['job_skills']) , true);
add_post_meta($job_post_id , 'job_description' , trim($params['job_description']) , true);
add_post_meta($job_post_id , 'job_location' , trim($params['job_location']) , true);
add_post_meta($job_post_id , 'job_industry' , trim($params['job_industry']) , true);
add_post_meta($job_post_id , 'salary_currency' , trim($params['salary_currency']) , true);
add_post_meta($job_post_id , 'salary_from' , trim($params['salary_from']) , true);
add_post_meta($job_post_id , 'salary_to' , trim($params['salary_to']) , true);
add_post_meta($job_post_id , 'salary_per' , trim($params['salary_per']) , true);
add_post_meta($job_post_id , 'salary_benefits' , trim($params['salary_benefits']) , true);
add_post_meta($job_post_id , 'salary' , trim($params['salary']) , true);
wp_update_post(array('ID' => $job_post_id, 'post_status' => 'publish'));
}
echo 'Added ' . $params['job_reference'];
}
// Process a 'delete' command.
function broadbean_delete($params) {
$job_reference = trim($params['job_reference']);
$posts = get_posts(array(
'meta_key' => 'job_reference',
'meta_value' => $job_reference,
'post_type' => 'job',
'post_status' => 'publish'
));
foreach ($posts as $post) {
wp_delete_post($post->ID);
echo 'Deleted ' . $params['job_reference'] . "\n";
}
}
// Perform the processing based on <command>.
switch (strtolower(trim($params['command']))) {
case 'add':
broadbean_add($params);
break;
case 'delete':
broadbean_delete($params);
break;
}
die();
?>