Forum Replies Created

Viewing 12 replies - 1 through 12 (of 12 total)
  • Thread Starter arvindve

    (@arvindve)

    That indeed worked. Thank you. I also subscribed to the max ver. Thanks

    Thread Starter arvindve

    (@arvindve)

    This is the snippet I am using:

    function custom_tablepress_admin_footer() {
    ?>
    <script type="text/javascript">
    function focusCell(cell) {
    if (cell && cell.tagName === 'TD') {
    // Log a message to check if the double-click is being triggered
    console.log('Double-click triggered for cell:', cell);

    // Add a temporary background color to visually indicate the double-click was triggered
    cell.css('background-color', '#f0c674'); // Change the background color

    // Trigger a double-click to ensure the cell enters edit mode
    cell.trigger('dblclick');

    // Directly focus the cell without triggering jQuery events
    if (!document.activeElement || document.activeElement !== cell) {
    cell.focus();
    }

    // Reset the background color after a short delay
    setTimeout(function () {
    cell.css('background-color', ''); // Revert the background color
    }, 500); // Reset after 0.5 seconds
    }
    }

    jQuery(document).ready(function ($) {
    var lastFocusedCell = null;

    // Listen for clicks on jexcel cells to track the last focused cell
    $(document).on('click', 'table.jexcel tbody td', function () {
    lastFocusedCell = $(this); // Store the clicked cell as the last focused
    });

    // Append the custom button to the correct location in the manipulation table
    $('#tablepress-manipulation-controls tbody tr td.column-1').append('<button type="button" class="button" id="user-selection-button">Select User</button>');

    // Create the popup HTML structure
    $('body').append(
    <br> <div id="user-selection-popup" style="display:none;"><br> <div class="user-selection-popup-content"><br> <h2>Select User and Order</h2><br> <select id="user-dropdown"><br> <option value="">Select a user</option><br> </select><br> <select id="order-dropdown" disabled><br> <option value="">Select an order</option><br> </select><br> <div style="margin-top: 15px;"><br> <button id="insert-user-button" class="button button-primary">Insert</button><br> <button id="close-popup-button" class="button">Close</button><br> </div><br> </div><br> </div><br>);

    // Populate the user dropdown with AJAX
    $.ajax({
    url: ajaxurl, // WordPress AJAX endpoint
    method: 'POST',
    data: {
    action: 'get_users_for_dropdown'
    },
    success: function (response) {
    $('#user-dropdown').append(response);
    }
    });

    // Enable and populate the order dropdown when a user is selected
    $('#user-dropdown').change(function () {
    var userId = $(this).val();
    if (userId) {
    $('#order-dropdown').prop('disabled', false);
    // Fetch orders based on selected user
    $.ajax({
    url: ajaxurl,
    method: 'POST',
    data: {
    action: 'get_orders_for_user',
    user_id: userId
    },
    success: function (response) {
    $('#order-dropdown').html(response); // Populate the order dropdown
    }
    });
    } else {
    $('#order-dropdown').prop('disabled', true).html('<option value="">Select an order</option>'); // Reset orders dropdown
    }
    });

    // Show the popup when the custom button is clicked
    $('#user-selection-button').click(function () {
    $('#user-selection-popup').fadeIn();
    });

    // Close the popup
    $('#close-popup-button').click(function () {
    $('#user-selection-popup').fadeOut();
    });

    // Handle the insert button
    $('#insert-user-button').click(function () {
    var selectedUser = $('#user-dropdown option:selected').text();
    var selectedOrder = $('#order-dropdown option:selected').val(); // Get the selected order ID
    var orderMeta = $('#order-dropdown option:selected').data('meta'); // Get the order meta value (description_tally_ref)

    // Remove the orderMeta condition from the main if check
    if (selectedUser && lastFocusedCell && selectedOrder) {
    // Function to update each cell sequentially
    function updateCellsSequentially() {
    // Step 1: Focus on the user cell and update it
    focusCell(lastFocusedCell); // Ensure the cell is focused and trigger double-click

    setTimeout(function () {
    var userTextarea = lastFocusedCell.find('textarea');
    var userDiv = lastFocusedCell.find('div'); // Fallback to find div if textarea is not found

    if (userTextarea.length) {
    userTextarea.val(selectedUser); // Set the user name
    } else if (userDiv.length) {
    userDiv.text(selectedUser); // Set the user name in the div
    }

    // Step 2: Focus on the right cell (for order) and update it
    var rightCell = lastFocusedCell.next('td');
    if (rightCell.length) {
    focusCell(rightCell); // Ensure the cell is focused and trigger double-click

    setTimeout(function () {
    var orderTextarea = rightCell.find('textarea');
    var orderDiv = rightCell.find('div'); // Fallback to find div if textarea is not found

    var orderText = 'Order #' + selectedOrder;
    if (orderMeta) {
    orderText += ' - ' + orderMeta; // Concatenate orderMeta only if it has a value
    }

    if (orderTextarea.length) {
    orderTextarea.val(orderText); // Set the order info
    } else if (orderDiv.length) {
    orderDiv.text(orderText); // Set the order info in the div
    }

    // After updating both cells, close the popup
    $('#user-selection-popup').fadeOut();
    }, 1000); // Wait 1 second before targeting the order cell
    }
    }, 1000); // Wait 1 second before targeting the user cell
    }

    // Start updating the cells sequentially
    updateCellsSequentially();
    }
    });
    });

    </script>
    <?php
    }
    add_action('admin_footer', 'custom_tablepress_admin_footer');

    function get_users_for_dropdown() {
    $users = get_users();
    $options = '';

    foreach ($users as $user) {
    $options .= '<option value="' . esc_attr($user->ID) . '">' . esc_html($user->display_name) .' (#' . $user->ID . ')' . '</option>';
    }

    echo $options;
    wp_die();
    }
    add_action('wp_ajax_get_users_for_dropdown', 'get_users_for_dropdown');

    function get_orders_for_user() {
    $user_id = intval($_POST['user_id']);
    if (!$user_id) {
    wp_die();
    }

    // Query WooCommerce orders for the selected user
    $args = array(
    'customer_id' => $user_id,
    'limit' => -1, // No limit to orders fetched
    'status' => 'any', // Fetch orders of any status
    );
    $orders = wc_get_orders($args);
    $options = '<option value="">Select an order</option>';

    foreach ($orders as $order) {
    $order_meta = $order->get_meta('description_tally_ref'); // Get the meta value
    $options .= '<option value="' . esc_attr($order->get_id()) . '" data-meta="' . esc_attr($order_meta) . '">Order #' . esc_html($order->get_id()) . ' - ' . wc_format_datetime($order->get_date_created()) . '</option>';
    }

    echo $options;
    wp_die();
    }
    add_action('wp_ajax_get_orders_for_user', 'get_orders_for_user');

    function custom_tablepress_admin_head() {
    ?>
    <style>
    /* CSS for the popup */
    #user-selection-popup {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: #fff;
    padding: 20px;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
    z-index: 9999;
    display: none;
    }

    .user-selection-popup-content {
    text-align: center;
    }

    #user-dropdown, #order-dropdown {
    width: 100%;
    margin-bottom: 15px;
    }

    #insert-user-button, #close-popup-button {
    margin: 5px;
    }
    </style>
    <?php
    }
    add_action('admin_head', 'custom_tablepress_admin_head');
    Thread Starter arvindve

    (@arvindve)

    ok thanks. Ill check it out. It appears that you really really know wordpress in and out.

    Here is the documentation if you would consider to add it as a feature to any of this plugins versions since it may go with the basic problem this plugin solves.

    https://developers.facebook.com/docs/whatsapp/cloud-api/get-started#sent-test-message

    Thread Starter arvindve

    (@arvindve)

    Great. The faster you can the better. Will wait for this

    Thread Starter arvindve

    (@arvindve)

    Hi @erania-pinnera

    As soon as I updated to Jetpack 5.4.4 the whole website crashed. Earlier in the version I was using above it was only when I updated any user the site returned an error. But after updating to 5.4.4 the entire site crashed. I cannot yet update to a higher Php version since many of the plugins have not yet done that yet.I will wait for a couple of months before I do that. Btw none of the other plugins are the culprit here and not even is the lower php version responsible for this. This plugin in my limited knowledge may need fixing somewhere I guess

    Also in the plugins page in Cpanel the name of the plugin is ZeroBS CRM which is some old name I guess – is it possible to change that to Jetpack CRM?

    Error Email:

    When seeking help with this issue, you may be asked for some of the following information:
    WordPress version 5.7.8
    Current theme: OceanWP (version 3.0.7)
    Current plugin: Jetpack CRM (version 5.4.4)
    PHP version 7.4.33
    
    Error Details
    =============
    An error of type E_ERROR was caused in line 1023 of the file /home/realpl5/public_html/wp-content/plugins/zero-bs-crm/includes/ZeroBSCRM.GeneralFuncs.php. Error message: Uncaught RuntimeException: /home/realpl5/public_html/wp-content/plugins/zero-bs-crm/modules/woo-sync/admin does not exist. in /home/realpl5/public_html/wp-content/plugins/zero-bs-crm/includes/ZeroBSCRM.GeneralFuncs.php:1023
    Stack trace:
    #0 /home/realpl5/public_html/wp-content/plugins/zero-bs-crm/modules/woo-sync/includes/class-woo-sync.php(340): jpcrm_get_directories('/home/realpl5/p...')
    #1 /home/realpl5/public_html/wp-content/plugins/zero-bs-crm/modules/woo-sync/includes/class-woo-sync.php(162): AutomatticJetpackCRMWoo_Sync->load_ajax()
    #2 /home/realpl5/public_html/wp-content/plugins/zero-bs-crm/includes/class-crm-modules.php(78): AutomatticJetpackCRMWoo_Sync->__construct()
    #3 /home/realpl5/public_html/wp-content/plugins/zero-bs-crm/modules/woo-sync/jpcrm-woo-sync-init.php(59): AutomatticJetpackCRMCRM_Modules->load_module('woosync', 'Woo_Sync')
    #4 /home/realpl5/public_html/wp-includes/class-wp-hook.php(292): jpcrm_load_woo_sync('')
    #5 /home/realpl5/public_html/wp-includes/class-wp-hook.php(316): WP_Ho

    which video are you referring to?

    Forum: Plugins
    In reply to: [WP HOURLY] Maybe a Bug
    Thread Starter arvindve

    (@arvindve)

    Hi is there a timeline when this can be achieved? If not then I would rather take up the task myself. and Instead of paying some other developer I dont mind paying you guys something more just as incentive if u guys could do this quickly to get all the premium features working Thanks

    Thread Starter arvindve

    (@arvindve)

    Thats great. Thanks for the amazing support.

    Thread Starter arvindve

    (@arvindve)

    @lorro I use about 256 plugins and except Woocommerce (they recently started this) – no one does this. I dont know which plugins you are referring to. (Can you tell me? atleast 3 – So I will think twice before purchasing – because its as good as no support) The list of premiums I use are Gravity Forms, Wiz, view, flow, admin columns, stream, many WC addons, awesome support, WP SMTP etc – NONE of them do this. What they at the most do is to request you to do a theme plugin conflict check which all good developers do before hand – and then identify the exact problem – before going to support. Please understand that nobody expects you to support another plugin and no one will do that-Please understand what I have written and expressed.

    I have not read the Support Policy. but if what I have written above is true and is part of Support Policy then the Support policy needs a change because its not reasonable since it goes on the presumption that all plugins updates by all authors are without bugs and work perfectly in all environments and also goes on the assumption that everyone updates plugins the very next second wordpress releases updates. NO ONE does that and that is not recommended unless its test site else you will end up with a site that is unusable.

    From their Supports silence on this matter it appears to me that the intention of Woocomerce team maybe what I have written above because support is silent on this.

    Woocommerce should not continue with this support policy for tickets because what its doing is detrimental to the support staff’s experience. What happens is that through Support queries the support staff get more and more INVOLVED and aware with the working of the software and its 10k different aspects and the different ways the whole world uses it – which they are now losing out on. Many a times through engaging in support, the staff become aware of the problems and solutions that users have come up with and themselves become more proficient in the software which otherwise would have to be done by the company through training which we all know is not as effective as experience.

    For everything there has to be a balance. and in every field there will be people of all types. But Such a blanket way of cutting the support queue is not reasonable in fact detrimental to the support itself and also to users. They have to think about it in more depth and come up with a better way of handling things unless they have decided on not providing support at all for some other reason.

    Bugs in Automattic teams own software are generally related to very super specific minute details and are fixed by updates which may be accounting for very miniscule number of cases. But the problem is the documentation: Many different aspects of the software are not covered at all or are not written in a simple understanding flow. Instead each person has to do a very extensive trial and error and it can be frustrating. Documentation is not written in logical flow. Documentation should have contributions by people who use the software and should include answers to tickets raised earlier in an FAQ format. That is the way to reduce Support queue. All this can increase the awareness and ease of use of the software and subsequently the business the software makes. Else then comapnies have to resort to such measures for cost cutting. Every Problem is an opportunity if you look at it the sensible way rather than blanket bans. Thanks

    Thread Starter arvindve

    (@arvindve)

    This resolves the issue – posted here to help anyone else who would want to do this and there is no mention of this anywhere else I searched in the entire documentation. I deactivated all subscriptions and deleted them and then even from trash. I could only then change the product type of subscription from simple to variable etc. This becomes necessary when we are testing the software before moving it to live
    Thanks

    Thread Starter arvindve

    (@arvindve)

    Precisely I had a query with variable Subscriptions (It MAY apply to other product types as well). After sitting on this matter for two full days and trying all possible solutions I came to know that Once created you change Edit product type (in my case variable Subscriptions) unless you delete all the existing Subscriptions First. So if I wanted to change product type from variable to simple or vice versa you would not be able to do that unless you delete all existing subscriptions first. Those subscriptions must not even be there in trash. Only then will you be able to edit the product type.
    Thanks for your reply Igor

    Thread Starter arvindve

    (@arvindve)

    Instead of UTC Server time can be used

Viewing 12 replies - 1 through 12 (of 12 total)