Plugin Directory

Changeset 3136896


Ignore:
Timestamp:
08/17/2024 03:57:32 AM (7 months ago)
Author:
sunnysonic
Message:
  • bug-fixes
  • links in logs are now clickable
  • client email(s) are now shown on quotes and invoices
  • invoices can be marked as paid now directly from the client profile, without the need to go into the edit menu of the invoice. Option only shown when invoice is in status quote or invoice.
Location:
wp-easy-crm
Files:
39 added
4 edited

Legend:

Unmodified
Added
Removed
  • wp-easy-crm/trunk/easy-crm.php

    r3136889 r3136896  
    44 * Plugin Name:       Easy CRM
    55 * Description:       Collect new leads, manage clients, quotations, invoices, tasks and more for your entire team
    6  * Version:           1.0.22
     6 * Version:           1.0.23
    77 * Author:            IT-iCO SRL
    88 * Author URI:        https://it-ico.com
  • wp-easy-crm/trunk/readme.txt

    r3136889 r3136896  
    44Requires at least: 5.9
    55Tested up to: 6.6.1
    6 Stable tag: 1.0.22
     6Stable tag: 1.0.23
    77Contributors: sunnysonic
    88License: GPLv2 or later
     
    6060
    6161== Changelog ==
     62
     63= 1.0.23 =
     64* bug-fixes
     65* links in logs are now clickable
     66* client email(s) are now shown on quotes and invoices
     67* invoices can be marked as paid now directly from the client profile, without the need to go into the edit menu of the invoice. Option only shown when invoice is in status quote or invoice.
    6268
    6369= 1.0.22 =
  • wp-easy-crm/trunk/views/clientProfile.php

    r3136889 r3136896  
    321321
    322322            <?php   
     323
     324function make_links_clickable($text) {
     325    // Match URLs with http:// or https://
     326    $text = preg_replace(
     327        '~(https?://[^\s]+)~',
     328        '<a href="$1" target="_blank" rel="noopener noreferrer">$1</a>',
     329        $text
     330    );
     331
     332    // Match URLs starting with www or ftp
     333    $text = preg_replace(
     334        '~((www|ftp)\.[^\s]+)~',
     335        '<a href="http://$1" target="_blank" rel="noopener noreferrer">$1</a>',
     336        $text
     337    );
     338
     339    // Match URLs without http(s) or www (e.g., google.com)
     340    $text = preg_replace(
     341        '/\b((?:[a-z0-9-]+\.)+[a-z]{2,})(?!\S)/i',
     342        '<a href="http://$1" target="_blank" rel="noopener noreferrer">$1</a>',
     343        $text
     344    );
     345
     346    return $text;
     347}
     348
    323349            if(count($alllogs) > 0){
    324350                foreach($alllogs as $singlelog){
    325351                    echo '<tr>';
    326352                    echo '<td class="column-columnname" style="width:20%">'.esc_html($singlelog['logtitle']).'</td>';
    327                    
    328                     echo '<td class="column-columnname" style="width:50%">'.esc_html($singlelog['logdescription']).'</td>';
     353
     354                    $logdescription_with_links = make_links_clickable($singlelog['logdescription']);
     355                    echo '<td class="column-columnname" style="width:50%">' . wp_kses_post($logdescription_with_links) . '</td>';
     356
     357                    //echo '<td class="column-columnname" style="width:50%">'.esc_html($singlelog['logdescription']).'</td>';
    329358
    330359                    echo '<td class="column-columnname">by '.esc_html($singlelog['createdbyperson']).'</td>';
     
    440469                    echo '<td class="column-columnname">'.esc_html($singlequote['lastupdate_at']).'</td>';
    441470
    442                     echo '<td class="column-columnname editcolumn">
    443                     <a onclick="return eacr_confirmMarkPaidQuote();" href="admin.php?page=wp-easy-crm-addquote&action=markpaid&quoteid='.esc_html($singlequote['id']).'&id='.esc_html($id).'">'.__( 'mark paid', 'wp-easy-crm' ).'</a>
    444                     | <a href="admin.php?page=wp-easy-crm-addquote&action=edit&quoteid='.esc_html($singlequote['id']).'&id='.esc_html($id).'">'.__( 'edit', 'wp-easy-crm' ).'</a>
    445                     | <a onclick="return eacr_confirmDeleteQuote();" href="admin.php?page=wp-easy-crm-addquote&action=delete&quoteid='.esc_html($singlequote['id']).'&id='.esc_html($id).'">'.__( 'delete', 'wp-easy-crm' ).'</a></td>';
     471                    //show mark paid button for easy access
     472                    if(esc_html($singlequote['quotestatus']) == "paid" || esc_html($singlequote['quotestatus']) == "cancelled"){
     473                        echo '<td class="column-columnname editcolumn">
     474                        <a href="admin.php?page=wp-easy-crm-addquote&action=edit&quoteid='.esc_html($singlequote['id']).'&id='.esc_html($id).'">'.__( 'edit', 'wp-easy-crm' ).'</a>
     475                        | <a onclick="return eacr_confirmDeleteQuote();" href="admin.php?page=wp-easy-crm-addquote&action=delete&quoteid='.esc_html($singlequote['id']).'&id='.esc_html($id).'">'.__( 'delete', 'wp-easy-crm' ).'</a></td>';
     476                    }
     477                    else{
     478                        echo '<td class="column-columnname editcolumn">
     479                        <a onclick="return eacr_confirmMarkPaidQuote();" href="admin.php?page=wp-easy-crm-addquote&action=markpaid&quoteid='.esc_html($singlequote['id']).'&id='.esc_html($id).'">'.__( 'mark paid', 'wp-easy-crm' ).'</a>
     480                        | <a href="admin.php?page=wp-easy-crm-addquote&action=edit&quoteid='.esc_html($singlequote['id']).'&id='.esc_html($id).'">'.__( 'edit', 'wp-easy-crm' ).'</a>
     481                        | <a onclick="return eacr_confirmDeleteQuote();" href="admin.php?page=wp-easy-crm-addquote&action=delete&quoteid='.esc_html($singlequote['id']).'&id='.esc_html($id).'">'.__( 'delete', 'wp-easy-crm' ).'</a></td>';
     482                    }
     483                   
    446484                   
    447485                    echo '</tr>';
  • wp-easy-crm/trunk/views/quoteView.php

    r2889534 r3136896  
    131131    <?php echo '<div>'.wp_kses_post($quotedetail['header']).'</div><br/>'?>
    132132    <?php echo '<hr/>'?>
     133    <?php echo $clientdetail['email']?>
    133134    <?php echo '<div>'.wp_kses_post($quotedetail['clientinfo']).'</div>'?>
    134135    <?php echo '<hr/>'?>
Note: See TracChangeset for help on using the changeset viewer.