首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在移动端获取wordpress woocommerce的有效期?

如何在移动端获取wordpress woocommerce的有效期?
EN

Stack Overflow用户
提问于 2018-06-23 05:38:09
回答 1查看 404关注 0票数 0

我有wordpress woocommerce网站。我正在尝试从这个网站获取移动后端的数据。当用户通过后端登录时,我想从我的后端从网站获得过期日期。但是我得到了一些错误。

我想知道的是,为了运行wc_memberships_get_user_memberships()函数,我应该包含哪些woocommerce文件。

这是我的后端源代码。

代码语言:javascript
复制
<?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;
    }

?>
EN

回答 1

Stack Overflow用户

发布于 2018-06-23 09:22:26

Wordpress有一种特定的方式来引导他们的代码,连接到数据库,初始化插件等等。在你这样做的时候,你尝试手动包含这些文件,即使你是手动使用check pass。这就是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
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50995890

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档