Edit File by line
/home/zeestwma/ceyloniy.../wp-conte.../plugins/wpforms-.../src/Integrat.../Square
File: Frontend.php
<?php
[0] Fix | Delete
[1] Fix | Delete
namespace WPForms\Integrations\Square;
[2] Fix | Delete
[3] Fix | Delete
/**
[4] Fix | Delete
* Square form frontend related functionality.
[5] Fix | Delete
*
[6] Fix | Delete
* @since 1.9.5
[7] Fix | Delete
*/
[8] Fix | Delete
class Frontend {
[9] Fix | Delete
[10] Fix | Delete
/**
[11] Fix | Delete
* Initialize.
[12] Fix | Delete
*
[13] Fix | Delete
* @since 1.9.5
[14] Fix | Delete
*/
[15] Fix | Delete
public function init() {
[16] Fix | Delete
[17] Fix | Delete
$this->hooks();
[18] Fix | Delete
[19] Fix | Delete
return $this;
[20] Fix | Delete
}
[21] Fix | Delete
[22] Fix | Delete
/**
[23] Fix | Delete
* Frontend hooks.
[24] Fix | Delete
*
[25] Fix | Delete
* @since 1.9.5
[26] Fix | Delete
*/
[27] Fix | Delete
private function hooks() {
[28] Fix | Delete
[29] Fix | Delete
add_action( 'wpforms_frontend_container_class', [ $this, 'form_container_class' ], 10, 2 );
[30] Fix | Delete
add_action( 'wpforms_wp_footer', [ $this, 'enqueues' ] );
[31] Fix | Delete
}
[32] Fix | Delete
[33] Fix | Delete
/**
[34] Fix | Delete
* Add class to form container if Square is enabled.
[35] Fix | Delete
*
[36] Fix | Delete
* @since 1.9.5
[37] Fix | Delete
*
[38] Fix | Delete
* @param array $classes Array of form classes.
[39] Fix | Delete
* @param array $form_data Form data of current form.
[40] Fix | Delete
*
[41] Fix | Delete
* @return array
[42] Fix | Delete
*/
[43] Fix | Delete
public function form_container_class( $classes, array $form_data ): array {
[44] Fix | Delete
[45] Fix | Delete
$classes = (array) $classes;
[46] Fix | Delete
[47] Fix | Delete
if ( ! Connection::get() ) {
[48] Fix | Delete
return $classes;
[49] Fix | Delete
}
[50] Fix | Delete
[51] Fix | Delete
if ( ! Helpers::has_square_field( $form_data ) || ! Helpers::is_payments_enabled( $form_data ) ) {
[52] Fix | Delete
return $classes;
[53] Fix | Delete
}
[54] Fix | Delete
[55] Fix | Delete
if ( Helpers::is_square_recurring_enabled( $form_data ) ) {
[56] Fix | Delete
$classes[] = 'wpforms-square-is-recurring';
[57] Fix | Delete
}
[58] Fix | Delete
[59] Fix | Delete
$classes[] = 'wpforms-square';
[60] Fix | Delete
[61] Fix | Delete
return $classes;
[62] Fix | Delete
}
[63] Fix | Delete
[64] Fix | Delete
/**
[65] Fix | Delete
* Enqueue assets in the frontend if Square is in use on the page.
[66] Fix | Delete
*
[67] Fix | Delete
* @since 1.9.5
[68] Fix | Delete
*
[69] Fix | Delete
* @param array $forms Form data of forms on current page.
[70] Fix | Delete
*/
[71] Fix | Delete
public function enqueues( $forms ) {
[72] Fix | Delete
[73] Fix | Delete
$connection = Connection::get();
[74] Fix | Delete
[75] Fix | Delete
if ( ! $connection || ! $connection->is_usable() ) {
[76] Fix | Delete
return;
[77] Fix | Delete
}
[78] Fix | Delete
[79] Fix | Delete
$forms = (array) $forms;
[80] Fix | Delete
[81] Fix | Delete
if ( ! Helpers::has_square_field( $forms, true ) ) {
[82] Fix | Delete
return;
[83] Fix | Delete
}
[84] Fix | Delete
[85] Fix | Delete
if ( ! Helpers::has_square_enabled( $forms ) ) {
[86] Fix | Delete
return;
[87] Fix | Delete
}
[88] Fix | Delete
[89] Fix | Delete
$min = wpforms_get_min_suffix();
[90] Fix | Delete
[91] Fix | Delete
// Include styles if the "Include Form Styling > No Styles" is not set.
[92] Fix | Delete
if ( wpforms_setting( 'disable-css', '1' ) !== '3' ) {
[93] Fix | Delete
wp_enqueue_style(
[94] Fix | Delete
'wpforms-square',
[95] Fix | Delete
WPFORMS_PLUGIN_URL . "assets/css/integrations/square/wpforms-square{$min}.css",
[96] Fix | Delete
[],
[97] Fix | Delete
WPFORMS_VERSION
[98] Fix | Delete
);
[99] Fix | Delete
}
[100] Fix | Delete
[101] Fix | Delete
// phpcs:disable WordPress.WP.EnqueuedResourceParameters.MissingVersion
[102] Fix | Delete
wp_enqueue_script(
[103] Fix | Delete
'square-web-payments-sdk',
[104] Fix | Delete
Helpers::is_sandbox_mode() ? 'https://sandbox.web.squarecdn.com/v1/square.js' : 'https://web.squarecdn.com/v1/square.js',
[105] Fix | Delete
[],
[106] Fix | Delete
null,
[107] Fix | Delete
true
[108] Fix | Delete
);
[109] Fix | Delete
// phpcs:enable WordPress.WP.EnqueuedResourceParameters.MissingVersion
[110] Fix | Delete
[111] Fix | Delete
wp_enqueue_script(
[112] Fix | Delete
'wpforms-square',
[113] Fix | Delete
WPFORMS_PLUGIN_URL . "assets/js/integrations/square/wpforms-square{$min}.js",
[114] Fix | Delete
[ 'jquery', 'square-web-payments-sdk' ],
[115] Fix | Delete
WPFORMS_VERSION,
[116] Fix | Delete
true
[117] Fix | Delete
);
[118] Fix | Delete
[119] Fix | Delete
/**
[120] Fix | Delete
* This filter allows to set a card configuration and styles.
[121] Fix | Delete
*
[122] Fix | Delete
* @since 1.9.5
[123] Fix | Delete
*
[124] Fix | Delete
* @link https://developer.squareup.com/reference/sdks/web/payments/card-payments#Card.configure.options
[125] Fix | Delete
*
[126] Fix | Delete
* @param array $card_config Configuration and style options.
[127] Fix | Delete
* @param array $forms Form data of forms on current page.
[128] Fix | Delete
*/
[129] Fix | Delete
$card_config = (array) apply_filters( 'wpforms_square_frontend_enqueues_card_config', [], $forms ); // phpcs:ignore WPForms.PHP.ValidateHooks.InvalidHookName
[130] Fix | Delete
[131] Fix | Delete
wp_localize_script(
[132] Fix | Delete
'wpforms-square',
[133] Fix | Delete
'wpforms_square',
[134] Fix | Delete
[
[135] Fix | Delete
'client_id' => $connection->get_client_id(),
[136] Fix | Delete
'location_id' => Helpers::get_location_id(),
[137] Fix | Delete
'card_config' => $card_config,
[138] Fix | Delete
'billing_details' => $this->get_mapped_contact_fields( $forms ),
[139] Fix | Delete
'i18n' => [
[140] Fix | Delete
'missing_sdk_script' => esc_html__( 'Square.js failed to load properly.', 'wpforms-lite' ),
[141] Fix | Delete
'general_error' => esc_html__( 'An unexpected Square SDK error has occurred.', 'wpforms-lite' ),
[142] Fix | Delete
'missing_creds' => esc_html__( 'Client ID and/or Location ID is incorrect.', 'wpforms-lite' ),
[143] Fix | Delete
'card_init_error' => esc_html__( 'Initializing Card failed.', 'wpforms-lite' ),
[144] Fix | Delete
'token_process_fail' => esc_html__( 'Tokenization of the payment card failed.', 'wpforms-lite' ),
[145] Fix | Delete
'token_status_error' => esc_html__( 'Tokenization failed with status:', 'wpforms-lite' ),
[146] Fix | Delete
'buyer_verify_error' => esc_html__( 'The verification was not successful. An issue occurred while verifying the buyer.', 'wpforms-lite' ),
[147] Fix | Delete
'empty_details' => esc_html__( 'Please fill out payment details to continue.', 'wpforms-lite' ),
[148] Fix | Delete
],
[149] Fix | Delete
]
[150] Fix | Delete
);
[151] Fix | Delete
}
[152] Fix | Delete
[153] Fix | Delete
/**
[154] Fix | Delete
* Map provided billing details with forms on the page.
[155] Fix | Delete
*
[156] Fix | Delete
* @since 1.9.5
[157] Fix | Delete
*
[158] Fix | Delete
* @param array $forms Form data of forms on current page.
[159] Fix | Delete
*
[160] Fix | Delete
* @return array
[161] Fix | Delete
*/
[162] Fix | Delete
public function get_mapped_contact_fields( array $forms ): array {
[163] Fix | Delete
[164] Fix | Delete
return array_map(
[165] Fix | Delete
function ( $form_data ) {
[166] Fix | Delete
return [
[167] Fix | Delete
'buyer_email' => $form_data['payments']['square']['buyer_email'] ?? '',
[168] Fix | Delete
'billing_address' => $form_data['payments']['square']['billing_address'] ?? '',
[169] Fix | Delete
'billing_name' => $form_data['payments']['square']['billing_name'] ?? '',
[170] Fix | Delete
];
[171] Fix | Delete
},
[172] Fix | Delete
$forms
[173] Fix | Delete
);
[174] Fix | Delete
}
[175] Fix | Delete
}
[176] Fix | Delete
[177] Fix | Delete
It is recommended that you Edit text format, this type of Fix handles quite a lot in one request
Function