Как получить дату истечения срока действия WordPress WooCommerce от мобильного бэкэнда?

У меня есть WordPress WooCommerce сайт.
Я пытаюсь получить данные с этого сайта для мобильного бэкенда.
Когда пользователь входит в систему через бэкэнд, я хочу получить дату истечения срока действия с сайта, используя мой бэкэнд. Но я получаю ошибки.

Что я хочу знать, так это то, что файлы woocommerce я должен включить для запуска функции wc_memberships_get_user_memberships ().

Вот мой бэкэнд-источник.

<?php
// required headers
header("Access-Control-Allow-Origin: *");
header("Content-Type: application/json; charset=UTF-8");

// include database and object files
include_once 'db_connect.php';
include_once '../wp-content/plugins/woocommerce/includes/class_woocommerce.php';
include_once '../wp-content/plugins/woocommerce-memberships/woocommerce-memberships.php';
include_once '../wp-content/plugins/woocommerce-memberships/includes/functions/wc-memberships-functions-user-memberships.php';

class FetchData {

public function logIn() {
if( isset($_POST['user_name']) && isset($_POST['password']) ){

$password = $_POST['password'];

$sql = "SELECT * FROM `wprl_users` WHERE `user_email` = '".$_POST['user_name']."' limit 1";
$query = mysqli_query(DBOpen(), $sql);
$user_info = mysqli_fetch_assoc($query);

if (count($user_info) > 0) {

require_once( '../wp-includes/class-phpass.php' );
$hasher = new PasswordHash(8, TRUE);

$pass_match = $hasher->CheckPassword( $password, $user_info['user_pass'] );

if($pass_match == TRUE) {
// Get memberships for the current user.
$memberships = wc_memberships_get_user_memberships($user_info['ID']);

// Verify that they have some memberships.
if ( $memberships ) {
foreach( $memberships as $memberships ) {
// Print the expiration date in mysql format.
$end_date = $membership->get_end_date();
}
}
echo json_encode(array('result'=>'success', 'member_name'=>$user_info['display_name'], 'member_num'=>
$user_info['ID'], 'expiry_date'=>$end_date));
}
else {
echo json_encode(array('result'=>'failed', 'message'=>'User name or password incorrect!'));
}
}
else {
echo json_encode(array('result'=>'failed', 'message'=>'User name or password incorrect!'));
}
}
else {
echo json_encode(array('result'=>'failed', 'message'=>'Wrong parameter'));
}
}
}

$option = new Fetchdata();

$options = (isset($_POST['options'])) ? $_POST['options'] : 1;

switch ($options){
case "login":
$option->logIn();
break;
}

?>

0

Решение

В WordPress есть определенный способ загрузки кода, подключения к БД, инициализации плагина и т. Д.
как вы это делаете, вы пытаетесь включить эти файлы вручную, даже если вы использовали чек вручную. есть https://codex.wordpress.org/Function_Reference/wp_check_password как таковой.
так что то, что вы делаете, это не следование их образцу.
если вы действительно хотите сделать это так, вы можете отследить код начальной загрузки из /index.php

тем не мение,
лучшее решение для вас — создать плагин для WordPress.
Вы можете следовать этому руководству
https://codex.wordpress.org/Writing_a_Plugin

или же https://www.smashingmagazine.com/2011/09/how-to-create-a-wordpress-plugin/

или же
Вы можете попробовать использовать фреймворк так:
https://framework.themosis.com

0

Другие решения

Других решений пока нет …