# Hooks

Integrating the CryptoPay payment process into other plugins or adding new features to CryptoPay, modifying some processes is very simple with hooks.

CryptoPay has a wrapper hook system created by writing a simple static class on top of WordPress' classic hook system.

This class, which you can use with autoload as below, plays a leading role in all integration processes.

```php
use BeycanPress\CryptoPay\PluginHero\Hook;
```

In addition, these hooks generally use OOP-compliant type classes. Below are the namespaces of all classes.

```php
// Abstract types
use BeycanPress\CryptoPay\Types\AbstractType;
use BeycanPress\CryptoPay\Types\AbstractListType;
// Data Types
use BeycanPress\CryptoPay\Types\InitType;
use BeycanPress\CryptoPay\Types\Data\ConfigDataType;
use BeycanPress\CryptoPay\Types\Data\PaymentDataType;
use BeycanPress\CryptoPay\Types\Data\DynamicDataType;
// Enums
use BeycanPress\CryptoPay\Types\Enums\TransactionStatus;
use BeycanPress\CryptoPay\Types\Enums\PaymentDataProcess;
// Network
use BeycanPress\CryptoPay\Types\Network\NetworkType;
use BeycanPress\CryptoPay\Types\Network\NetworksType;
use BeycanPress\CryptoPay\Types\Network\CurrencyType;
use BeycanPress\CryptoPay\Types\Network\CurrenciesType;
// Order
use BeycanPress\CryptoPay\Types\Order\OrderType;
use BeycanPress\CryptoPay\Types\Order\RefundType;
use BeycanPress\CryptoPay\Types\Order\RefundsType;
// Transaction
use BeycanPress\CryptoPay\Types\Transaction\ParamsType;
use BeycanPress\CryptoPay\Types\Transaction\AddressesType;
use BeycanPress\CryptoPay\Types\Transaction\TransactionType;
use BeycanPress\CryptoPay\Types\Transaction\TransactionsType;
```

Also, the "{addon}" value you will see in some hooks is a dynamic value. It is a value specified with the registerIntegration method during the integration process and sent to the payment API with the "cp\_addon" value. In this way, in some hooks you can directly manage the process for specific add-ons.

Please follow the Actions link below for actions and filters you can use with this static class.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://beycanpress.gitbook.io/cryptopay-docs/for-developers/hooks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
