Files
IQ-Dynamic-Google-Pricing/VENDOR-SETUP.md

4.8 KiB

Vendor Library Setup Guide

You have two options to include the Google API Client library:

This is the easiest method and doesn't require Composer.

Step 1: Download Google API PHP Client

  1. Go to: https://github.com/googleapis/google-api-php-client/releases
  2. Download the latest release (e.g., google-api-php-client-2.15.0.zip)
  3. Extract the ZIP file

Step 2: Copy to Vendor Directory

Copy the extracted files into your plugin's vendor/ directory following this structure:

vendor/
├── autoload.php (already exists in plugin)
├── google/
│   ├── apiclient/
│   │   ├── src/
│   │   │   └── Google/
│   │   │       ├── Client.php
│   │   │       ├── Service/
│   │   │       └── ... (all Google API files)
│   │   └── ...
│   └── apiclient-services/
│       ├── autoload.php
│       └── src/
│           └── Google/
│               └── Service/
│                   └── ShoppingContent/
│                       └── ... (Shopping API files)
├── guzzlehttp/
│   ├── guzzle/
│   │   └── src/
│   ├── psr7/
│   │   └── src/
│   └── promises/
│       └── src/
├── psr/
│   ├── http-message/src/
│   ├── http-client/src/
│   ├── cache/src/
│   └── log/Psr/Log/
├── firebase/
│   └── php-jwt/src/
└── monolog/
    └── monolog/src/Monolog/

Step 3: Quick Copy Instructions

If you downloaded the Google API Client via Composer once, you can simply copy the entire vendor directory:

# Run composer install once (on your development machine)
composer install

# Then copy the entire vendor directory to your plugin
# The plugin's custom autoloader will handle everything

The vendor directory will be about 10-15 MB, which is perfectly fine for WordPress plugin distribution.

Option 2: Use Composer (For Development)

If you're actively developing the plugin:

cd /path/to/plugin
composer install

This will:

  • Download all dependencies
  • Generate an optimized autoloader
  • Create vendor/autoload_real.php

The plugin's autoloader (vendor/autoload.php) automatically detects and uses Composer's autoloader if available.

Verifying Installation

After setting up the vendor directory, check that these files exist:

  1. vendor/google/apiclient/src/Google/Client.php
  2. vendor/google/apiclient-services/src/Google/Service/ShoppingContent.php
  3. vendor/guzzlehttp/guzzle/src/Client.php

If these files exist, the plugin will work correctly!

For Plugin Distribution

When distributing your plugin (e.g., to clients or WordPress.org):

  1. Include the vendor directory in your plugin ZIP
  2. Users simply upload and activate - no Composer needed
  3. The custom autoloader handles everything automatically

This is the standard practice for WordPress plugins - most popular plugins include their dependencies rather than requiring Composer.

Simplified Download Script

Want to automate this? Run this in your plugin directory:

#!/bin/bash
# Download and setup Google API Client

# Install via Composer (easiest way to get all dependencies)
composer install --no-dev --optimize-autoloader

# Remove Composer development files (optional)
rm -rf vendor/bin
rm -rf vendor/composer/*.json

echo "Google API Client installed successfully!"
echo "You can now distribute the plugin with the vendor directory included."

File Size Note

The complete vendor directory with Google API Client and dependencies is approximately:

  • Uncompressed: 10-15 MB
  • ZIP compressed: 2-3 MB

This is acceptable for WordPress plugin distribution and much easier than requiring users to run Composer.

Troubleshooting

"Google API Client library is missing" error

If you see this error in WordPress admin:

  1. Check that vendor/google/apiclient/src/Google/Client.php exists
  2. Verify file permissions (should be readable by web server)
  3. Check that the autoloader is being loaded (check plugin main file)

Class not found errors

If you get "Class 'Google_Service_ShoppingContent' not found":

  1. Ensure vendor/google/apiclient-services/ exists
  2. Check that Shopping Content service is included in apiclient-services
  3. You may need to download the services separately from: https://github.com/googleapis/google-api-php-client-services

Minimal Installation (Advanced)

If you want to reduce file size, you can include only the required services:

  1. Install full Google API Client
  2. Keep only these directories:
    • google/apiclient/
    • google/apiclient-services/src/Google/Service/ShoppingContent/
    • guzzlehttp/ (all)
    • psr/ (all)
    • firebase/php-jwt/

This reduces the size to ~5 MB while keeping all necessary functionality.