Search packages, repositories and app categories

Package detailsv5.0.2

wp_json_api

WordPress and WooCommerce JSON API for Flutter Mobile. API allows you to login, register new users, get users info and more.

AndroidiOSmacOS
30-day downloads
515
Likes
44
Pub points
160

Install package

flutter pub add wp_json_api

Package Overview

Package selection guidance compiled from public package information, community data, and project usage.

The wp_json_api package provides a Flutter-compatible interface to interact with WordPress and WooCommerce's JSON REST API. It enables users to perform authentication tasks such as login and registration, retrieve user information, and manage data from WordPress-powered sites. Designed for mobile applications, it supports Android, iOS, and macOS platforms. The package simplifies integration with headless WordPress setups, making it ideal for e-commerce and content-driven apps. It is maintained by Woosignal and available via pub.dev.

Use cases

  • Mobile app user authentication
  • WooCommerce product and order retrieval
  • User profile management in Flutter apps
  • Headless WordPress content display
  • E-commerce app integration with WooCommerce

Key features

  • Built-in login and registration
  • Supports WordPress and WooCommerce APIs
  • Cross-platform (Android, iOS, macOS)
  • Simple API for user data access
  • Open-source and actively maintained

Suitable for

  • Flutter developers building WordPress-powered apps
  • E-commerce apps using WooCommerce
  • Apps requiring user account management
  • Projects using headless WordPress
  • Developers integrating with RESTful WordPress APIs

Considerations

  • Requires a WordPress site with REST API enabled
  • Authentication tokens must be handled securely
  • Limited to WordPress/WooCommerce ecosystems
  • Depends on external server configuration
  • May need additional error handling for network issues

Original README

Original README snapshot from the linked source repository. Visit the repository for the latest content.

WordPress and WooCommerce JSON API Dart package for Flutter

You can download the WordPress plugin here WP JSON API.

Install the WordPress plugin to use this Flutter package.

API features:

WordPress

  • Register/Sign Up API for Users
  • Login (with email or username)
  • Get Users Info
  • Update Users Info
  • Update Users Password
  • Add role to a user
  • Remove role from a user
  • Delete a user

WooCommerce

  • Get Customers Info (Billing and Shipping)
  • Update Customers details

To use this API you must have the WP JSON API Plugin installed first on your WordPress site, you can download it via the WooSignal website.

Getting Started

In your flutter project add the dependency:

dependencies:
  ...
  wp_json_api: ^4.3.8
Usage example

Import wp_json_api.dart

import 'package:wp_json_api/wp_json_api.dart';
Example using Wp JSON API
import 'package:wp_json_api/wp_json_api.dart';
...

void main() {

WPJsonAPI.instance.init(baseUrl: "https://mysite.com");

...
Call a method from the request callback
try {
WPUserLoginResponse wpUserLoginResponse = await WPJsonAPI.instance
          .api((request) => request.wpLogin(
            email: email,
            password: password
          ));
} on Exception catch (e) {
    print(e);
}
Available API Requests
WordPress - Get Nonce
  • Used for returning a valid nonce
WPNonceResponse wpNonceResponse = await WPJsonAPI.instance
          .api((request) => request.wpNonce());
WordPress - Verify Nonce
  • Used for verifying register and login request
WPNonceVerifiedResponse wpNonceVerifiedResponse = await WPJsonAPI.instance
          .api((request) => request.wpNonceVerify(
            nonce: nonce
          ));
WordPress - Login with email
  • Used to login a user
WPUserLoginResponse wpUserLoginResponse = await WPJsonAPI.instance
      .api((request) => request.wpLogin(
          email: email,
          password: password,
          authType: WPAuthType.WpEmail
      ));
WordPress - Login with username
  • Used to login a user
WPUserLoginResponse wpUserLoginResponse = await WPJsonAPI.instance
      .api((request) => request.wpLogin(
          username: username,
          password: password,
          authType: WPAuthType.WpUsername
      ));
WordPress - Register
  • Used to register a user
  • The username parameter is required, ensure that this is unique
WPUserRegisterResponse wpUserRegisterResponse = await WPJsonAPI.instance
      .api((request) => request.wpRegister(
          email: email,
          password: password,
          // username: username // optional - the library will automatically generate a username if not provided
      ));
WordPress - Get Users Info
  • Used to get a WordPress users info
  • After you login/register, you can all this method to get the users info
WPUserInfoResponse wpUserInfoResponse = await WPJsonAPI.instance
        .api((request) => request.wpGetUserInfo());
WordPress - Update Users Info
  • Used to update a WordPress users info
  • After you login/register, you can all this method to update the users info
WPUserInfoUpdatedResponse wpUserInfoUpdatedResponse = await WPJsonAPI.instance
        .api((request) => request.wpUpdateUserInfo(
          firstName: firstName,
          lastName: lastName,
          displayName: displayName
      ));
WordPress - Update users password
  • Used to update a users password
  • After you login/register, you can all this method to update the users password
WPUserResetPasswordResponse wpUserResetPasswordResponse = await WPJsonAPI.instance
        .api((request) => request.wpResetPassword(
            password: password
        ));
WordPress - Add a role to a user
  • Used to add a role to a user in WordPress
  • After you login/register, you can all this method to add a role to the user
WPUserAddRoleResponse wpUserAddRoleResponse = await WPJsonAPI.instance
        .api((request) => request.wpUserAddRole(
            role: "customer" // e.g. customer, subscriber
        ));
WordPress - Remove a role from a user
  • Used to remove a role from a user in WordPress
  • After you login/register, you can all this method to remove a role from the user
WPUserRemoveRoleResponse wpUserRemoveRoleResponse = await WPJsonAPI.instance
        .api((request) => request.wpUserRemoveRole(
            role: "customer" // e.g. customer, subscriber
        ));
WordPress - Delete a user
  • Used to delete a user in WordPress
  • After you login/register, you can all this method to delete the user
  • You can pass an optional argument 'reassign' to reassign posts and links to new User ID.
WPUserDeleteResponse wpUserDeleteResponse = await WPJsonAPI.instance
        .api((request) => request.wpUserDelete());
WooCommerce - Register
  • Used to register a user
WPUserRegisterResponse wpUserRegisterResponse = await WPJsonAPI.instance
      .api((request) => request.wpRegister(
          email: email,
          password: password
      ));
WooCommerce - Get users info in WooCommerce
  • Used to get WooCommerce info for a given user
  • After you login/register, you can all this method to get the users WooCommerce info
WCCustomerInfoResponse wcCustomerInfoResponse = await WPJsonAPI.instance
          .api((request) => request.wcCustomerInfo(
          userToken
      ));
WooCommerce - Update users info in WooCommerce
  • Used to update a users WooCommerce details
  • All the parameter are optional so if you wanted to just update the name, you could just add first_name and last_name
  • After you login/register, you can all this method to update the users WooCommerce info
WCCustomerUpdatedResponse wcCustomerUpdatedResponse = await WPJsonAPI.instance
        .api((request) => request.wcUpdateCustomerInfo(
            firstName: firstName,
            lastName: lastName,
            displayName: displayName,
            billingFirstName: billingFirstName,
            billingLastName: billingLastName,
            billingCompany: billingCompany,
            billingAddress1: billingAddress1,
            billingAddress2: billingAddress2,
            billingCity: billingCity,
            billingState: billingState,
            billingPostcode: billingPostcode,
            billingCountry: billingCountry,
            billingEmail: billingEmail,
            billingPhone: billingPhone,
            shippingFirstName: shippingFirstName,
            shippingLastName: shippingLastName,
            shippingCompany: shippingCompany,
            shippingAddress1: shippingAddress1,
            shippingAddress2: shippingAddress2,
            shippingCity: shippingCity,
            shippingState: shippingState,
            shippingPostcode: shippingPostcode,
            shippingCountry: shippingCountry,
            shippingEmail: shippingEmail,
            shippingPhone: shippingPhone
        ));
WooCommerce Points and Rewards - Get user's points
  • This is used to get the user's current points in the WooCommerce Points and Rewards plugin
  • After you login/register, you can all this method to get the users points
WcPointsAndRewardUser wcPointsAndRewardUser = await WPJsonAPI.instance
          .api((request) => request.wcPointsAndRewardsUser());
WooCommerce Points and Rewards - Calculate the value of points
  • This is used to calculate the value of points in the WooCommerce Points and Rewards plugin
  • After you login/register, you can all this method to calculate the value of points
WcPointsAndRewardCalculatePoints wcPointsAndRewardsCalculatePoints = await WPJsonAPI.instance
          .api((request) => request.wcPointsAndRewardsCalculatePoints(
          points: 100
      ));

For help getting started with WooSignal, view our online documentation, which offers a more detailed guide.

Usage

To use this plugin, add wp_json_api as a dependency in your pubspec.yaml file.

Note

Install our WordPress plugin "WP JSON API" v3.4.0 to use this flutter plugin.

Disclaimer: This plugin is not affiliated with or supported by Automattic, Inc. All logos and trademarks are the property of their respective owners.

Categories

Dependencies

Dependency list 4 items

Source repository

Projects using this package