芝麻web文件管理V1.00
编辑当前文件:/home/royashxg/www/wp-content/plugins/elementor-pro/modules/payments/classes/payment-button.php
_x( 'AUD', 'Currency', 'elementor-pro' ), 'CAD' => _x( 'CAD', 'Currency', 'elementor-pro' ), 'CZK' => _x( 'CZK', 'Currency', 'elementor-pro' ), 'DKK' => _x( 'DKK', 'Currency', 'elementor-pro' ), 'EUR' => _x( 'EUR', 'Currency', 'elementor-pro' ), 'HKD' => _x( 'HKD', 'Currency', 'elementor-pro' ), 'HUF' => _x( 'HUF', 'Currency', 'elementor-pro' ), 'ILS' => _x( 'ILS', 'Currency', 'elementor-pro' ), 'JPY' => _x( 'JPY', 'Currency', 'elementor-pro' ), 'MXN' => _x( 'MXN', 'Currency', 'elementor-pro' ), 'NOK' => _x( 'NOK', 'Currency', 'elementor-pro' ), 'NZD' => _x( 'NZD', 'Currency', 'elementor-pro' ), 'PHP' => _x( 'PHP', 'Currency', 'elementor-pro' ), 'PLN' => _x( 'PLN', 'Currency', 'elementor-pro' ), 'GBP' => _x( 'GBP', 'Currency', 'elementor-pro' ), 'RUB' => _x( 'RUB', 'Currency', 'elementor-pro' ), 'SGD' => _x( 'SGD', 'Currency', 'elementor-pro' ), 'SEK' => _x( 'SEK', 'Currency', 'elementor-pro' ), 'CHF' => _x( 'CHF', 'Currency', 'elementor-pro' ), 'TWD' => _x( 'TWD', 'Currency', 'elementor-pro' ), 'THB' => _x( 'THB', 'Currency', 'elementor-pro' ), 'TRY' => _x( 'TRY', 'Currency', 'elementor-pro' ), 'USD' => _x( 'USD', 'Currency', 'elementor-pro' ), ]; } // Return an array of default error messages. protected function get_default_error_messages() { return [ self::ERROR_MESSAGE_GLOBAL => esc_html__( 'An error occurred.', 'elementor-pro' ), self::ERROR_MESSAGE_PAYMENT_METHOD => esc_html__( 'No payment method connected. Contact seller.', 'elementor-pro' ), ]; } // Get message text by id (`error_message_$id`). protected function get_custom_message( $id ) { $message = $this->get_settings_for_display( 'error_message_' . $id ); // Return the user-defined message. if ( ! empty( $message ) ) { return $message; } // Return the default message. $error_messages = $this->get_default_error_messages(); return ( ! empty( $error_messages[ $id ] ) ) ? $error_messages[ $id ] : esc_html__( 'Unknown error.', 'elementor-pro' ); } // Product details section. protected function register_product_controls() { $this->add_control( 'type', [ 'label' => esc_html__( 'Transaction Type', 'elementor-pro' ), 'type' => Controls_Manager::SELECT, 'default' => 'checkout', 'options' => [ self::PAYMENT_TYPE_CHECKOUT => esc_html__( 'Checkout', 'elementor-pro' ), self::PAYMENT_TYPE_DONATION => esc_html__( 'Donation', 'elementor-pro' ), self::PAYMENT_TYPE_SUBSCRIPTION => esc_html__( 'Subscription', 'elementor-pro' ), ], 'separator' => 'before', ] ); $this->after_product_type(); $this->add_control( 'product_name', [ 'label' => esc_html__( 'Item Name', 'elementor-pro' ), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'label_block' => true, ] ); $this->add_control( 'product_sku', [ 'label' => esc_html__( 'SKU', 'elementor-pro' ), 'type' => Controls_Manager::TEXT, 'dynamic' => [ 'active' => true, ], 'ai' => [ 'active' => false, ], ] ); $this->add_control( 'product_price', [ 'label' => esc_html__( 'Price', 'elementor-pro' ), 'type' => Controls_Manager::NUMBER, 'default' => '0.00', 'dynamic' => [ 'active' => true, ], 'condition' => [ 'type!' => self::PAYMENT_TYPE_DONATION, ], ] ); $this->add_control( 'donation_type', [ 'label' => esc_html__( 'Donation Amount', 'elementor-pro' ), 'type' => Controls_Manager::SELECT, 'default' => self::DONATION_TYPE_FIXED, 'options' => [ self::DONATION_TYPE_ANY => esc_html__( 'Any Amount', 'elementor-pro' ), self::DONATION_TYPE_FIXED => esc_html__( 'Fixed', 'elementor-pro' ), ], 'condition' => [ 'type' => self::PAYMENT_TYPE_DONATION, ], ] ); $this->add_control( 'donation_amount', [ 'label' => esc_html__( 'Amount', 'elementor-pro' ), 'type' => Controls_Manager::NUMBER, 'default' => '1', 'dynamic' => [ 'active' => true, ], 'condition' => [ 'type' => self::PAYMENT_TYPE_DONATION, 'donation_type' => self::DONATION_TYPE_FIXED, ], ] ); $this->add_control( 'currency', [ 'label' => esc_html__( 'Currency', 'elementor-pro' ), 'type' => Controls_Manager::SELECT, 'default' => 'USD', 'options' => $this->get_currencies(), ] ); $this->add_control( 'billing_cycle', [ 'label' => esc_html__( 'Billing Cycle', 'elementor-pro' ), 'type' => Controls_Manager::SELECT, 'default' => self::BILLING_CYCLE_MONTHS, 'options' => [ self::BILLING_CYCLE_DAYS => esc_html__( 'Daily', 'elementor-pro' ), self::BILLING_CYCLE_WEEKS => esc_html__( 'Weekly', 'elementor-pro' ), self::BILLING_CYCLE_MONTHS => esc_html__( 'Monthly', 'elementor-pro' ), self::BILLING_CYCLE_YEARS => esc_html__( 'Yearly', 'elementor-pro' ), ], 'condition' => [ 'type' => self::PAYMENT_TYPE_SUBSCRIPTION, ], ] ); $this->add_control( 'auto_renewal', [ 'type' => Controls_Manager::SWITCHER, 'label' => esc_html__( 'Auto Renewal', 'elementor-pro' ), 'default' => 'yes', 'label_off' => esc_html__( 'Off', 'elementor-pro' ), 'label_on' => esc_html__( 'On', 'elementor-pro' ), 'condition' => [ 'type' => self::PAYMENT_TYPE_SUBSCRIPTION, ], ] ); $this->add_control( 'quantity', [ 'label' => esc_html__( 'Quantity', 'elementor-pro' ), 'type' => Controls_Manager::NUMBER, 'default' => 1, 'condition' => [ 'type' => self::PAYMENT_TYPE_CHECKOUT, ], ] ); $this->add_control( 'shipping_price', [ 'label' => esc_html__( 'Shipping Price', 'elementor-pro' ), 'type' => Controls_Manager::NUMBER, 'default' => 0, 'dynamic' => [ 'active' => true, ], 'condition' => [ 'type' => self::PAYMENT_TYPE_CHECKOUT, ], ] ); $this->add_control( 'tax_type', [ 'label' => esc_html__( 'Tax', 'elementor-pro' ), 'type' => Controls_Manager::SELECT, 'default' => '', 'options' => [ '' => esc_html__( 'None', 'elementor-pro' ), 'percentage' => esc_html__( 'Percentage', 'elementor-pro' ), ], 'condition' => [ 'type' => self::PAYMENT_TYPE_CHECKOUT, ], ] ); $this->add_control( 'tax_rate', [ 'label' => esc_html__( 'Tax Percentage', 'elementor-pro' ), 'type' => Controls_Manager::NUMBER, 'default' => '0', 'dynamic' => [ 'active' => true, ], 'condition' => [ 'type' => self::PAYMENT_TYPE_CHECKOUT, 'tax_type' => 'percentage', ], ] ); } // Submission settings section. protected function register_settings_section() { $this->start_controls_section( 'section_settings', [ 'label' => esc_html__( 'Additional Options', 'elementor-pro' ), ] ); $this->add_control( 'redirect_after_success', [ 'label' => esc_html__( 'Redirect After Success', 'elementor-pro' ), 'type' => Controls_Manager::URL, 'options' => false, 'placeholder' => esc_html__( 'Choose a page or add a URL', 'elementor-pro' ), 'dynamic' => [ 'active' => true, ], 'label_block' => true, 'render_type' => 'none', ] ); $this->add_control( 'sandbox_mode', [ 'type' => Controls_Manager::SWITCHER, 'label' => esc_html__( 'Sandbox', 'elementor-pro' ), 'default' => 'no', 'label_off' => esc_html__( 'Off', 'elementor-pro' ), 'label_on' => esc_html__( 'On', 'elementor-pro' ), ] ); $this->register_sandbox_controls(); $this->add_control( 'open_in_new_window', [ 'type' => Controls_Manager::SWITCHER, 'label' => sprintf( /* translators: %s: Merchant name. */ esc_html__( 'Open %s In New Tab', 'elementor-pro' ), $this->get_merchant_name() ), 'default' => 'yes', 'label_off' => esc_html__( 'No', 'elementor-pro' ), 'label_on' => esc_html__( 'Yes', 'elementor-pro' ), ] ); $this->add_control( 'custom_messages', [ 'label' => esc_html__( 'Custom Messages', 'elementor-pro' ), 'type' => Controls_Manager::SWITCHER, 'default' => '', ] ); $this->after_custom_messages_toggle(); $error_messages = $this->get_default_error_messages(); $this->add_control( 'error_message_' . self::ERROR_MESSAGE_GLOBAL, [ 'label' => esc_html__( 'Error Message', 'elementor-pro' ), 'type' => Controls_Manager::TEXT, 'default' => $error_messages[ self::ERROR_MESSAGE_GLOBAL ], 'placeholder' => $error_messages[ self::ERROR_MESSAGE_GLOBAL ], 'label_block' => true, 'condition' => [ 'custom_messages!' => '', ], 'dynamic' => [ 'active' => true, ], ] ); $this->add_control( 'error_message_' . self::ERROR_MESSAGE_PAYMENT_METHOD, [ 'label' => sprintf( /* translators: %s: Merchant name. */ esc_html__( '%s Not Connected', 'elementor-pro' ), $this->get_merchant_name() ), 'type' => Controls_Manager::TEXT, 'default' => $error_messages[ self::ERROR_MESSAGE_PAYMENT_METHOD ], 'placeholder' => $error_messages[ self::ERROR_MESSAGE_PAYMENT_METHOD ], 'label_block' => true, 'condition' => [ 'custom_messages!' => '', ], 'dynamic' => [ 'active' => true, ], ] ); $this->update_error_massages(); $this->end_controls_section(); } // Customize the default button controls. protected function register_button_controls() { parent::register_controls(); $this->remove_control( 'button_type' ); $this->remove_control( 'link' ); $this->remove_control( 'size' ); $this->update_control( 'text', [ 'default' => 'Buy Now', ] ); $this->update_control( 'button_text_color', [ 'default' => '#FFF', ] ); $this->update_control( 'icon_align', [ 'options' => [ 'left' => esc_html__( 'Before Text', 'elementor-pro' ), 'right' => esc_html__( 'After Text', 'elementor-pro' ), ], ] ); } // Add typography settings for custom messages. protected function register_messages_style_section() { $this->start_controls_section( 'section_messages_style', [ 'label' => esc_html__( 'Messages', 'elementor-pro' ), 'tab' => Controls_Manager::TAB_STYLE, ] ); $this->add_group_control( Group_Control_Typography::get_type(), [ 'name' => 'message_typography', 'global' => [ 'default' => Global_Typography::TYPOGRAPHY_TEXT, ], 'selector' => '{{WRAPPER}} .elementor-message', ] ); $this->add_control( 'message_color_' . self::ERROR_MESSAGE_GLOBAL, [ 'label' => esc_html__( 'Error Message Color', 'elementor-pro' ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .elementor-message.elementor-error-message-' . self::ERROR_MESSAGE_GLOBAL => 'color: {{COLOR}};', ], ] ); $this->add_control( 'message_color_' . self::ERROR_MESSAGE_PAYMENT_METHOD, [ 'label' => sprintf( /* translators: %s: Merchant name. */ esc_html__( '%s Not Connected Color', 'elementor-pro' ), $this->get_merchant_name() ), 'type' => Controls_Manager::COLOR, 'selectors' => [ '{{WRAPPER}} .elementor-message.elementor-error-message-' . self::ERROR_MESSAGE_PAYMENT_METHOD => 'color: {{COLOR}};', ], ] ); $this->end_controls_section(); } // Register widget controls. protected function register_controls() { $this->register_account_section(); $this->register_button_controls(); $this->register_settings_section(); $this->register_messages_style_section(); } // Render the checkout button. protected function render_button( Widget_Base $instance = null, $tag = 'a' ) { $this->add_render_attribute( 'button', 'class', 'elementor-payment-button' ); ?> < print_render_attribute_string( 'button' ); ?>> render_text(); ?> > get_settings_for_display(); $this->add_render_attribute( 'wrapper', 'class', 'elementor-button-wrapper' ); $this->add_render_attribute( 'button', 'class', 'elementor-button' ); $this->add_render_attribute( 'button', 'role', 'button' ); if ( ! empty( $settings['button_css_id'] ) ) { $this->add_render_attribute( 'button', 'id', $settings['button_css_id'] ); } if ( ! empty( $settings['size'] ) ) { $this->add_render_attribute( 'button', 'class', 'elementor-size-' . $settings['size'] ); } if ( $settings['hover_animation'] ) { $this->add_render_attribute( 'button', 'class', 'elementor-animation-' . $settings['hover_animation'] ); } ?>
print_render_attribute_string( 'wrapper' ); ?>> render_button(); ?>
<# view.addRenderAttribute( 'text', 'class', 'elementor-button-text' ); view.addInlineEditingAttributes( 'text', 'none' ); var iconHTML = elementor.helpers.renderIcon( view, settings.selected_icon, { 'aria-hidden': true }, 'i' , 'object' ), migrated = elementor.helpers.isIconMigrated( settings, 'selected_icon' ); #>
<# if ( settings.icon || settings.selected_icon ) { #>
<# if ( ( migrated || ! settings.icon ) && iconHTML.rendered ) { #> {{{ iconHTML.value }}} <# } else { #>
<# } #>
<# } #>
{{{ settings.text }}}
get_settings_for_display( 'sandbox_mode' ); } }