[英]Fire function from functions.php instead of within a plugin
我需要对 Woocommerce Stripe 插件中的 function 进行一些修改。 function 在下面,我怎样才能从我的函数中触发它。php 在我的主题中呢?
public function display_update_subs_payment_checkout() {
$subs_statuses = apply_filters( 'wc_stripe_update_subs_payment_method_card_statuses', array( 'active' ) );
if (
apply_filters( 'wc_stripe_display_update_subs_payment_method_card_checkbox', true ) &&
wcs_user_has_subscription( get_current_user_id(), '', $subs_statuses ) &&
is_add_payment_method_page()
) {
$label = esc_html( apply_filters( 'wc_stripe_save_to_subs_text', __( 'Update the Payment Method used for all of my active subscriptions.', 'woocommerce-gateway-stripe' ) ) );
$id = sprintf( 'wc-%1$s-update-subs-payment-method-card', $this->id );
woocommerce_form_field(
$id,
array(
'type' => 'checkbox',
'label' => $label,
'default' => apply_filters( 'wc_stripe_save_to_subs_checked', false ),
)
);
}
}
我特别需要将第二行修改为:
$subs_statuses = apply_filters( 'wc_stripe_update_subs_payment_method_card_statuses', array( 'active', 'on-hold' ) );
默认状态由wc_stripe_update_subs_payment_method_card_statuses
过滤器挂钩处理。 所以你需要用你自己的过滤器覆盖它
在您的函数中。php 添加
add_filter('wc_stripe_update_subs_payment_method_card_statuses', 'add_payment_method_card_statuses');
function add_payment_method_card_statuses ( $statuses ) {
$new_statuses = [ 'active', 'on-hold' ]; // or whatever you want
return $new_statuses;
}
一般来说,过滤器必须有一些东西可以接受和一些东西要返回。 在这种情况下,我们接受默认状态($statuses)
并简单地返回我们状态的新数组。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.