Forum Replies Created

Viewing 15 replies - 1 through 15 (of 31 total)
  • Hi @husainm ,

    By “normal emails,” I meant the regular system emails your website sends—like password reset emails, new order notifications, or contact form emails. If these aren’t being delivered, then workflow emails will also fail, because both use the same email-sending method.

    To quickly check this, you can use a plugin like WP Test Email. It lets you send a test email from your website to confirm whether outgoing mail is working at all.

    If the test email doesn’t arrive, that means your site isn’t able to send emails reliably, and you’ll need to configure an SMTP service (SendGrid, Gmail SMTP, Mailgun, etc.) for proper delivery.

    Please run the test and let me know the result—we’ll move to the next step from there.

    Hi @husainm,

    Can you share a screenshot of your Workflow Settings page?

    Also, can you confirm whether normal emails from your website are being successfully sent and received by the recipients?

    Hi @husainm,

    Sorry for the late reply — somehow I didn’t receive a notification for your message.

    Anyway, I was able to replicate the issue on my end using your server configuration, and thanks to that, I was also able to identify the solution.

    Starting from WordPress v6.6+, some block editor/Gutenberg packages functions were deprecated Or change import location. Because of this, we updated our code to ensure compatibility with the latest WordPress versions.

    We’ve now also added a fallback for older WordPress versions (anything below v6.6, such as v6.5.3), so older sites will remain fully compatible with our latest plugin.

    We will update the plugin ASAP, but in the meantime, you can upgrade using the fixed version if you’d like. I’ve created a ZIP file just for you—download it, replace your existing “oasis-workflow” plugin, and test it out.

    Please let us know how it goes. We’ll release the official update soon, so when you receive the update notification, feel free to update.

    Here’s the download link for the fixed plugin ZIP:
    https://www.oasisworkflowdemo.com/oasis-workflow-for-husainm.zip

    Hi @husainm ,

    Could you please share a bit more about your system information, such as:

    • WordPress version
    • Oasis Workflow version
    • PHP version
    • And, if possible, a list of active plugins

    This will help us better understand your setup and identify what might be causing the issue.

    Hi Silas,

    Thanks again for the report, especially for providing all the details.

    I was able to duplicate the issue, and it turns out the problem occurs with our code when using Chinese. I noticed that Chinese dates contain a special character that other languages don’t, which was causing the issue.

    We’ll include this fix in our next update. In the meantime, can you please replace the api_get_step_details function inside oasis-workflow/includes/class-ow-process-flow.php with the updated version below?

    here’s the update api_get_step_details

    public function api_get_step_details( $step_details_criteria ) {
    if ( ! wp_verify_nonce( $step_details_criteria->get_header( 'x_wp_nonce' ), 'wp_rest' ) ) {
    wp_die( esc_html__( 'Unauthorized access.', 'oasisworkflow' ) );
    }

    if ( ! current_user_can( 'ow_submit_to_workflow' ) && ! current_user_can( 'ow_sign_off_step' ) ) {
    wp_die( esc_html__( 'You are not allowed to get workflow step details.', 'oasisworkflow' ) );
    }

    // sanitize incoming data
    $history_id = intval( $step_details_criteria['action_history_id'] );
    $step_id = intval( $step_details_criteria['step_id'] );
    $post_id = intval( $step_details_criteria['post_id'] );


    // create an array of all the inputs
    $step_details_params = array(
    "step_id" => $step_id,
    "post_id" => $post_id,
    "history_id" => $history_id
    );

    // initialize the return array
    $step_details = array(
    "users" => "",
    "process" => "",
    "assign_to_all" => 0,
    "due_date" => ""
    );

    // get step users
    $users_and_process_info = $this->get_users_in_step( $step_id, $post_id );

    if ( $users_and_process_info != null ) {
    $step_details["users"] = $users_and_process_info["users"];
    $step_details["process"] = $users_and_process_info["process"];
    $step_details["assign_to_all"] = $users_and_process_info["assign_to_all"];
    }

    // get the due date for the step
    $default_due_days = get_option( 'oasiswf_default_due_days' ) ? get_option( 'oasiswf_default_due_days' ) : 1;
    $due_date = date_i18n( OASISWF_EDIT_DATE_FORMAT, current_time( 'timestamp' ) + DAY_IN_SECONDS * $default_due_days );

    $start = '-';
    $end = ' ';
    $replace_string = '';
    $formatted_date = preg_replace( '#(' . preg_quote( $start ) . ')(.*?)(' . preg_quote( $end ) . ')#si', '$1' . $replace_string . '$3', $due_date );
    $formatted_date = str_replace( "-", "", $formatted_date );

    $final_due_date = '';

    // Try normal parsing first
    try {
    $date_obj = new DateTime($formatted_date);
    if ($date_obj) {
    $final_due_date = $date_obj->format('Y-m-d');
    }
    } catch (Exception $e) {
    $final_due_date = '';
    }

    // If still empty, it's mean formatting failed due to invalid date Or irregular date format Or contain special characters
    // In that case, do a "digits only" parse
    if (!$final_due_date) {
    $clean_date = preg_replace('/[^\d ]/', ' ', $formatted_date);
    $clean_date = preg_replace('/\s+/', ' ', trim($clean_date));

    $parts = explode(' ', $clean_date);
    if (count($parts) >= 3) {
    list($month, $day, $year) = $parts;
    if (checkdate((int)$month, (int)$day, (int)$year)) {
    $final_due_date = sprintf('%04d-%02d-%02d', $year, $month, $day);
    }
    }
    }

    $step_details["due_date"] = $final_due_date;

    return $step_details;
    }

    Or you can get better version from gist https://gist.github.com/mlbd/7456709f30f3ab92dcd87e5e72a85bbf

    Alternatively, if you’d rather not replace just the single function, you can update the entire class-ow-process-flow.php file using this gist. This will ensure you have all the latest adjustments and reduce the chance of missing related fixes.
    https://gist.github.com/mlbd/0e1914c6f6bd43d52b6a67dbe7714704

    After replacing the function, please try it out and let us know how it goes.

    Hi Silas,

    Could you please share which PHP version you are using?
    Also, if possible, kindly share your workflow with us by going to:
    Workflows > Tools > Import/Export → check both checkboxes → then click “Download Export File.”

    Hi xxxlesy,

    Thank you for reporting this issue. We’ve already identified the cause and implemented a fix. This update will be included in the upcoming release.

    In the meantime, you can resolve the issue manually by replacing the following file on your installation:

    /oasis-workflow/js/pages/subpages/submit-workflow.js

    You can download the fixed version here:
    👉 https://gist.github.com/mlbd/dea3cedfe6db8425e93e4beac81437e8

    Or use the direct raw view to download via Ctrl+S:
    https://gist.githubusercontent.com/mlbd/dea3cedfe6db8425e93e4beac81437e8/raw/a6e28b752930e7293caaa67d625600963c096f21/submit-workflow.js

    Once downloaded, replace the existing file with this version. Alternatively, you can copy and paste the code into the existing file.

    Important:
    Because browsers typically cache JavaScript and CSS files, you may not see the fix applied immediately after replacing the file. To ensure the changes take effect:

    1. Open the browser’s Developer Tools (Right-click → Inspect or Ctrl+Shift+I).
    2. Right-click the Reload button.
    3. Select Empty Cache and Hard Refresh.

    If the issue persists, repeat the cache clear process a couple of times, as some browsers may keep a persistent cache. This is uncommon in the admin panel but possible.

    If the cache clearing instructions aren’t clear, you can also follow this video for step-by-step guidance.

    Clear browser cache on new post/page Or edit post/page
    Thread Starter Mohammad Limon

    (@mlimon)

    That would be great if it’s included, and yes, I’m already using the same method.

    function ml_xoo_ml_login_redirect($redirect)
    {
        $otp_data = Xoo_Ml_Otp_Handler::get_otp_data();
        $user = xoo_ml_get_user_by_phone($otp_data['phone_no'], $otp_data['phone_code']);
        if ($user) {
            return home_url('/' . $user->user_login);
        }
    
        return $redirect;
    }
    add_filter('xoo_ml_login_with_otp_redirect', 'ml_xoo_ml_login_redirect');

    However, I misunderstood before, thinking that it might cause one notice and one warning. But later, I understood that it actually has nothing to do with this filter; those two errors are coming from the main plugin.

    Could you please address these two (warning & notice) ?

    PHP Warning: array_map(): Expected parameter 2 to be an array, null given in \var\sitelocation\wp-content\plugins\mobile-login-woocommerce\includes\class-xoo-ml-geolocation.php on line 25
    PHP Notice: Trying to access array offset on value of type null in C\var\sitelocation\wp-content\plugins\mobile-login-woocommerce\includes\class-xoo-ml-otp-handler.php on line 24

    That would be really helpful

    Thread Starter Mohammad Limon

    (@mlimon)

    Cool. Looking forward to it.

    btw, it’s completely understandable that not having a feature. it’s really normal 🙂 but the reason you share ( SECURITY ) it’s kinda weird to me and really not expected 😛

    Because, if we get a security issue Or risk by exposing or sharing booking_id doesn’t mean that plugin has lack enough validation & sanitation when updating or modifying db?

    Anyway, I’m not that expert to judge you guys just let you know if someone wants to know a booking id, even if that person doesn’t have dashboard access he/she can get a booking id easily when he/she tries to create a new booking_id.

    Example: on Paypal gateway, there’s a parameter called payed_booking that has booking id.

    In short: if it’s true that you said in the last replay that a security risk might happen by exposing booking_id and if that’s true, then I hope you guys will prioritize this issue first and make your plugin risk-free AMAP.

    Cheers

    Thread Starter Mohammad Limon

    (@mlimon)

    And also how can I get all meta list as array or object by booking id

    Thread Starter Mohammad Limon

    (@mlimon)

    Yes, I did check capacity features already and it’s not going to help me as you already know I need to book a day when all my slots get full depending on room selections.

    Here’s one idea I’m wanna try but need your help.

    Can you share how to query the booking list with my custom field values? Just a list of bookings will do. Is there any custom function you guys have to do this?

    Plugin Author Mohammad Limon

    (@mlimon)

    Is showing “CONNECTION OK” after enter all keys in settings page?

    And where exactly you say that grand token not showing?

    Plugin Author Mohammad Limon

    (@mlimon)

    Sorry wpbkash is not compatible with give plugin for that you might need to create your own or get help from others thatnsl

    Plugin Author Mohammad Limon

    (@mlimon)

    Hi,

    Yes, this one is new requirement that wasn’t required before.

    btw I added refund transaction and refund status api response in doc generator. So, get latest plugin and try it out.

    Also I add a new video with latest ui that how you can create bKash applicable pdf with bKash api response. https://www.youtube.com/watch?v=5M2BIxccilE

    I would highly recommend you to follow all the steps same to same as video

    Plugin Author Mohammad Limon

    (@mlimon)

    But I just checked it’s working fine now.

    So, if you still facing error, try to enable debug and also enable debug from our plugin setting as well.

    Then provide error log.

Viewing 15 replies - 1 through 15 (of 31 total)