Skip to content

Technical Plugin PayPerViewLive

Daniel Neto edited this page Oct 29, 2026 · 1 revision

Technical: PayPerViewLive plugin

Defines paid live-event plans and purchase/entitlement behavior.

Audience: developers, advanced administrators and AI-assisted diagnosis. Plugin catalog.

Source baseline

  • Review date: 2026-10-29. Method: static source analysis; runtime/provider behavior was not exercised.
  • Code ownership: independently versioned plugin repository.
  • Reported version: 7.5.
  • Source revision: 7d63190ccc1f5337e8ad96e06323d9d98520bc0f.
  • Entry class file: PayPerViewLive.php.

Confirm the installed plugin version independently of the Streamer version. Configuration defaults below are not a dump of this installation's saved settings.

Dependencies

Plugin Required by declaration Source reason
YPTWallet Required Charges PPV live purchases to the user wallet balance
Live Required Gates access to live streams, its core purpose

Literal runtime plugin references: Live, YPTWallet. These calls do not mean every referenced plugin is mandatory.

Hook integration

Override Implementation
getTags() PayPerViewLive.php:21
getDataObjectAdvanced() PayPerViewLive.php:54
getPluginMenu() PayPerViewLive.php:90
getLivePanel() PayPerViewLive.php:96
getModeYouTubeLive($users_id_live_owner) PayPerViewLive.php:103
profileTabName($users_id) PayPerViewLive.php:254
profileTabContent($users_id) PayPerViewLive.php:261
getLiveApplicationArray() PayPerViewLive.php:271

Configuration assignments

These are direct assignments inside getEmptyDataObject(), not evaluated effective defaults. Stored plugins.object_data, globals, structured values and conditional branches may alter runtime behavior. Private/default credential values are omitted.

Field Literal default or expression type Literal source label/help Evidence
payPerViewLabel "Pay-per-view Live" — source
payPerViewBuyLabel "Buy Now" — source
thanksForPurchase "Thanks for the purchase" — source
reminderText Computed/structured; inspect source — source
ifNeedToPayRedirectURL '' if need to pay, redirect to this URL: If you use this option you may need the API to enable the PPV source

Files and request surface

This inventory distinguishes implementation files from an API specification. Includes, templates, callbacks and CLI workers are not interchangeable HTTP endpoints. Request-field names below are direct source references, not a complete schema or permission declaration.

File Source role Direct request fields observed
Objects/Ppvlive_plans.php class/helper implementation —
Objects/Ppvlive_purchases.php class/helper implementation —
Objects/Ppvlive_schedule.php class/helper implementation sort
Objects/Ppvlive_users_parameters.php class/helper implementation —
PayPerViewLive.php plugin entry class ppv_schedule_id, redirectUri, users_id
View/Ppvlive_plans/add.json.php JSON entry point; inspect caller and guard description, hours_valid, id, max_duration_in_minutes, name, percentage_siteowner, percentage_user, status, users_id, value
View/Ppvlive_plans/delete.json.php JSON entry point; inspect caller and guard id
View/Ppvlive_plans/index.php PHP page/include/worker; inspect caller —
View/Ppvlive_plans/index_body.php PHP page/include/worker; inspect caller —
View/Ppvlive_plans/index_head.php PHP page/include/worker; inspect caller —
View/Ppvlive_plans/list.json.php JSON entry point; inspect caller and guard —
View/Ppvlive_purchases/add.json.php JSON entry point; inspect caller and guard id, parameters, ppvlive_schedule_id, status, type, users_id, value_paid
View/Ppvlive_purchases/delete.json.php JSON entry point; inspect caller and guard id
View/Ppvlive_purchases/index.php PHP page/include/worker; inspect caller —
View/Ppvlive_purchases/index_body.php PHP page/include/worker; inspect caller —
View/Ppvlive_purchases/index_head.php PHP page/include/worker; inspect caller —
View/Ppvlive_purchases/list.json.php JSON entry point; inspect caller and guard —
View/Ppvlive_schedule/add.json.php JSON entry point; inspect caller and guard description, id, live_ends, live_starts, parameters, ppvlive_plans_id, start_sell_in, startsel1, status, users_id
View/Ppvlive_schedule/delete.json.php JSON entry point; inspect caller and guard id
View/Ppvlive_schedule/index.php PHP page/include/worker; inspect caller —
View/Ppvlive_schedule/index_body.php PHP page/include/worker; inspect caller —
View/Ppvlive_schedule/index_head.php PHP page/include/worker; inspect caller —
View/Ppvlive_schedule/list.json.php JSON entry point; inspect caller and guard future, sort, users_id
View/Ppvlive_users_parameters/add.json.php JSON entry point; inspect caller and guard id, parameters, users_id
View/Ppvlive_users_parameters/delete.json.php JSON entry point; inspect caller and guard id
View/Ppvlive_users_parameters/index.php PHP page/include/worker; inspect caller —
View/Ppvlive_users_parameters/index_body.php PHP page/include/worker; inspect caller —
View/Ppvlive_users_parameters/index_head.php PHP page/include/worker; inspect caller —
View/Ppvlive_users_parameters/list.json.php JSON entry point; inspect caller and guard —
View/buy.php PHP page/include/worker; inspect caller plans_id, ppvlive_schedule_id, redirectUri, sort, users_id
View/editor.php PHP page/include/worker; inspect caller —
View/panel.php PHP page/include/worker; inspect caller —
View/profileTabContent.php PHP page/include/worker; inspect caller sort
install/install.sql schema/migration SQL —
install/updateV4.1.sql schema/migration SQL —
remindMe.json.php JSON entry point; inspect caller and guard deleteIfExists, minutesEarlier, ppvlive_schedule_id
remindMe.php PHP page/include/worker; inspect caller ppvlive_schedule_id
subscribePlan.php PHP page/include/worker; inspect caller ppvlive_schedule_id

Data and migrations

Tables named in available CREATE TABLE statements: ppvlive_plans, ppvlive_purchases, ppvlive_schedule, ppvlive_users_parameters. Apply installation/update behavior through the owning plugin; this reference is not a script for running historical migrations manually.

Main-file named symbols

Visibility and implementation semantics must be checked in source. Nonempty string defaults are represented as . This is a symbol reference, not a stable public API promise.

Function or method Source
getPluginDependencies() 14
getTags() 21
getDescription() 29
getName() 39
getUUID() 44
getPluginVersion() 49
getDataObjectAdvanced() 54
getEmptyDataObject() 61
canCreatePPV() 82
getPluginMenu() 90
getLivePanel() 96
getModeYouTubeLive($users_id_live_owner) 103
getLinkToBuy($users_id) 123
canUserWatchNow($users_id, $users_id_live_owner) 138
userHasASchedule($users_id, $time) 155
getAllPlansFromUser($users_id) 160
getSubscriptionToPlan($users_id, $ppvlive_schedule_id) 165
getPaymentDetails($scheduleId) 171
completeWalletCheckout($usersId, $scheduleId, $expectedValue, $expectedEnd) 193
canUserWatchLive($users_id, $ppvlive_schedule_id) 225
profileTabName($users_id) 254
profileTabContent($users_id) 261
getLiveApplicationArray() 271
setLiveScheduleReminder($ppvlive_schedule_id, $minutesEarlier = 0, $deleteIfExists = false) 320
getLiveScheduleReminders($ppvlive_schedule_id) 397
getLiveScheduleReminderBaseNameType($ppvlive_schedule_id, $minutesEarlier = '') 403
getScheduleReminderOptions($ppvlive_schedule_id) 413
API_set_payperview($parameters) 489
API_set_payperview_delete($parameters) 572
API_get_payperview($parameters) 639

Supporting PHP declarations

These symbols are grouped by source file; inspect the class declaration and visibility before calling them.

Objects/Ppvlive_plans.php

Declared classes: Ppvlive_plans.

Named symbol Source
getSearchFieldsNames() 9
getTableName() 13
getAllUsers() 17
getAllActive() 21
setId($id) 42
setValue($value) 46
setName($name) 50
setDescription($description) 55
setStatus($status) 60
setHours_valid($hours_valid) 64
setUsers_id($users_id) 68
setPercentage_siteowner($percentage_siteowner) 72
setPercentage_user($percentage_user) 76
setMax_duration_in_minutes($max_duration_in_minutes) 80
getId() 85
getValue() 89
getName() 93
getDescription() 97
getStatus() 101
getHours_valid() 105
getUsers_id() 109
getPercentage_siteowner() 113
getPercentage_user() 117
getMax_duration_in_minutes() 121
save() 125

Objects/Ppvlive_purchases.php

Declared classes: Ppvlive_purchases.

Named symbol Source
getSearchFieldsNames() 9
getTableName() 13
getAllPpvlive_schedule() 17
getAllUsers() 42
setId($id) 67
setPpvlive_schedule_id($ppvlive_schedule_id) 71
setUsers_id($users_id) 75
setStatus($status) 79
setValue_paid($value_paid) 83
setParameters($parameters) 87
setType($type) 91
getId() 95
getPpvlive_schedule_id() 99
getUsers_id() 103
getStatus() 107
getValue_paid() 111
getParameters() 115
getType() 119
getPurchase($users_id, $ppvlive_schedule_id) 124
getAllFromUser($users_id) 145
getAll() 171

Objects/Ppvlive_schedule.php

Declared classes: Ppvlive_schedule.

Named symbol Source
getSearchFieldsNames() 10
getTableName() 14
getAllPpvlive_plans($status = "") 18
getAllUsers() 44
setId($id) 62
setPpvlive_plans_id($ppvlive_plans_id) 66
setUsers_id($users_id) 70
setLive_starts($live_starts) 74
setLive_ends($live_ends) 79
setStatus($status) 86
setStart_sell_in($start_sell_in) 90
setParameters($parameters) 97
getId() 104
getPpvlive_plans_id() 108
getUsers_id() 112
getLive_starts() 116
getLive_ends() 120
getStatus() 124
getStart_sell_in() 128
getParameters() 132
save() 136
getAll($users_id=0, $future=false, $activeOnly=true, $notStarted=false ) 208
getSchedule($users_id, $time) 281
getScheduleFromID($id) 324

Objects/Ppvlive_users_parameters.php

Declared classes: Ppvlive_users_parameters.

Named symbol Source
getSearchFieldsNames() 9
getTableName() 13
getAllUsers() 17
setId($id) 38
setUsers_id($users_id) 42
setParameters($parameters) 46
getId() 51
getUsers_id() 55
getParameters() 59

Diagnostics and validation

  1. Check the installed/enabled version and the dependencies/settings above.
  2. Identify the actual failing page, request, callback or worker and correlate its timestamp with the AVideo log.
  3. Follow the linked method and caller. Check business-state changes and output artifacts as well as HTTP status.
  4. Reproduce the relevant workflow in a test environment. External provider, Encoder, live-server, storage, payment and authenticated flows require their real integrations.

Shared diagnostic workflow. This page is not a security audit or a claim of end-to-end validation.

Clone this wiki locally