Я хочу переопределить значение Кассира SubscriptionBuilder::buildPayload()
. Что выглядит следующим образом:
protected function buildPayload()
{
return array_filter([
'billing_cycle_anchor' => $this->billingCycleAnchor,
'coupon' => $this->coupon,
'expand' => ['latest_invoice.payment_intent'],
'metadata' => $this->metadata,
'plan' => $this->plan,
'quantity' => $this->quantity,
'tax_percent' => $this->getTaxPercentageForPayload(),
'trial_end' => $this->getTrialEndForPayload(),
'off_session' => true,
]);
}
Я хочу добавить к этому 1 параметр, который равен 'collection_method': 'invoice'
Так что я пытаюсь переопределить эту функцию, чтобы я мог ее изменить.
Я попробовал несколько вещей, а именно, следуя некоторым из следующих ответов:
Стратегия переопределения класса в библиотеке, установленной с Composer
Laravel 5.7 Переопределение класса вендора и расширение старого
Я добавил свои CustomSubscriptionBuilder
в App\SparkOverrides\
<?php
namespace Laravel\Cashier;
class CustomSubscriptionBuilder extends SubscriptionBuilder
{
protected function buildPayload()
{
dd('here');
}
}
Затем в composer.json
Я добавил:
"autoload": {
...
"files": [
"app/SparkOverrides/CustomSubscriptionBuilder.php"
]
},
Затем я запустил composer dump-autoload
. Но потом, когда я пытаюсь создать подписку, dd()
никогда не получает удар. Чтобы еще больше сбить с толку, я добавил дамп и умер в vendor
buildPayload()
, и это тоже не ударил.
Я чувствую, что я близко, но что-то упустил. Спасибо за любую помощь.