/**
  * @param EE_Message $message
  * @return string   Actions that can be done on the current message.
  */
 public function column_action(EE_Message $message)
 {
     EE_Registry::instance()->load_helper('MSG_Template');
     $action_links = array('view' => EEH_MSG_Template::get_message_action_link('view', $message), 'error' => EEH_MSG_Template::get_message_action_link('error', $message), 'generate_now' => EEH_MSG_Template::get_message_action_link('generate_now', $message), 'send_now' => EEH_MSG_Template::get_message_action_link('send_now', $message), 'queue_for_resending' => EEH_MSG_Template::get_message_action_link('queue_for_resending', $message), 'view_transaction' => EEH_MSG_Template::get_message_action_link('view_transaction', $message));
     $content = '';
     switch ($message->STS_ID()) {
         case EEM_Message::status_sent:
             $content = $action_links['view'] . $action_links['queue_for_resending'] . $action_links['view_transaction'];
             break;
         case EEM_Message::status_resend:
             $content = $action_links['view'] . $action_links['send_now'] . $action_links['view_transaction'];
             break;
         case EEM_Message::status_retry:
             $content = $action_links['view'] . $action_links['send_now'] . $action_links['error'] . $action_links['view_transaction'];
             break;
         case EEM_Message::status_failed:
         case EEM_Message::status_debug_only:
             $content = $action_links['error'] . $action_links['view_transaction'];
             break;
         case EEM_Message::status_idle:
             $content = $action_links['view'] . $action_links['send_now'] . $action_links['view_transaction'];
             break;
         case EEM_Message::status_incomplete:
             $content = $action_links['generate_now'] . $action_links['view_transaction'];
             break;
     }
     return $content;
 }
 public function extra_list_table_actions($actionlinks, $event)
 {
     if (EE_Registry::instance()->CAP->current_user_can('ee_read_registrations', 'espresso_registrations_reports', $event->ID())) {
         $reports_query_args = array('action' => 'reports', 'EVT_ID' => $event->ID());
         $reports_link = EE_Admin_Page::add_query_args_and_nonce($reports_query_args, REG_ADMIN_URL);
         $actionlinks[] = '<a href="' . $reports_link . '" title="' . esc_attr__('View Report', 'event_espresso') . '"><div class="dashicons dashicons-chart-bar"></div></a>' . "\n\t";
     }
     if (EE_Registry::instance()->CAP->current_user_can('ee_read_global_messages', 'view_filtered_messages')) {
         EE_Registry::instance()->load_helper('MSG_Template');
         $actionlinks[] = EEH_MSG_Template::get_message_action_link('see_notifications_for', null, array('EVT_ID' => $event->ID()));
     }
     return $actionlinks;
 }
    /**
     * column_actions
     *
     * @access public
     * @param \EE_Registration $item
     * @return string
     * @throws \EE_Error
     */
    public function column_actions(EE_Registration $item)
    {
        $attendee = $item->attendee();
        $this->_set_related_details($item);
        //Build row actions
        $view_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array('action' => 'view_registration', '_REG_ID' => $item->ID()), REG_ADMIN_URL);
        $edit_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array('action' => 'edit_attendee', 'post' => $item->attendee_ID()), REG_ADMIN_URL);
        // page=attendees&event_admin_reports=resend_email&registration_id=43653465634&event_id=2&form_action=resend_email
        //$resend_reg_lnk_url_params = array( 'action'=>'resend_registration', '_REG_ID'=>$item->REG_ID );
        $resend_reg_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array('action' => 'resend_registration', '_REG_ID' => $item->ID()), REG_ADMIN_URL, true);
        //Build row actions
        $view_lnk = EE_Registry::instance()->CAP->current_user_can('ee_read_registration', 'espresso_registrations_view_registration', $item->ID()) ? '
			<li>
			<a href="' . $view_lnk_url . '" title="' . esc_attr__('View Registration Details', 'event_espresso') . '" class="tiny-text">
				<div class="dashicons dashicons-clipboard"></div>
			</a>
			</li>' : '';
        $edit_lnk = EE_Registry::instance()->CAP->current_user_can('ee_edit_contacts', 'espresso_registrations_edit_attendee') && $attendee instanceof EE_Attendee ? '
			<li>
			<a href="' . $edit_lnk_url . '" title="' . esc_attr__('Edit Contact Details', 'event_espresso') . '" class="tiny-text">
				<div class="ee-icon ee-icon-user-edit ee-icon-size-16"></div>
			</a>
			</li>' : '';
        $resend_reg_lnk = $attendee instanceof EE_Attendee && EE_Registry::instance()->CAP->current_user_can('ee_send_message', 'espresso_registrations_resend_registration', $item->ID()) ? '
			<li>
			<a href="' . $resend_reg_lnk_url . '" title="' . esc_attr__('Resend Registration Details', 'event_espresso') . '" class="tiny-text">
				<div class="dashicons dashicons-email-alt"></div>
			</a>
			</li>' : '';
        // page=transactions&action=view_transaction&txn=256&_wpnonce=6414da4dbb
        $view_txn_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array('action' => 'view_transaction', 'TXN_ID' => $this->_transaction_details['id']), TXN_ADMIN_URL);
        $view_txn_lnk = EE_Registry::instance()->CAP->current_user_can('ee_read_transaction', 'espresso_transactions_view_transaction', $this->_transaction_details['id']) ? '
			<li>
			<a class="ee-status-color-' . $this->_transaction_details['status'] . ' tiny-text" href="' . $view_txn_lnk_url . '"  title="' . $this->_transaction_details['title_attr'] . '">
				<div class="dashicons dashicons-cart"></div>
			</a>
			</li>' : '';
        //invoice link
        $dl_invoice_lnk = '';
        $dl_invoice_lnk_url = $item->invoice_url();
        //only show invoice link if message type is active.
        if ($attendee instanceof EE_Attendee && $item->is_primary_registrant() && EEH_MSG_Template::is_mt_active('invoice')) {
            $dl_invoice_lnk = '
		<li>
			<a title="' . esc_attr__('View Transaction Invoice', 'event_espresso') . '" target="_blank" href="' . $dl_invoice_lnk_url . '" class="tiny-text">
				<span class="dashicons dashicons-media-spreadsheet ee-icon-size-18"></span>
			</a>
		</li>';
        }
        $filtered_messages_link = '';
        //message list table link (filtered by REG_ID
        if (EE_Registry::instance()->CAP->current_user_can('ee_read_global_messages', 'view_filtered_messages')) {
            $filtered_messages_link = '<li>' . EEH_MSG_Template::get_message_action_link('see_notifications_for', null, array('_REG_ID' => $item->ID())) . '</li>';
        }
        return $this->_action_string($view_lnk . $edit_lnk . $resend_reg_lnk . $view_txn_lnk . $dl_invoice_lnk . $filtered_messages_link, $item, 'ul', 'reg-overview-actions-ul');
    }
    /**
     *    column_actions
     *
     * @param \EE_Transaction $item
     * @return string
     * @throws \EE_Error
     */
    public function column_actions(EE_Transaction $item)
    {
        $registration = $item->primary_registration();
        $attendee = $registration->attendee();
        //Build row actions
        $view_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array('action' => 'view_transaction', 'TXN_ID' => $item->ID()), TXN_ADMIN_URL);
        $dl_invoice_lnk_url = $registration->invoice_url();
        $dl_receipt_lnk_url = $registration->receipt_url();
        $view_reg_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array('action' => 'view_registration', '_REG_ID' => $registration->ID()), REG_ADMIN_URL);
        $send_pay_lnk_url = EE_Admin_Page::add_query_args_and_nonce(array('action' => 'send_payment_reminder', 'TXN_ID' => $item->ID()), TXN_ADMIN_URL);
        $related_messages_link = EEH_MSG_Template::get_message_action_link('see_notifications_for', null, array('TXN_ID' => $item->ID()));
        //Build row actions
        $view_lnk = '
			<li>
				<a href="' . $view_lnk_url . '" title="' . esc_attr__('View Transaction Details', 'event_espresso') . '" class="tiny-text">
					<span class="dashicons dashicons-cart"></span>
				</a>
			</li>';
        $dl_invoice_lnk = '';
        //only show invoice link if message type is active.
        if ($attendee instanceof EE_Attendee && EEH_MSG_Template::is_mt_active('invoice')) {
            $dl_invoice_lnk = '
			<li>
				<a title="' . esc_attr__('View Transaction Invoice', 'event_espresso') . '" target="_blank" href="' . $dl_invoice_lnk_url . '" class="tiny-text">
					<span class="dashicons dashicons-media-spreadsheet ee-icon-size-18"></span>
				</a>
			</li>';
        }
        $dl_receipt_lnk = '';
        //only show receipt link if message type is active.
        if ($attendee instanceof EE_Attendee && EEH_MSG_Template::is_mt_active('receipt')) {
            $dl_receipt_lnk = '
			<li>
				<a title="' . esc_attr__('View Transaction Receipt', 'event_espresso') . '" target="_blank" href="' . $dl_receipt_lnk_url . '" class="tiny-text">
					<span class="dashicons dashicons-media-default ee-icon-size-18"></span>
				</a>
			</li>';
        }
        //only show payment reminder link if the message type is active.
        if (EEH_MSG_Template::is_mt_active('payment_reminder')) {
            $send_pay_lnk = $attendee instanceof EE_Attendee && EE_Registry::instance()->CAP->current_user_can('ee_send_message', 'espresso_transactions_send_payment_reminder') ? '
				<li>
					<a href="' . $send_pay_lnk_url . '" title="' . esc_attr__('Send Payment Reminder', 'event_espresso') . '" class="tiny-text">
						<span class="dashicons dashicons-email-alt"></span>
					</a>
				</li>' : '';
            $send_pay_lnk = $item->get('STS_ID') !== EEM_Transaction::complete_status_code && $item->get('STS_ID') !== EEM_Transaction::overpaid_status_code ? $send_pay_lnk : '';
        } else {
            $send_pay_lnk = '';
        }
        $view_reg_lnk = EE_Registry::instance()->CAP->current_user_can('ee_read_registration', 'espresso_registrations_view_registration', $registration->ID()) ? '
				<li>
					<a href="' . $view_reg_lnk_url . '" title="' . esc_attr__('View Registration Details', 'event_espresso') . '" class="tiny-text">
						<span class="dashicons dashicons-clipboard"></span>
					</a>
				</li>' : '';
        $view_related_messages_lnk = '';
        if (EE_Registry::instance()->CAP->current_user_can('ee_read_global_messages', 'view_filtered_messages')) {
            $view_related_messages_lnk = '<li>' . $related_messages_link . '</li>';
        }
        return $this->_action_string($view_lnk . $dl_invoice_lnk . $dl_receipt_lnk . $view_reg_lnk . $send_pay_lnk . $view_related_messages_lnk, $item, 'ul', 'txn-overview-actions-ul');
    }