# Integrating Your Actions

### Event Handling:

| **Name**                            | Description                                                                                                                |
| ----------------------------------- | -------------------------------------------------------------------------------------------------------------------------- |
| **GdprCookieConsentOnLoad**         | The event is triggered when the cookie banner has loaded to get the user's consent.                                        |
| **GdprCookieConsentOnAccept**       | The event is triggered if the user accepts the use of cookies.                                                             |
| **GdprCookieConsentOnReject**       | The event is triggered if the user declines the use of cookies by clicking the reject-button in the cookie consent dialog. |
| **GdprCookieConsentOnOptout**       | The event is triggered when  user optouts for Do not sell my personal information                                          |
| **GdprCookieConsentOnCancelOptout** | The event is triggered when  user rejects CCPA notice to do not sell my personal information                               |

### **Examples:**

1. **Load marketing cookies if the user has accepted:**

```
<script type="text/javascript">
window.addEventListener('GdprlCookieConsentOnAccept', function (e) {
        if(e.detail.wpl_viewed_cookie == 'yes') {
        	if(e.detail.wpl_user_preference.marketing == 'yes') {
                // Execute code that sets marketing cookies.
            }
        }
}, false);
</script>
```

2\. **Load Google Analytics if the user has accepted Cookies:**

```
<script type="text/javascript">
window.addEventListener('GdprCookieConsentOnAccept', function (e) {
        if(e.detail.wpl_viewed_cookie == 'yes') {
        	if(e.detail.wpl_user_preference.analytics == 'yes') {
                enableGoogleAnalytics();
            }
       }
}, false);
var _gaq = [];
function enableGoogleAnalytics() {
    _gaq.push(['_setAccount', 'UA-00000000-0']);
    _gaq.push(['_trackPageview']);
    (function () {
        var ga = document.createElement('script');
        ga.type = 'text/javascript';
        ga.async = true;
        ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
        var s = document.getElementsByTagName('script')[0];
        s.parentNode.insertBefore(ga, s);
    })();
}
</script>
```

3\. **PHP Code:**

```
if(isset($_COOKIE['wpl_viewed_cookie'])) {
switch($_COOKIE['wpl_viewed_cookie']) {
		case 'yes' :
		// the user has accepted one or more type of cookies.
		$valid_php_json = preg_replace('/\s*:\s*([a-zA-Z0-9_]+?)([}\[,])/', ':"$1"$2', preg_replace('/([{\[,])\s*([a-zA-Z0-9_]+?):/', '$1"$2":', str_replace("'", '"',stripslashes($_COOKIE['wpl_user_preference']))));
		$wpl_user_preference = json_decode($valid_php_json);
		if($wpl_user_preference->analytics === 'yes') {
			// user has accepted analytics cookies.
		} else {
			// user has not accepted analytics cookies.
		}
		if($wpl_user_preference->marketing === 'yes') {
			// user has accepted marketing cookies.
		} else {
			// user has not accepted marketing cookies.
		}
		if($wpl_user_preference->preferences === 'yes') {
			// user has accepted preferences cookies.
		} else {
			// user has not accepted preferences cookies.
		}
		break;
		case 'no' :
		// the user has not accepted cookies - set necessary cookies only.
		break;
		default :
		break;
	}
} else {
	// the user has not accepted cookies - set necessary cookies only.
}
```


---

# 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://docs.wpeka.com/wp-gdpr-cookie-consent/event-handling-and-examples.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.
