У меня есть страница, которая взимает плату за покупку, и я хочу отправить электронное письмо администратору в случае успеха. Поэтому, когда условие выполняется (заряд прошел успешно), я вызываю функцию mail (). В приведенном ниже коде см. В разделе if ($ subscription) {} (Да, это условие работает правильно). Тем не менее, это никогда не работает. Если я помещаю функцию mail в отдельный файл, она работает нормально. Это возвращает истину, и я получаю письмо. Это просто не будет работать из файла, над которым я работаю. Очень загадочно! Я много раз переживал все и не вижу ничего, что могло бы конфликтовать с функцией mail ().
<?php
error_reporting(E_ALL);
ini_set('display_errors', 'On');
//set_error_handler("var_dump");
session_start();
if ( ( isset($_SESSION['signup_token']) ) AND ( $_POST['token'] ==
$_SESSION['signup_token'] ) ) {
// Start Charging
include_once 'classes/index.php';
\Stripe\Stripe::setApiKey("XXXXXXXXXXXXXXXXXXXXX");
// Set the stripe plan
switch ( $_POST['plan'] ) {
case 'Basic Hosting':
$plan = 'plan_xxxxxxxxxxxxxxxxxx';
break;
case 'Business Hosting':
$plan = 'plan_xxxxxxxxxxxxxxxxxxxx';
break;
case 'Pro Hosting':
$plan = 'plan_xxxxxxxxxxxxxxxxxxxxxx';
break;
case "Discount Hosting":
$plan = 'something';
break;
case 'New Website';
$plan = 'New Website';
break;
}
$pin = mt_rand('100000', '999999');
try {
// Create the Stripe customer
$customer = \Stripe\Customer::create([
'email' => $_POST['email'],
//'description' => $_POST['first_name'] . ' ' . $_POST['last_name'],
'metadata' => array(
'Purchased from' => 'example.com',
'Name' => $_POST['name'],
'Support PIN' => $pin,
),
'source' => $_POST['stripeToken'],
]);
// Subscribe the customer to the selected plan
$subscription = \Stripe\Subscription::create([
'customer' => $customer->id,
'items' => [['plan' => $plan]],
]);
if ( $subscription ) {
$to = "something@gmail.com";
$subject = "New subscription to";
$txt = "<strong>Customer Name:</strong> <br />";
$txt .= "<strong>Customer Email:</strong> <br />";
$txt .= "<strong>Support PIN:</strong> ";
$headers = "From: store@example.com" . "\r\n";
$headers .= "MIME-Version: 1.0" . "\r\n";
$headers .= "Content-type:text/html;charset=UTF-8" . "\r\n";
if (mail( $to, $subject, $txt, $headers ) ) {
echo "<p>Email to admin sent</p>";
};
include 'purchase_success.php';
}
if ( $plan == 'New Website') {
include 'includes/new_website_email.php';
//include 'includes/new_subscription_email.php';
}
} catch (Exception $e) {
error_log("unable to sign up customer:" . $_POST['stripeEmail'].
", error:" . $e->getMessage());
$error = $e->getMessage();
}
// End Charging
} else {
echo "Why are you here?";
}