PluginProbe
Orderable – Restaurant & Food Ordering System / 1.18.0
Orderable – Restaurant & Food Ordering System v1.18.0
0.1.4 0.1.5 0.2.0 1.0.0 1.1.0 1.1.1 1.10.0 1.10.1 1.11.0 1.12.0 1.12.1 1.12.2 1.13.0 1.14.0 1.15.0 1.16.0 1.17.0 1.17.1 1.18.0 1.19.0 1.19.1 1.19.2 1.2.0 1.20.0 1.20.1 All 44 releases
orderable / inc / class-webhooks.php

class-webhooks.php in Orderable – Restaurant & Food Ordering System 1.18.0, at inc/class-webhooks.php

61 lines 1.4 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 <?php
2 /**
3 * Webhooks.
4 *
5 * @package Orderable/Classes
6 */
7
8 defined( 'ABSPATH' ) || exit;
9
10 /**
11 * Settings class.
12 */
13 class Orderable_Webhooks {
14 /**
15 * Webhook server URL.
16 *
17 * @var string
18 */
19 public static $server_url = 'https://my.orderable.com/';
20
21 /**
22 * Subscribe to email list.
23 *
24 * @param string $email
25 */
26 public static function subscribe( $email = null ) {
27 $email = ! $email ? get_option( 'admin_email' ) : $email;
28
29 if ( empty( $email ) ) {
30 return;
31 }
32
33 $user_id = get_current_user_id();
34
35 $webook_url = self::$server_url . '?orderable-webhook=subscribe';
36
37 $url_data = array(
38 'email' => $email,
39 'first_name' => get_user_meta( $user_id, 'first_name', true ),
40 'last_name' => get_user_meta( $user_id, 'last_name', true ),
41 'full_name' => get_user_meta( $user_id, 'display_name', true ),
42 'website' => get_site_url(),
43 );
44
45 foreach ( $url_data as $url_data_key => $url_data_item ) {
46 $webook_url .= sprintf( '&%s=%s', urlencode( $url_data_key ), urlencode( $url_data_item ) );
47 }
48
49 $opt_in_response = wp_remote_post( $webook_url );
50 $opt_in_response_body = ! is_wp_error( $opt_in_response ) ? json_decode( wp_remote_retrieve_body( $opt_in_response ), true ) : array();
51
52 if ( ! empty( $opt_in_response_body['success'] ) ) {
53 // Log opt in status for processing later.
54 update_option( 'orderable_opt_in', 1 );
55 }
56
57 // Opt in successful so delete the flag.
58 delete_option( 'orderable_opt_in' );
59 }
60 }
61