Let me start by saying that the site where I encountered the issue is live, and both the client and some customers have pointed out certain critical points in the checkout process. Upon further analysis of the purchase flow, I realized that there is indeed a potential UI issue. Using the SK Checkout widget, it seems that the Billing and Shipping fields have been switched.
Let me explain: I’m using the Multi-Step version, and the Shipping fields are displayed before the Billing fields. My hypothesis is further supported by the fact that in the breadcrumbs guiding the multi-step process, the third step labeled “shipping” actually requests the billing address. If I select “same as shipping address,” certain fields, such as province and phone number, are not carried over, resulting in input errors that occur in hidden fields.
I believe the fix is quite simple, as it only requires swapping the hooks of the fields. Would it be possible to reverse these fields to fix the issue?
Thank you for your amazing work. By far, the most versatile checkout management I’ve ever tested!
]]>When I change any fields with an Id that is 3 digits or more, it does not trigger the conditional fields, and the console has an error coming from “wp_repeater.js” line 42 saying “ids.shift() is not a function”
function yeeaddons_gf_get_input_id_by_html_id(htmlId) {
var ids = yeeaddons_gf_get_ids_by_html_id(htmlId);
var id = ids[ids.length - 1];
if (ids.length == 3) {
ids.shift();
id = ids.join(".");
} else {
return ids;
}
return id;
}
Looking at the code, it looks like its expecting ids to be an array, but atleast with my testing, ids is a string. So should the if statement not read like:
if (Array.IsArray(ids) && ids.length === 3) {
Just to clarify as well, these fields that are breaking are not even inside a repeater, and other fields with lower Ids are still working fine with conditionals.
Please let me know what you think
]]>https://plugins.trac.www.ads-software.com/browser/es-woocommerce-activecampaign/trunk/class-es-wc-integration-activecampaign.php around line 317 and also line 325, you are using wc_print_r()
without true
set for the $return
argument. This causes an issue where in certain cases when placing an order, the JSON response is prepended with text like nono
(in my case).
Because WP is smart enough to ignore the prepended text, it can still handle the order in most cases, BUT not in all cases. For example, I am using TranslatePress and because the response is not structured JSON anymore, it thinks the whole response should be translated as text. This causes a bigger issue and the order now fails.
Can you please fix this issue upstream? You should just add the true
argument for those wc_print_r()
statements to quickly fix this…
Thank you!
]]><div id="t20_slider_widget-13" class="sidebar-box widget_t20_slider_widget amr_widget clr"><h4 class="widget-title">Lorem ipsum....</h4>
[image before-after]
</div>
You can fix this by modifying the file /inc/widget-twenty20.php
Correct form of this file (based on version 1.73) is:
<?php
//Widget Registration.
function twenty20_slider_widget_register() {
register_widget( 'twenty20_slider_widget' );
}
class twenty20_slider_widget extends WP_Widget {
// Widget Class Constructor
function __construct() {
parent::__construct(
't20_slider_widget',
__( 'Twenty20 Slider', 'zb_twenty20' ),
array( 'description' => __( 'Highlight the differences between two images.', 'zb_twenty20' ), )
);
add_action('adminesc_html_enqueue_scripts', array(&$this, 'mac_admin_scripts'));
}
function mac_admin_scripts($hook) {
if ($hook != 'widgets.php')
return;
wpesc_html_enqueue_media();
wp_register_style( 'mac_style', ZB_T20_URL . '/assets/css/admin.css', false, ZB_T20_VER );
wpesc_html_enqueue_style( 'mac_style' );
wp_register_script('mac_widget_admin', ZB_T20_URL . '/assets/js/admin.js', array('jquery'), ZB_T20_VER, true);
wp_register_script('mac_widget_img', ZB_T20_URL . '/assets/js/image-uploader.js', array('jquery'), ZB_T20_VER, true);
wpesc_html_enqueue_script('mac_widget_admin');
wpesc_html_enqueue_script('mac_widget_img');
}
public function widget( $args, $instance ) {
// Wy?wietlanie HTML widgetu
echo $args['before_widget'];
if ( ! empty( $instance['title'] ) ) {
echo $args['before_title'] . esc_html( apply_filters( 'widget_title', $instance['title'] ) ) . $args['after_title'];
}
?>
<div class="mac-wrap">
<?php
$t20ID = esc_attr( $args['widget_id'] );
$isVertical = '';
if ( isset($instance['is_vertical']) && $instance['is_vertical'] == true ) {
$isVertical = ' data-orientation="vertical"';
}
$isHover = '';
if ( isset($instance['t20_widget_hover']) && $instance['t20_widget_hover'] === 'true' ) {
$isHover = ',move_slider_on_hover: true';
}
?>
<?php if ( !empty($instance['t20_img_before']) && !empty($instance['t20_img_after']) ): ?>
<div class="twenty20">
<div class="twentytwenty-container <?php echo esc_attr( $t20ID ); ?>"<?php echo $isVertical; ?>>
<img src="<?php echo esc_url($instance['t20_img_before']); ?>" alt="Before Image">
<img src="<?php echo esc_url($instance['t20_img_after']); ?>" alt="After Image">
</div>
<script>
jQuery(window).on("load", function(){
<?php if (isset($instance['is_vertical']) && $instance['is_vertical'] == true) { ?>
jQuery(".twentytwenty-container.<?php echo esc_js($t20ID); ?>[data-orientation='vertical']").twentytwenty({default_offset_pct: <?php echo esc_js($instance['t20_widget_offset']); ?>, orientation: 'vertical' <?php echo esc_js($isHover); ?>});
<?php } else { ?>
jQuery(".twentytwenty-container.<?php echo esc_js($t20ID); ?>[data-orientation!='vertical']").twentytwenty({default_offset_pct: <?php echo esc_js($instance['t20_widget_offset']); ?> <?php echo esc_js($isHover); ?>});
<?php } ?>
<?php if (!empty($instance['t20_widget_before'])) { ?>
jQuery(".<?php echo esc_js($t20ID); ?> .twentytwenty-before-label").html("<?php echo esc_js($instance['t20_widget_before']); ?>");
<?php } else { ?>
jQuery(".<?php echo esc_js($t20ID); ?> .twentytwenty-before-label").hide();
<?php } ?>
<?php if (!empty($instance['t20_widget_after'])) { ?>
jQuery(".<?php echo esc_js($t20ID); ?> .twentytwenty-after-label").html("<?php echo esc_js($instance['t20_widget_after']); ?>");
<?php } else { ?>
jQuery(".<?php echo esc_js($t20ID); ?> .twentytwenty-after-label").hide();
<?php } ?>
});
</script>
</div>
<?php endif; ?>
</div>
<?php
echo $args['after_widget'];}
// Widget Layout
public function form( $instance ) {
$title = isset($instance['title']) ? esc_attr($instance['title']) : '';
$t20_widget_before = isset($instance['t20_widget_before']) ? esc_attr($instance['t20_widget_before']) : '';
$t20_widget_after = isset($instance['t20_widget_after']) ? esc_attr($instance['t20_widget_after']) : '';
$t20_img_before = isset($instance['t20_img_before']) ? esc_url($instance['t20_img_before']) : '';
$t20_img_after = isset($instance['t20_img_after']) ? esc_url($instance['t20_img_after']) : '';
$is_vertical = isset($instance['is_vertical']) ? (bool) $instance['is_vertical'] : false;
$t20_widget_offset = isset($instance['t20_widget_offset']) ? esc_attr($instance['t20_widget_offset']) : '0.5';
$t20_widget_hover = isset($instance['t20_widget_hover']) ? esc_attr($instance['t20_widget_hover']) : 'false';
?>
<div class="mac_options_form">
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>"><?php esc_html_e( 'Title:', 'zb_twenty20' ); ?></label>
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 'title' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 'title' ) ); ?>" type="text" value="<?php echo esc_attr( $title ); ?>">
</p>
<p class="check">
<label for="<?php echo esc_attr( $this->get_field_id("is_vertical") ); ?>" />
<input type="checkbox" class="checkbox" id="<?php echo esc_attr( $this->get_field_name("is_vertical") ); ?>" name="<?php echo esc_attr( $this->get_field_name("is_vertical") ); ?>" value="1" <?php checked( 1, isset($instance['is_vertical']), true ); ?> />
<strong><label for="<?php echo esc_attr( $this->get_field_name("is_vertical") ); ?>"><?php esc_html_e( 'Set Vertical direction', 'zb_twenty20'); ?></label></strong>
</label>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 't20_widget_before' ) ); ?>"><?php esc_html_e( 'Before:', 'zb_twenty20' ); ?></label>
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 't20_widget_before' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 't20_widget_before' ) ); ?>" type="text" value="<?php echo esc_attr( $t20_widget_before ); ?>">
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 't20_widget_after' ) ); ?>"><?php esc_html_e( 'After:', 'zb_twenty20' ); ?></label>
<input class="widefat" id="<?php echo esc_attr( $this->get_field_id( 't20_widget_after' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 't20_widget_after' ) ); ?>" type="text" value="<?php echo esc_attr( $t20_widget_after ); ?>">
</p>
<p>
<strong><label for="<?php echo esc_attr( $this->get_field_id('t20_widget_offset') ); ?>"><?php esc_html_e('Offset:', 'zb_twenty20'); ?></label></strong>
<select id="<?php echo esc_attr( $this->get_field_id('t20_widget_offset') ); ?>" name="<?php echo esc_attr( $this->get_field_name('t20_widget_offset') ); ?>">
<option value=""><?php esc_html_e('Select offset value', 'zb_twenty20'); ?></option>
<option value="0.1" <?php selected($t20_widget_offset, '0.1', true); ?>><?php esc_html_e('0.1', 'zb_twenty20'); ?></option>
<option value="0.2" <?php selected($t20_widget_offset, '0.2', true); ?>><?php esc_html_e('0.2', 'zb_twenty20'); ?></option>
<option value="0.3" <?php selected($t20_widget_offset, '0.3', true); ?>><?php esc_html_e('0.3', 'zb_twenty20'); ?></option>
<option value="0.4" <?php selected($t20_widget_offset, '0.4', true); ?>><?php esc_html_e('0.4', 'zb_twenty20'); ?></option>
<option value="0.5" <?php selected($t20_widget_offset, '0.5', true); ?>><?php esc_html_e('0.5 (default)', 'zb_twenty20'); ?></option>
<option value="0.6" <?php selected($t20_widget_offset, '0.6', true); ?>><?php esc_html_e('0.6', 'zb_twenty20'); ?></option>
<option value="0.7" <?php selected($t20_widget_offset, '0.7', true); ?>><?php esc_html_e('0.7', 'zb_twenty20'); ?></option>
<option value="0.8" <?php selected($t20_widget_offset, '0.8', true); ?>><?php esc_html_e('0.8', 'zb_twenty20'); ?></option>
<option value="0.9" <?php selected($t20_widget_offset, '0.9', true); ?>><?php esc_html_e('0.9', 'zb_twenty20'); ?></option>
<option value="1" <?php selected($t20_widget_offset, '1', true); ?>><?php esc_html_e('1.0', 'zb_twenty20'); ?></option>
</select>
</p>
<p>
<strong><label for="<?php echo esc_attr( $this->get_field_id('t20_widget_hover') ); ?>"><?php esc_html_e('Mouse over:', 'zb_twenty20'); ?></label></strong>
<select id="<?php echo esc_attr( $this->get_field_id('t20_widget_hover') ); ?>" name="<?php echo esc_attr( $this->get_field_name('t20_widget_hover') ); ?>">
<option value="false" <?php selected($t20_widget_hover, 'false', true); ?>><?php esc_html_e('No', 'zb_twenty20'); ?></option>
<option value="true" <?php selected($t20_widget_hover, 'true', true); ?>><?php esc_html_e('Yes', 'zb_twenty20'); ?></option>
</select>
<br/><em>Move slider on mouse hover?</em>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 't20_img_before' ) ); ?>"><?php esc_html_e( 'Before Image:', 'zb_twenty20' ); ?> <span class="mac-info" title="<?php esc_html_e('Select t20_img_before or enter external image url.', 'zb_twenty20'); ?>"></span></label><br/>
<?php if(empty( $t20_img_before )){ $t20_img_before = ZB_T20_URL . '/assets/images/placeholder.png'; } ?>
<img src="<?php echo esc_url( $t20_img_before ); ?>" width="150px"/>
<input class="widefat mac-img-before" id="<?php echo esc_attr( $this->get_field_id( 't20_img_before' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 't20_img_before' ) ); ?>" type="hidden" value="<?php echo esc_attr( $t20_img_before ); ?>" />
<span class="submit">
<input type="button" data-t20="img-t20-before" name="submit" id="submit" class="button button-primary mac-upload_image_button" value="Select image">
<input type="button" name="submit" id="submit" class="button delete button-secondary mac-remove-image-before" value="X">
</span>
</p>
<p>
<label for="<?php echo esc_attr( $this->get_field_id( 't20_img_after' ) ); ?>"><?php esc_html_e( 'After Image:', 'zb_twenty20' ); ?> <span class="mac-info" title="<?php esc_html_e('Select Twenty20 Slider or enter external image url.', 'zb_twenty20'); ?>"></span></label><br/>
<?php if( empty( $t20_img_after )){ $t20_img_after = ZB_T20_URL . '/assets/images/placeholder.png';} ?>
<img src="<?php echo esc_url( $t20_img_after ); ?>" width="150px"/>
<input class="widefat mac-img-after" id="<?php echo esc_attr( $this->get_field_id( 't20_img_after' ) ); ?>" name="<?php echo esc_attr( $this->get_field_name( 't20_img_after' ) ); ?>" type="hidden" value="<?php echo esc_attr( $t20_img_after ); ?>" />
<span class="submit">
<input type="button" data-t20="img-t20-after" name="submit" id="submit" class="button button-primary mac-upload_image_button" value="Select image">
<input type="button" name="submit" id="submit" class="button delete button-secondary mac-remove-image-after" value="X">
</span>
</p>
</div>
<?php
}
// Save Data
public function update( $new_instance, $old_instance ) {
$instance = array();
$instance['title'] = ( ! empty( $new_instance['title'] ) ) ? wp_strip_all_tags( $new_instance['title'] ) : '';
$instance['t20_img_before'] = ( ! empty( $new_instance['t20_img_before'] ) ) ? esc_url( wp_strip_all_tags( $new_instance['t20_img_before'] ) ) : '';
$instance['t20_img_after'] = ( ! empty( $new_instance['t20_img_after'] ) ) ? esc_url( wp_strip_all_tags( $new_instance['t20_img_after'] ) ) : '';
$instance['is_vertical'] = $new_instance['is_vertical'];
$instance['t20_widget_offset'] = $new_instance['t20_widget_offset'];
$instance['t20_widget_hover'] = $new_instance['t20_widget_hover'];
$instance['t20_widget_before'] = $new_instance['t20_widget_before'];
$instance['t20_widget_after'] = $new_instance['t20_widget_after'];
return $instance;
}
}
add_action( 'widgets_init', 'twenty20_slider_widget_register' );
Changes were made to funtion widget and function form.
]]>transaction list had problem in last version. only first page of transactions are listed and next pages not accessible.
howto fix:
includes/class-woo-wallet-ajax.php
Line 417:
'recordsFiltered' => $records_total,
i will be happy if you make changes and update plugin.
Regards
]]>Example of testing:
I created a Production environment with a website template and staging environment with the same template and same setup as production. On production, I have BSR v1.4.6 and on staging, I deactivated v1.4.6 and installed & activated v.1.4.5
On production (BSR v1.4.6):
– Search term 1: getting 46 results found inside wp_postmeta (31) and wp_posts (15) tables
– Search term 2: getting 8 results found inside wp_postmeta (5) and wp_options (3) tables
– Search term 3: getting 39 results found inside wp_postmeta (26) and wp_posts (13) tables
On staging (BSR v1.4.5):
– Search term 1: getting 72 results found inside wp_postmeta (35), wp_posts (31), wp_gf_form_meta (1) and wp_rank_math_analytics_objects (5) tables
– Search term 2: getting 12 results found inside wp_postmeta (5), wp_options (4) and wp_usermeta (3) tables
– Search term 3: getting 47 results found inside wp_postmeta (28), wp_posts (17) and wp_rank_math_analytics_objects (2) tables
I tried with multiple sites/templates with the same testing method and results are similar.
All these searches were made with the “Case-Insensitive” option marked. If I try to search the same terms with uppercase letters, I am able to see the rest of the search results, but these are not showing with the “Case-Insensitive” option.
I tested to see if it’s up to some conflict with other plugins, but search results are the same on v1.4.6 even after deactivating any/all plugin(s).
Did anyone else notice the same? I’m using BSR quite a lot on a daily basis and I really hope this will be sorted out as soon as possible.
]]>This shouldn’t happen as I’m not using satispay via payplug.
I solve this problem by commenting out line 142 of PayplugWoocommerce.php
“$methods[] = NAMESPACE . ‘\Gateway\PPRO\Satispay’;”
but we all know that at the first plugin update this problem will return.
Can you tell me more? or possibly you can tell me how to deregister that payment method via my function.php.
I have found an issue with the plugin. The value for the Access-Control-Allow-Credentials is being sent out as 1 instead of true. This happens because of a bug in src/Helpers/Headers.php. The value
$option->is_allow_credentials()
is being concatenated with the rest of the header which cause php to convert it to 1 or 0. A revised version of this line could be:
if ( $option->is_allow_credentials() ) {
header( 'Access-Control-Allow-Credentials: ' . ($option->is_allow_credentials() ? 'true' : 'false') );
}
After updating the code, the plugin started working as intended.
If you use Github for version control, I would be happy to create a pull request. If you need any other information feel free to reach out to me.
Kind regards,
Sebastian Joey Lamprecht
I resolved this by rolling back to version 7.78 of the plugin (which I happened to have on hand and just re-uploaded.)
Just leaving this here to report and so that other users can find a solution if they need a temporary fix until a patch comes through.
]]>