Как использовать классы woocommerce из пользовательского плагина, который использует composer автозагрузку - PullRequest
0 голосов
/ 02 мая 2020

Я использую Composer автозагрузку в моем плагине, чтобы упростить управление всеми файлами и классами, вместо того, чтобы писать когда-нибудь одно время require_once

Однако у меня возникают проблемы при попытке доступа к родным классам woocommerce. Мои классы определяются с помощью пространств имен, например:

<?php
namespace Inc\Api;

class RestClientApi
{
....
}

Если я пытаюсь вызвать класс woocommerce в этом классе, например:

<?php
namespace Inc\Api;

class RestClientApi
{

  public $example = new WC_product();

}

Я получаю ошибку Class Inc/Api/WC_product not found I знаю, что означает ошибка, но я не знаю, как использовать классы Woocommerce из моего пользовательского плагина, учитывая, что я использую автозагрузку и пространства имен в своих пользовательских классах плагина.

UPDATE Как я и просил, я добавил свою конфигурацию автозагрузки, это довольно просто, я просто вызываю мою / в c папку

"autoload": {
        "psr-4": {"Inc\\": "./inc"}
    }

1 Ответ

0 голосов
/ 02 мая 2020

В вашем плагине composer. json добавьте что-то вроде этого (вы адаптируете его к вашим потребностям):

    "autoload": {
        "psr-4": {
            "WooCommerceNamespace\\":"path/to/woocomerce/classes/folder"
        }
    },

Затем запустите

composer dump-autoload 

внутри composer. json папка.

Затем добавьте в свой файл плагина: используйте WooCommerceNamespace \ W C и класс W C теперь должен быть доступен.

(если ваш W C. php файл уже имеет объявление пространства имен, используйте это пространство имен в объявлении psr-4).

...