如何实现第二个mycred-wooccommerce网关



您好。所以我有一个wooccommerce商店,安装了mycred插件和mycred网关插件。我创建了两种mycred点类型-令牌和rubies,其中令牌是默认的点类型。我有一个片段,允许使用ONLY代币(使用mycred网关(购买特定产品,这意味着没有安装其他支付网关(贝宝、锐舞(。我也想让红宝石只用于购买指定的产品。这里的问题是我必须克隆mycred网关并更改id、名称和类。我不是一个开发人员,但我已经尝试使用修改插件

https://mycred.me/support/forums/topic/woocommerce-checkout-2-gateway/

然而,我不断破坏我的网站,试图修改其他类。我本来会付钱给开发商帮我做这件事的,但他们现在有点贵,而且我经营着一家非常小的企业。如果有任何帮助,我将不胜感激。谢谢

以下是mycred网关的完整代码

if ( ! defined( 'myCRED_VERSION' ) ) exit;
/**
* WooCommerce Payment Gateway
* Custom Payment Gateway for WooCommerce.
* @see http://docs.woothemes.com/document/payment-gateway-api/
* @since 0.1
* @version 1.5
*/
if ( ! function_exists( 'mycred_init_woo_gateway' ) ) :
function mycred_init_woo_gateway() {
if ( ! class_exists( 'WC_Payment_Gateway' ) || class_exists( 'WC_Gateway_myCRED' ) ) return;
class WC_Gateway_myCRED extends WC_Payment_Gateway {
public $mycred;
/**
* Constructor
*/
public function __construct() {
$this->id                        = 'mycred';
$this->icon                      = '';
$this->has_fields                = true;
$this->method_title              = mycred_label();
$this->method_description        = __( 'Let users pay using points.', 'mycred' );
$this->supports                  = array(
'products',
'refunds'
);
if ( ! $this->use_exchange() )
$this->mycred_type = get_woocommerce_currency();
else {
$this->mycred_type = $this->get_option( 'point_type' );
if ( ! mycred_point_type_exists( $this->mycred_type ) )
$this->mycred_type = MYCRED_DEFAULT_TYPE_KEY;
}
$this->mycred                    = mycred( $this->mycred_type );
// Load the settings.
$this->init_form_fields();
$this->init_settings();
// Define user set variables
$this->title                     = $this->get_option( 'title' );
$this->description               = $this->get_option( 'description' );
if ( $this->use_exchange() )
$exchange_rate = (float) $this->get_option( 'exchange_rate' );
else
$exchange_rate = 1;
if ( ! is_numeric( $exchange_rate ) )
$exchange_rate = 1;
$this->exchange_rate             = $exchange_rate;
$this->log_template              = $this->get_option( 'log_template' );
$this->log_template_refund       = $this->get_option( 'log_template_refund' );
$this->profit_sharing_refund_log = $this->get_option( 'profit_sharing_refund_log' );
$this->show_total                = $this->get_option( 'show_total' );
$this->total_label               = $this->get_option( 'total_label' );
$this->balance_format            = $this->get_option( 'balance_format' );
$this->profit_sharing_percent    = $this->get_option( 'profit_sharing_percent' );
$this->profit_sharing_log        = $this->get_option( 'profit_sharing_log' );
// Actions
add_action( 'woocommerce_update_options_payment_gateways_' . $this->id, array( $this, 'process_admin_options' ) );
add_action( 'woocommerce_thankyou_mycred',                              array( $this, 'thankyou_page' ) );
}
/**
* Initialise Gateway Settings Form Fields
* @since 0.1
* @version 1.4.1
*/
function init_form_fields() {
// Fields
$fields['enabled']             = array(
'title'   => __( 'Enable/Disable', 'mycred' ),
'type'    => 'checkbox',
'label'   => sprintf( __( 'Enable %s Payment', 'mycred' ), $this->method_title ),
'default' => 'no',
'description' => __( 'Users who are not logged in or excluded from using myCRED will not have access to this gateway!', 'mycred' )
);
$fields['title']               = array(
'title'       => __( 'Title', 'mycred' ),
'type'        => 'text',
'description' => __( 'Title to show for this payment option.', 'mycred' ),
'default'     => __( 'Pay with myCRED', 'mycred' ),
'desc_tip'    => true
);
$fields['description']         = array(
'title'       => __( 'Customer Message', 'mycred' ),
'type'        => 'textarea',
'default'     => $this->mycred->template_tags_general( 'Deduct the amount from your %_plural% balance.' )
);
$fields['log_template']        = array(
'title'       => __( 'Log Template', 'mycred' ),
'type'        => 'text',
'description' => $this->mycred->available_template_tags( array( 'general' ), '%order_id%, %order_link%' ),
'default'     => 'Payment for Order: #%order_id%'
);
$fields['log_template_refund'] = array(
'title'       => __( 'Refund Log Template', 'mycred' ),
'type'        => 'text',
'description' => $this->mycred->available_template_tags( array( 'general' ), '%order_id%, %reason%' ),
'default'     => 'Payment refund for order #%order_id% Reason: %reason%'
);
// Only add exchange rate if the currecy is not set to mycred
if ( $this->use_exchange() ) {
$mycred_types = mycred_get_types();
$fields['point_type']      = array(
'title'       => __( 'Point Type', 'mycred' ),
'type'        => 'select',
'label'       => __( 'Select the point type users can use to pay.', 'mycred' ),
'options'     => $mycred_types,
'default'     => MYCRED_DEFAULT_TYPE_KEY
);
$exchange_desc = $this->mycred->template_tags_general( __( 'How much is 1 %_singular% worth in %currency%?', 'mycred' ) );
$exchange_desc = str_replace( '%currency%', get_woocommerce_currency(), $exchange_desc );
$fields['exchange_rate']   = array(
'title'       => __( 'Exchange Rate', 'mycred' ),
'type'        => 'text',
'description' => $exchange_desc,
'default'     => 1,
'desc_tip'    => true
);
$fields['show_total']      = array(
'title'       => __( 'Show Total', 'mycred' ),
'type'        => 'select',
'label'       => $this->mycred->template_tags_general( __( 'Show the final price in %_plural% .', 'mycred' ) ),
'options'     => array(
''           => __( 'Do not show', 'mycred' ),
'cart'       => __( 'Show in Cart', 'mycred' ),
'checkout'   => __( 'Show on Checkout Page', 'mycred' ),
'all'        => __( 'Show in Cart and on Checkout Page', 'mycred' )
),
'default'     => ''
);
$fields['total_label']     = array(
'title'       => __( 'Label', 'mycred' ),
'type'        => 'text',
'default'     => $this->mycred->template_tags_general( __( 'Order Total in %_plural%', 'mycred' ) ),
'desc_tip'    => true
);
}
else {
$fields['point_type']      = array(
'title'       => __( 'Point Type', 'mycred' ),
'type'        => 'currency',
'description' => $this->mycred->plural(),
'default'     => $this->mycred_type
);
}
$fields['balance_format']            = array(
'title'       => __( 'Balance Label', 'mycred' ),
'type'        => 'text',
'description' => __( 'The label to use when presenting a user their balance on the checkout / cart pages. Leave empty to hide.', 'mycred' ),
'default'     => 'Your Balance',
'desc_tip'    => false
);
$fields['profit_sharing_percent']    = array(
'title'       => __( 'Profit Sharing', 'mycred' ),
'type'        => 'text',
'description' => __( 'Option to share sales with the product owner. Use zero to disable.', 'mycred' ),
'default'     => 0,
'desc_tip'    => true
);
$fields['profit_sharing_log']        = array(
'title'       => __( 'Log Template', 'mycred' ),
'type'        => 'text',
'description' => __( 'Log entry template for profit sharing.', 'mycred' ) . ' ' . $this->mycred->available_template_tags( array( 'general', 'post' ) ),
'default'     => 'Sale of %post_title%'
);
$fields['profit_sharing_refund_log'] = array(
'title'       => __( 'Refund Log Template', 'mycred' ),
'type'        => 'text',
'description' => __( 'Log entry template for refunds of profit shares.', 'mycred' ) . ' ' . $this->mycred->available_template_tags( array( 'general', 'post' ) ),
'default'     => 'Refund for order #%order_id%'
);

$this->form_fields = apply_filters( 'mycred_woo_fields', $fields, $this );
}
/**
* Generate Text Input HTML.
* @since 1.7.6
* @version 1.0
*/
public function generate_text_html( $key, $data ) {
$field_key = $this->get_field_key( $key );
$defaults  = array(
'title'             => '',
'disabled'          => false,
'class'             => '',
'css'               => '',
'placeholder'       => '',
'type'              => 'text',
'desc_tip'          => false,
'description'       => '',
'custom_attributes' => array(),
);
$data     = wp_parse_args( $data, $defaults );
$currency = get_woocommerce_currency();
ob_start();
?>
<tr valign="top">
<th scope="row" class="titledesc">
<label for="<?php echo esc_attr( $field_key ); ?>"><?php echo wp_kses_post( $data['title'] ); ?></label>
<?php echo $this->get_tooltip_html( $data ); ?>
</th>
<td class="forminp">
<?php if ( $data['type'] == 'currency' ) : $mycred = mycred( $currency ); ?>
<input type="hidden" name="<?php echo esc_attr( $field_key ); ?>" id="<?php echo esc_attr( $field_key ); ?>" value="<?php echo get_woocommerce_currency(); ?>" />
<p><?php echo $mycred->plural(); ?></p>
<?php else : ?>
<fieldset>
<legend class="screen-reader-text"><span><?php echo wp_kses_post( $data['title'] ); ?></span></legend>
<input class="input-text regular-input <?php echo esc_attr( $data['class'] ); ?>" type="<?php echo esc_attr( $data['type'] ); ?>" name="<?php echo esc_attr( $field_key ); ?>" id="<?php echo esc_attr( $field_key ); ?>" style="<?php echo esc_attr( $data['css'] ); ?>" value="<?php echo esc_attr( $this->get_option( $key ) ); ?>" placeholder="<?php echo esc_attr( $data['placeholder'] ); ?>" <?php disabled( $data['disabled'], true ); ?> <?php echo $this->get_custom_attribute_html( $data ); ?> />
<?php echo $this->get_description_html( $data ); ?>
</fieldset>
<?php endif; ?>
</td>
</tr>
<?php
return ob_get_clean();
}
/**
* Use Exchange
* Checks to see if exchange is needed.
* @since 0.1
* @version 1.0
*/
function use_exchange() {
$currency = get_woocommerce_currency();
if ( mycred_point_type_exists( $currency ) || $currency == 'MYC' ) return false;
return true;
}
/**
* Admin Panel Options
* @since 0.1
* @version 1.1
*/
public function admin_options() {
?>
<h3><?php printf( __( '%s Payment', 'mycred' ), mycred_label() ); ?></h3>
<table class="form-table">
<?php
// Generate the HTML For the settings form.
$this->generate_settings_html();
?>
</table>
<?php
}
/**
* Process Payment
* @since 0.1
* @version 1.4.3
*/
function process_payment( $order_id ) {
global $woocommerce;
// Make sure we are still logged in
if ( ! is_user_logged_in() ) {
wc_add_notice( $this->mycred->template_tags_general( __( 'You must be logged in to pay with %_plural%', 'mycred' ) ), 'error' );
return;
}
$user_id     = get_current_user_id();
// Make sure we have not been excluded
if ( $this->mycred->exclude_user( $user_id ) ) {
wc_add_notice( $this->mycred->template_tags_general( __( 'You can not use this gateway. Please try a different payment option.', 'mycred' ) ), 'error' );
return;
}
// Grab Order
$order       = wc_get_order( $order_id );
$order_total = ( version_compare( $woocommerce->version, '3.0', '>=' ) ) ? $order->get_total() : $order->order_total;
// Cost
$cost        = $order_total;
if ( $this->use_exchange() )
$cost = $this->mycred->number( ( $order_total / $this->exchange_rate ) );
$cost        = apply_filters( 'mycred_woo_order_cost', $cost, $order, false, $this );
// Check funds
if ( $this->mycred->get_users_balance( $user_id, $this->mycred_type ) < $cost ) {
$message = apply_filters( 'mycred_woo_error_insufficient_funds', __( 'Insufficient funds.', 'mycred' ) );
wc_add_notice( $message, 'error' );
return;
}
// Let others decline a store order
$decline     = apply_filters( 'mycred_decline_store_purchase', false, $order, $this );
if ( $decline !== false ) {
wc_add_notice( $decline, 'error' );
return;
}
// Charge
$this->mycred->add_creds(
'woocommerce_payment',
$user_id,
0 - $cost,
$this->log_template,
$order_id,
array( 'ref_type' => 'post' ),
$this->mycred_type
);
$order->payment_complete();
// Profit Sharing
if ( $this->profit_sharing_percent > 0 ) {
// Get Items
$items = $order->get_items();
// Loop though items
foreach ( $items as $item ) {
// Get Product
$product    = mycred_get_post( (int) $item['product_id'] );
// Continue if product has just been deleted or owner is buyer
if ( $product === NULL || $product->post_author == $user_id ) continue;
// Calculate Share
$percentage = apply_filters( 'mycred_woo_profit_share', $this->profit_sharing_percent, $order, $product, $this );
if ( $percentage == 0 ) continue;
$share      = ( $percentage / 100 ) * $item['line_total'];
// Payout
$this->mycred->add_creds(
'store_sale',
$product->post_author,
$this->mycred->number( $share ),
$this->profit_sharing_log,
$product->ID,
array( 'ref_type' => 'post' ),
$this->mycred_type
);
}
}
// Let others play
do_action( 'mycred_paid_for_woo', $order, $user_id, $this );
// Return the good news
return array(
'result'   => 'success',
'redirect' => $this->get_return_url( $order )
);
}
/**
* Process Refunds
* @since 1.5.4
* @version 1.0.3
*/
public function process_refund( $order_id, $amount = null, $reason = '' ) {
$order       = wc_get_order( $order_id );
$order_total = ( version_compare( $woocommerce->version, '3.0', '>=' ) ) ? $order->get_total() : $order->order_total;
$user_id     = ( version_compare( $woocommerce->version, '3.0', '>=' ) ) ? $order->get_user_id() : $order->user_id;
if ( $amount === NULL )
$amount = $order_total;
$refund      = $amount;
if ( $this->use_exchange() )
$refund = $this->mycred->number( ( $refund / $this->exchange_rate ) );
$this->mycred->add_creds(
'woocommerce_refund',
$user_id,
0 - $refund,
$this->log_template_refund,
$order_id,
array( 'ref_type' => 'post', 'reason' => $reason ),
$this->mycred_type
);
$order->add_order_note( sprintf( _x( 'Refunded %s', '%s = Point amount formatted', 'mycred' ), $this->mycred->format_creds( $refund ) ) );
// Profit Sharing
if ( $this->profit_sharing_percent > 0 ) {
// Get Items
$items = $order->get_items();
// Loop though items
foreach ( $items as $item ) {
// Get Product
$product = mycred_get_post( (int) $item['product_id'] );
// Continue if product has just been deleted
if ( $product === NULL ) continue;
// Calculate Share
$percentage = apply_filters( 'mycred_woo_profit_share_refund', $this->profit_sharing_percent, $order, $product, $this );
if ( $percentage == 0 ) continue;
$share      = ( $percentage / 100 ) * $item['line_total'];
// Payout
$this->mycred->add_creds(
'store_sale_refund',
$product->post_author,
0 - $share,
$this->profit_sharing_refund_log,
$product->ID,
array( 'ref_type' => 'post', 'order_id' => $order_id ),
$this->mycred_type
);
}
}
// Let others play
do_action( 'mycred_refunded_for_woo', $order, $amount, $reason, $this );
return true;
}
/**
* Thank You Page
* @since 0.1
* @version 1.0
*/
function thankyou_page() {
echo apply_filters( 'mycred_woo_thank_you_message', '<p>' . __( 'Your account has successfully been charged.', 'mycred' ) . '</p>' );
}
}
}
endif;
add_action( 'after_setup_theme', 'mycred_init_woo_gateway' );
/**
* Register Gateway
* @since 0.1
* @version 1.0
*/
if ( ! function_exists( 'mycred_register_woo_gateway' ) ) :
function mycred_register_woo_gateway( $methods ) {
$methods[] = 'WC_Gateway_myCRED';
return $methods;
}
endif;
add_filter( 'woocommerce_payment_gateways', 'mycred_register_woo_gateway' );
/**
* Available Gateways
* "Removes" this gateway as a payment option if:
* - User is not logged in
* - User is excluded
* - Users balance is too low
*
* @since 0.1
* @version 1.3
*/
if ( ! function_exists( 'mycred_woo_available_gateways' ) ) :
function mycred_woo_available_gateways( $gateways ) {
if ( ! isset( $gateways['mycred'] ) ) return $gateways;
// Easy override
if ( defined( 'SHOW_MYCRED_IN_WOOCOMMERCE' ) && SHOW_MYCRED_IN_WOOCOMMERCE ) return $gateways;
// Check if we are logged in
if ( ! is_user_logged_in() ) {
unset( $gateways['mycred'] );
return $gateways;
}
$point_type = $gateways['mycred']->get_option( 'point_type' );
if ( ! mycred_point_type_exists( $point_type ) )
$point_type = MYCRED_DEFAULT_TYPE_KEY;
// Get myCRED
$mycred     = mycred( $point_type );
$user_id    = get_current_user_id();
// Check if we are excluded from myCRED usage
if ( $mycred->exclude_user( $user_id ) ) {
unset( $gateways['mycred'] );
return $gateways;
}
global $woocommerce;
// Calculate cost in CREDs
$currency   = get_woocommerce_currency();
$cost       = $woocommerce->cart->total;
if ( ! mycred_point_type_exists( $currency ) && $currency != 'MYC' )
$cost = $mycred->number( ( $woocommerce->cart->total / $gateways['mycred']->get_option( 'exchange_rate' ) ) );
$cost       = apply_filters( 'mycred_woo_order_cost', $cost, $woocommerce->cart, true, $mycred );
// Check if we have enough points
if ( $mycred->get_users_balance( $user_id, $point_type ) < $cost ) {
$gateways['mycred']->enabled = 'no';
}
return $gateways;
}
endif;
add_filter( 'woocommerce_available_payment_gateways', 'mycred_woo_available_gateways' );
/**
* Add Currency
* Inserts all registered point types as a currency in WooCommerce.
* @since 0.1
* @version 1.2
*/
if ( ! function_exists( 'mycred_woo_add_currency' ) ) :
function mycred_woo_add_currency( $currencies ) {
$point_types = mycred_get_types();
if ( ! empty( $point_types ) ) {
foreach ( $point_types as $type_id => $label ) {
if ( $type_id == MYCRED_DEFAULT_TYPE_KEY )
$type_id = 'MYC';
$currencies[ $type_id ] = $label;
}
}
return $currencies;
}
endif;
add_filter( 'woocommerce_currencies', 'mycred_woo_add_currency' );
/**
* Currency Symbol
* Appends the myCRED prefix or suffix to the amount.
* @since 0.1
* @version 1.2.1
*/
if ( ! function_exists( 'mycred_woo_currency_symbol' ) ) :
function mycred_woo_currency_symbol( $currency_symbols ) {
$point_types = mycred_get_types();
if ( ! empty( $point_types ) ) {
foreach ( $point_types as $type_id => $label ) {
$mycred = mycred( $type_id );
$symbol = '';
if ( ! empty( $mycred->after ) )
$symbol = $mycred->after;
elseif ( ! empty( $mycred->before ) )
$symbol = $mycred->before;
if ( $type_id == MYCRED_DEFAULT_TYPE_KEY )
$type_id = 'MYC';
$currency_symbols[ $type_id ] = $symbol;
}
}
return $currency_symbols;
}
endif;
add_filter( 'woocommerce_currency_symbols', 'mycred_woo_currency_symbol' );
/**
* Log Entry: Payment
* @since 0.1
* @version 1.4
*/
if ( ! function_exists( 'mycred_woo_log_entry_payment' ) ) :
function mycred_woo_log_entry_payment( $content, $log_entry ) {
$order_id   = absint( $log_entry->ref_id );
$order_link = '#' . $order_id;
if ( function_exists( 'wc_get_order' ) ) {
$order = wc_get_order( $order_id );
if ( $order !== false && is_object( $order ) )
$order_link = '<a href="' . esc_url( $order->get_view_order_url() ) . '">#' . $order_id . '</a>';
}
$content   = str_replace( '%order_id%',   $order_id, $content );
$content   = str_replace( '%order_link%', $order_link, $content );
return $content;
}
endif;
add_filter( 'mycred_parse_log_entry_woocommerce_payment', 'mycred_woo_log_entry_payment', 90, 2 );
/**
* Log Entry: Refund
* @since 1.5.4
* @version 1.0
*/
if ( ! function_exists( 'mycred_woo_log_entry_refunds' ) ) :
function mycred_woo_log_entry_refunds( $content, $log_entry ) {
$content = mycred_woo_log_entry_payment( $content, $log_entry );
$data    = maybe_unserialize( $log_entry->data );
$reason  = '-';
if ( isset( $data['reason'] ) && $data['reason'] != '' )
$reason = $data['reason'];
$content = str_replace( '%reason%', $reason, $content );
return $content;
}
endif;
add_filter( 'mycred_parse_log_entry_woocommerce_refund', 'mycred_woo_log_entry_refunds', 90, 2 );
/**
* Log Entry: Profit Share Refund
* @since 1.5.4
* @version 1.0
*/
if ( ! function_exists( 'mycred_woo_log_entry_profit_refund' ) ) :
function mycred_woo_log_entry_profit_refund( $content, $log_entry ) {
$data     = maybe_unserialize( $log_entry->data );
$order_id = '';
if ( isset( $data['order_id'] ) && $data['order_id'] != '' )
$order_id = '#' . $data['order_id'];
$content  = str_replace( '%order_id%', $order_id, $content );
$reason   = '-';
if ( isset( $data['reason'] ) && $data['reason'] != '' )
$reason = $data['reason'];
$content  = str_replace( '%reason%', $reason, $content );
return $content;
}
endif;
add_filter( 'mycred_parse_log_entry_store_sale_refund', 'mycred_woo_log_entry_profit_refund', 90, 2 );
/**
* Parse Email Notice
* @since 1.2.2
* @version 1.0.2
*/
if ( ! function_exists( 'mycred_woo_parse_email' ) ) :
function mycred_woo_parse_email( $email ) {
if ( $email['request']['ref'] == 'woocommerce_payment' && function_exists( 'woocommerce_get_page_id' ) ) {
if ( function_exists( 'wc_get_order' ) )
$order = wc_get_order( (int) $email['request']['ref_id'] );
else
$order = new WC_Order( (int) $email['request']['ref_id'] );
if ( isset( $order->id ) ) {
$url     = esc_url( add_query_arg( 'order', $order->id, mycred_get_permalink( woocommerce_get_page_id( 'view_order' ) ) ) );
$content = str_replace( '%order_id%', $order->id, $email['request']['entry'] );
$email['request']['entry'] = str_replace( '%order_link%', '<a href="' . esc_url( $url ) . '">#' . $order->id . '</a>', $content );
}
}
return $email;
}
endif;
add_filter( 'mycred_email_before_send', 'mycred_woo_parse_email', 10 );
/**
* After Order Total
* Potentially insert the cart cost in points and the users current balance.
* @since 0.1
* @version 1.3
*/
if ( ! function_exists( 'mycred_woo_after_order_total' ) ) :
function mycred_woo_after_order_total() {
if ( ! is_user_logged_in() ) return;
// Only available for logged in non-excluded users
global $woocommerce;
$available_gateways = $woocommerce->payment_gateways->get_available_payment_gateways();
if ( ! isset( $available_gateways['mycred'] ) ) return;

$point_type         = $available_gateways['mycred']->get_option( 'point_type' );
if ( $point_type === NULL )
$point_type = MYCRED_DEFAULT_TYPE_KEY;
$mycred             = mycred( $point_type );
$user_id            = get_current_user_id();
// Nothing to do if we are excluded
if ( $mycred->exclude_user( $user_id ) ) return;
$show_total         = $available_gateways['mycred']->get_option( 'show_total' );
$balance            = $mycred->get_users_balance( $user_id, $point_type );
$balance_label      = $available_gateways['mycred']->get_option( 'balance_format' );
// If we should show the total in points
if ( ( $show_total == 'both' || $show_total == 'all') 
|| ( $show_total == 'cart' && is_cart() ) 
|| ( $show_total == 'checkout' && is_checkout() ) 
) {
// Make sure myCRED is not the currency used
$currency = get_woocommerce_currency();
if ( ! mycred_point_type_exists( $currency ) && $currency != 'MYC' ) {
// Apply Exchange Rate
$cost    = $mycred->number( ( $woocommerce->cart->total / $available_gateways['mycred']->get_option( 'exchange_rate' ) ) );
$cost    = apply_filters( 'mycred_woo_order_cost', $cost, $woocommerce->cart, true, $mycred );

?>
<tr class="total">
<th><strong><?php echo $mycred->template_tags_general( $available_gateways['mycred']->get_option( 'total_label' ) ); ?></strong></th>
<td>
<div class="current-balance order-total-in-points">
<strong class="<?php if ( $balance < $cost ) echo 'mycred-low-funds'; else echo 'mycred-funds'; ?>"<?php if ( $balance < $cost ) echo ' style="color:red;"'; ?>><?php echo $mycred->format_creds( $cost ); ?></strong> 
</div>
</td>
</tr>
<?php
}
}
// If we should show the users balance
if ( ! empty( $balance_label ) ) {
?>
<tr class="total">
<th><strong><?php echo $mycred->template_tags_general( $balance_label ); ?></strong></th>
<td>
<div class="current-balance">
<?php echo $mycred->format_creds( $balance ); ?>
</div>
</td>
</tr>
<?php
}
}
endif;
add_action( 'woocommerce_review_order_after_order_total', 'mycred_woo_after_order_total' );
add_action( 'woocommerce_cart_totals_after_order_total',  'mycred_woo_after_order_total' );

如果你还没有弄清楚。。。

  1. 转到POINTS>附加组件
  2. 激活GATEWAY附加模块
  3. Go WooCommerce>付款
  4. 滑动紫色条以启用myCRED–使用myCRED付款
  5. 点击"SETUP"右边的SETUP按钮;让用户使用积分支付">

配置您的积分支付设置,这样就可以了。

最新更新