Plugin Directory

Changeset 2724198


Ignore:
Timestamp:
05/15/2022 09:12:55 PM (4 years ago)
Author:
wundermatics
Message:

version: 1.9.0

Location:
wunderautomation/trunk
Files:
15 added
1 deleted
84 edited

Legend:

Unmodified
Added
Removed
  • wunderautomation/trunk/admin/metaboxes/components/actions/email.php

    r2668674 r2724198  
    141141    </transition-group>
    142142</div>
    143 
    144 
    145 
  • wunderautomation/trunk/admin/metaboxes/pro-promotion.php

    r2668497 r2724198  
    11<?php
    2 $logos       = content_url('plugins/wunderautomation/admin/assets/images/pro-sidebar-promo-1.7.png');
     2$logos       = content_url('plugins/wunderautomation/admin/assets/images/pro-sidebar-promo-1.9.png');
    33$upgradePage = admin_url('admin.php?page=wunderauto-upgrade');
    44?>
     
    2020    </a>
    2121</p>
    22 
    23 
  • wunderautomation/trunk/admin/upgrade/upgradepage.php

    r2685260 r2724198  
    2424        'desc'  => 'Access fields created with Advanced Custom fields in workflow filters and parameters.',
    2525        'avail' => (object)['free' => true, 'pro' => true],
     26    ],
     27    'BuddyPress / BuddyBoss' => (object)[
     28        'title' => 'BuddyPress / BuddyBoss',
     29        'image' => 'buddypress-600.png',
     30        'desc'  => 'Trigger workflows when users sign up and gets activated, joins or leaves groups. Add or remove ' .
     31            'users from groups and even create new groups using workflow actions.',
     32        'avail' => (object)['free' => false, 'pro' => true],
    2633    ],
    2734    'Slack'                  => (object)[
  • wunderautomation/trunk/languages/wunderautomation.pot

    r2691051 r2724198  
    33msgid ""
    44msgstr ""
    5 "Project-Id-Version: WunderAutomation 1.8.1\n"
     5"Project-Id-Version: WunderAutomation 1.9.0\n"
    66"Report-Msgid-Bugs-To: https://wordpress.org/support/plugin/wunderautomation\n"
    77"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
     
    1010"Content-Type: text/plain; charset=UTF-8\n"
    1111"Content-Transfer-Encoding: 8bit\n"
    12 "POT-Creation-Date: 2022-03-08T21:13:12+00:00\n"
     12"POT-Creation-Date: 2022-05-15T21:03:51+00:00\n"
    1313"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
    1414"X-Generator: WP-CLI 2.6.0\n"
     
    214214#: admin/fields/trigger.php:9
    215215#: admin/metaboxes/trigger.php:25
    216 #: src/Admin.php:687
     216#: src/Admin.php:689
    217217#: src/PostTypes/Workflow.php:60
    218218msgid "Trigger"
     
    552552
    553553#: admin/metaboxes/components/actions/customfield.php:28
    554 #: src/Types/Filters/BaseCustomField.php:38
     554#: src/Types/Filters/BaseCustomField.php:24
    555555msgid "Custom field identifier"
    556556msgstr ""
     
    709709msgstr ""
    710710
     711#: admin/metaboxes/components/actions/log.php:11
     712msgid "Log file"
     713msgstr ""
     714
     715#: admin/metaboxes/components/actions/log.php:15
     716msgid "Use an absolute path or a path relative to WP_CONTENT_DIR"
     717msgstr ""
     718
     719#: admin/metaboxes/components/actions/log.php:25
     720msgid "Log data"
     721msgstr ""
     722
    711723#: admin/metaboxes/components/actions/ordernote.php:14
    712724msgid "Object to add the note to"
     
    821833
    822834#: admin/metaboxes/components/actions/taxonomyterm.php:32
     835#: src/Types/Parameters/Post/Term.php:93
     836#: src/Types/Parameters/Post/Term.php:94
    823837msgid "Taxonomy"
    824838msgstr ""
     
    10051019#: src/Types/Filters/Order/CreatedVia.php:19
    10061020#: src/Types/Filters/Order/CreationDate.php:19
     1021#: src/Types/Filters/Order/CustomerNote.php:20
    10071022#: src/Types/Filters/Order/CustomField.php:19
    10081023#: src/Types/Filters/Order/DownloadableProduct.php:19
     
    10241039#: src/Types/Filters/Order/Total.php:19
    10251040#: src/Types/Filters/Order/VirtualProduct.php:19
     1041#: src/Types/Filters/Order/WCPDFInvoiceDate.php:21
     1042#: src/Types/Filters/Order/WCPDFInvoiceNotes.php:21
     1043#: src/Types/Filters/Order/WCPDFInvoiceNumber.php:21
    10261044msgid "Order"
    10271045msgstr ""
     
    11171135#: admin/metaboxes/save-re-trigger.php:145
    11181136#: admin/metaboxes/save-re-trigger.php:147
    1119 #: src/Admin.php:703
    1120 #: src/Admin.php:760
     1137#: src/Admin.php:705
     1138#: src/Admin.php:762
    11211139msgid "Save"
    11221140msgstr ""
     
    12141232#: src/Admin.php:152
    12151233#: src/Admin.php:193
    1216 #: src/Admin.php:769
     1234#: src/Admin.php:771
    12171235msgid "Upgrade to Pro"
    12181236msgstr ""
     
    12281246msgstr ""
    12291247
    1230 #: src/Admin.php:602
     1248#: src/Admin.php:604
    12311249msgid "Are you sure you want to delete entries from the log?"
    12321250msgstr ""
    12331251
    1234 #: src/Admin.php:603
     1252#: src/Admin.php:605
    12351253msgid "Are you sure you want to remove item [id] from the queue?"
    12361254msgstr ""
    12371255
    1238 #: src/Admin.php:607
     1256#: src/Admin.php:609
    12391257msgid "Are you sure you want to run item [id] immediately"
    12401258msgstr ""
    12411259
    1242 #: src/Admin.php:695
     1260#: src/Admin.php:697
    12431261msgid "Steps"
    12441262msgstr ""
    12451263
    1246 #: src/Admin.php:712
    1247 #: src/Admin.php:736
     1264#: src/Admin.php:714
     1265#: src/Admin.php:738
    12481266msgid "Schedule"
    12491267msgstr ""
    12501268
    1251 #: src/Admin.php:720
     1269#: src/Admin.php:722
    12521270msgid "Options"
    12531271msgstr ""
    12541272
    1255 #: src/Admin.php:728
     1273#: src/Admin.php:730
    12561274msgid "Objects query"
    12571275msgstr ""
    12581276
    1259 #: src/Admin.php:744
     1277#: src/Admin.php:746
    12601278msgid "Filters"
    12611279msgstr ""
    12621280
    1263 #: src/Admin.php:752
     1281#: src/Admin.php:754
    12641282msgid "Workflows using this Re-Trigger"
    12651283msgstr ""
     
    16411659msgstr ""
    16421660
     1661#: src/Types/Actions/ErrorLog.php:15
     1662#: src/Types/Actions/ErrorLog.php:16
     1663msgid "Dump objects to PHP error log"
     1664msgstr ""
     1665
    16431666#: src/Types/Actions/HTMLEmail.php:15
    16441667msgid "Send HTML email"
     
    16471670#: src/Types/Actions/HTMLEmail.php:16
    16481671msgid "Send html email"
     1672msgstr ""
     1673
     1674#: src/Types/Actions/Log.php:15
     1675#: src/Types/Actions/Log.php:16
     1676msgid "Write to a log file"
    16491677msgstr ""
    16501678
     
    17061734msgstr ""
    17071735
    1708 #: src/Types/Filters/BaseAdvancedCustomField.php:20
    1709 #: src/Types/Filters/BaseCustomField.php:20
    1710 #: src/Types/Filters/Comment/AuthorEmail.php:25
    1711 #: src/Types/Filters/Comment/AuthorName.php:25
    1712 #: src/Types/Filters/Comment/Content.php:25
    1713 #: src/Types/Filters/Comment/Type.php:25
    1714 #: src/Types/Filters/ConfirmationLink/Clicks.php:25
    1715 #: src/Types/Filters/ConfirmationLink/Name.php:25
    1716 #: src/Types/Filters/Coupon/Name.php:26
    1717 #: src/Types/Filters/Customer/BaseOrderCount.php:20
    1718 #: src/Types/Filters/Option.php:23
    1719 #: src/Types/Filters/Order/Number.php:25
    1720 #: src/Types/Filters/Order/Total.php:25
    1721 #: src/Types/Filters/Post/Content.php:25
    1722 #: src/Types/Filters/Post/Title.php:25
    1723 #: src/Types/Filters/RefererPost.php:23
    1724 #: src/Types/Filters/RefererUrl.php:23
    1725 #: src/Types/Filters/User/Email.php:31
    1726 #: src/Types/Filters/User/LoginCount.php:25
    1727 #: src/Types/Filters/WebhookParameter.php:23
     1736#: src/Types/Filters/BaseFilter.php:441
     1737#: src/Types/Filters/BaseFilter.php:505
    17281738msgid "Equals"
    17291739msgstr ""
    17301740
    1731 #: src/Types/Filters/BaseAdvancedCustomField.php:21
    1732 #: src/Types/Filters/BaseCustomField.php:21
    1733 #: src/Types/Filters/Comment/AuthorEmail.php:26
    1734 #: src/Types/Filters/Comment/AuthorName.php:26
    1735 #: src/Types/Filters/Comment/Content.php:26
    1736 #: src/Types/Filters/Comment/Type.php:26
    1737 #: src/Types/Filters/ConfirmationLink/Name.php:26
    1738 #: src/Types/Filters/Coupon/Name.php:27
    1739 #: src/Types/Filters/Option.php:24
    1740 #: src/Types/Filters/Order/Number.php:26
    1741 #: src/Types/Filters/Post/Content.php:26
    1742 #: src/Types/Filters/Post/Title.php:26
    1743 #: src/Types/Filters/RefererPost.php:24
    1744 #: src/Types/Filters/RefererUrl.php:24
    1745 #: src/Types/Filters/User/Email.php:32
    1746 #: src/Types/Filters/WebhookParameter.php:24
     1741#: src/Types/Filters/BaseFilter.php:442
    17471742msgid "Does not equal"
    17481743msgstr ""
    17491744
    1750 #: src/Types/Filters/BaseAdvancedCustomField.php:22
    1751 #: src/Types/Filters/BaseCustomField.php:22
    1752 #: src/Types/Filters/Comment/AuthorEmail.php:27
    1753 #: src/Types/Filters/Comment/AuthorName.php:27
    1754 #: src/Types/Filters/Comment/Content.php:27
    1755 #: src/Types/Filters/Comment/Type.php:27
    1756 #: src/Types/Filters/ConfirmationLink/Name.php:27
    1757 #: src/Types/Filters/Coupon/Name.php:28
    1758 #: src/Types/Filters/Option.php:25
    1759 #: src/Types/Filters/Order/Number.php:27
    1760 #: src/Types/Filters/Post/Content.php:27
    1761 #: src/Types/Filters/Post/Title.php:27
    1762 #: src/Types/Filters/RefererPost.php:25
    1763 #: src/Types/Filters/RefererUrl.php:25
    1764 #: src/Types/Filters/User/Email.php:33
    1765 #: src/Types/Filters/WebhookParameter.php:25
     1745#: src/Types/Filters/BaseFilter.php:443
    17661746msgid "Contains"
    17671747msgstr ""
    17681748
    1769 #: src/Types/Filters/BaseAdvancedCustomField.php:23
    1770 #: src/Types/Filters/BaseCustomField.php:23
    1771 #: src/Types/Filters/Comment/AuthorEmail.php:28
    1772 #: src/Types/Filters/Comment/AuthorName.php:28
    1773 #: src/Types/Filters/Comment/Content.php:28
    1774 #: src/Types/Filters/Comment/Type.php:28
    1775 #: src/Types/Filters/ConfirmationLink/Name.php:28
    1776 #: src/Types/Filters/Coupon/Name.php:29
    1777 #: src/Types/Filters/Option.php:26
    1778 #: src/Types/Filters/Order/Number.php:28
    1779 #: src/Types/Filters/Post/Content.php:28
    1780 #: src/Types/Filters/Post/Title.php:28
    1781 #: src/Types/Filters/RefererPost.php:26
    1782 #: src/Types/Filters/RefererUrl.php:26
    1783 #: src/Types/Filters/User/Email.php:34
    1784 #: src/Types/Filters/WebhookParameter.php:26
     1749#: src/Types/Filters/BaseFilter.php:444
    17851750msgid "Does not contain"
    17861751msgstr ""
    17871752
    1788 #: src/Types/Filters/BaseAdvancedCustomField.php:24
    1789 #: src/Types/Filters/BaseCustomField.php:24
    1790 #: src/Types/Filters/Comment/AuthorEmail.php:29
    1791 #: src/Types/Filters/Comment/AuthorName.php:29
    1792 #: src/Types/Filters/Comment/Content.php:29
    1793 #: src/Types/Filters/Comment/Type.php:29
    1794 #: src/Types/Filters/ConfirmationLink/Name.php:29
    1795 #: src/Types/Filters/Coupon/Name.php:30
    1796 #: src/Types/Filters/Option.php:27
    1797 #: src/Types/Filters/Order/Number.php:29
    1798 #: src/Types/Filters/Post/Content.php:29
    1799 #: src/Types/Filters/Post/Title.php:29
    1800 #: src/Types/Filters/RefererPost.php:27
    1801 #: src/Types/Filters/RefererUrl.php:27
    1802 #: src/Types/Filters/User/Email.php:35
    1803 #: src/Types/Filters/WebhookParameter.php:27
     1753#: src/Types/Filters/BaseFilter.php:445
    18041754msgid "Starts with"
    18051755msgstr ""
    18061756
    1807 #: src/Types/Filters/BaseAdvancedCustomField.php:25
    1808 #: src/Types/Filters/BaseCustomField.php:25
    1809 #: src/Types/Filters/Comment/AuthorEmail.php:30
    1810 #: src/Types/Filters/Comment/AuthorName.php:30
    1811 #: src/Types/Filters/Comment/Content.php:30
    1812 #: src/Types/Filters/Comment/Type.php:30
    1813 #: src/Types/Filters/ConfirmationLink/Name.php:30
    1814 #: src/Types/Filters/Coupon/Name.php:31
    1815 #: src/Types/Filters/Option.php:28
    1816 #: src/Types/Filters/Order/Number.php:30
    1817 #: src/Types/Filters/Post/Content.php:30
    1818 #: src/Types/Filters/Post/Title.php:30
    1819 #: src/Types/Filters/RefererPost.php:28
    1820 #: src/Types/Filters/RefererUrl.php:28
    1821 #: src/Types/Filters/User/Email.php:36
    1822 #: src/Types/Filters/WebhookParameter.php:28
     1757#: src/Types/Filters/BaseFilter.php:446
    18231758msgid "Ends with"
    18241759msgstr ""
    18251760
    1826 #: src/Types/Filters/BaseAdvancedCustomField.php:26
    1827 #: src/Types/Filters/BaseCustomField.php:26
    1828 #: src/Types/Filters/Comment/AuthorEmail.php:31
    1829 #: src/Types/Filters/Comment/AuthorName.php:31
    1830 #: src/Types/Filters/Comment/Content.php:31
    1831 #: src/Types/Filters/Comment/Type.php:31
    1832 #: src/Types/Filters/ConfirmationLink/Name.php:31
    1833 #: src/Types/Filters/Coupon/Name.php:32
    1834 #: src/Types/Filters/Option.php:29
    1835 #: src/Types/Filters/Order/CompletedDate.php:27
    1836 #: src/Types/Filters/Order/Number.php:31
    1837 #: src/Types/Filters/Order/PaidDate.php:27
    1838 #: src/Types/Filters/Post/Content.php:31
    1839 #: src/Types/Filters/Post/Title.php:31
    1840 #: src/Types/Filters/RefererPost.php:29
    1841 #: src/Types/Filters/RefererUrl.php:29
    1842 #: src/Types/Filters/WebhookParameter.php:29
     1761#: src/Types/Filters/BaseFilter.php:447
     1762#: src/Types/Filters/BaseFilter.php:466
    18431763msgid "Is empty"
    18441764msgstr ""
    18451765
    1846 #: src/Types/Filters/BaseAdvancedCustomField.php:27
    1847 #: src/Types/Filters/BaseCustomField.php:27
    1848 #: src/Types/Filters/Comment/AuthorEmail.php:32
    1849 #: src/Types/Filters/Comment/AuthorName.php:32
    1850 #: src/Types/Filters/Comment/Content.php:32
    1851 #: src/Types/Filters/Comment/Type.php:32
    1852 #: src/Types/Filters/ConfirmationLink/Name.php:32
    1853 #: src/Types/Filters/Coupon/Name.php:33
    1854 #: src/Types/Filters/Option.php:30
    1855 #: src/Types/Filters/Order/Number.php:32
    1856 #: src/Types/Filters/Post/Content.php:32
    1857 #: src/Types/Filters/Post/Title.php:32
    1858 #: src/Types/Filters/RefererPost.php:30
    1859 #: src/Types/Filters/RefererUrl.php:30
    1860 #: src/Types/Filters/WebhookParameter.php:30
     1766#: src/Types/Filters/BaseFilter.php:448
    18611767msgid "Is not empty"
    18621768msgstr ""
    18631769
    1864 #: src/Types/Filters/BaseAdvancedCustomField.php:28
    1865 #: src/Types/Filters/BaseCustomField.php:28
    1866 #: src/Types/Filters/ConfirmationLink/Clicks.php:27
    1867 #: src/Types/Filters/Customer/BaseOrderCount.php:22
    1868 #: src/Types/Filters/Option.php:31
    1869 #: src/Types/Filters/Order/Number.php:33
    1870 #: src/Types/Filters/Order/Total.php:27
    1871 #: src/Types/Filters/User/LoginCount.php:27
     1770#: src/Types/Filters/BaseFilter.php:449
     1771#: src/Types/Filters/BaseFilter.php:507
    18721772msgid "Greater than or equals"
    18731773msgstr ""
    18741774
    1875 #: src/Types/Filters/BaseAdvancedCustomField.php:29
    1876 #: src/Types/Filters/BaseCustomField.php:29
    1877 #: src/Types/Filters/ConfirmationLink/Clicks.php:28
    1878 #: src/Types/Filters/Customer/BaseOrderCount.php:23
    1879 #: src/Types/Filters/Option.php:32
    1880 #: src/Types/Filters/Order/Number.php:34
    1881 #: src/Types/Filters/Order/Total.php:28
    1882 #: src/Types/Filters/User/LoginCount.php:28
     1775#: src/Types/Filters/BaseFilter.php:450
     1776#: src/Types/Filters/BaseFilter.php:508
    18831777msgid "Lower than or equals"
    18841778msgstr ""
    18851779
    1886 #: src/Types/Filters/BaseAdvancedCustomField.php:30
    1887 #: src/Types/Filters/BaseCustomField.php:30
    1888 #: src/Types/Filters/Comment/Status.php:25
    1889 #: src/Types/Filters/Comment/Type.php:33
    1890 #: src/Types/Filters/Initiator.php:23
    1891 #: src/Types/Filters/Option.php:33
    1892 #: src/Types/Filters/Order/BillingCity.php:29
    1893 #: src/Types/Filters/Order/BillingCompany.php:29
    1894 #: src/Types/Filters/Order/BillingCountry.php:26
    1895 #: src/Types/Filters/Order/BillingState.php:26
    1896 #: src/Types/Filters/Order/CreatedVia.php:25
    1897 #: src/Types/Filters/Order/Number.php:35
    1898 #: src/Types/Filters/Order/PaymentMethod.php:27
    1899 #: src/Types/Filters/Order/ShippingCity.php:29
    1900 #: src/Types/Filters/Order/ShippingCompany.php:29
    1901 #: src/Types/Filters/Order/ShippingCountry.php:26
    1902 #: src/Types/Filters/Order/ShippingMethod.php:26
    1903 #: src/Types/Filters/Order/ShippingState.php:26
    1904 #: src/Types/Filters/Order/ShippingZone.php:26
    1905 #: src/Types/Filters/Order/Status.php:25
    1906 #: src/Types/Filters/Post/Owner.php:25
    1907 #: src/Types/Filters/Post/Status.php:25
    1908 #: src/Types/Filters/Post/Type.php:25
    1909 #: src/Types/Filters/RefererPost.php:31
    1910 #: src/Types/Filters/RefererUrl.php:31
    1911 #: src/Types/Filters/User/Role.php:31
    1912 #: src/Types/Filters/WebhookParameter.php:31
    1913 #: src/Types/Filters/Weekday.php:23
     1780#: src/Types/Filters/BaseFilter.php:451
     1781#: src/Types/Filters/BaseFilter.php:478
    19141782msgid "Is one of"
    19151783msgstr ""
    19161784
    1917 #: src/Types/Filters/BaseAdvancedCustomField.php:31
    1918 #: src/Types/Filters/BaseCustomField.php:31
    1919 #: src/Types/Filters/Comment/Status.php:26
    1920 #: src/Types/Filters/Comment/Type.php:34
    1921 #: src/Types/Filters/Initiator.php:24
    1922 #: src/Types/Filters/Option.php:34
    1923 #: src/Types/Filters/Order/BillingCity.php:30
    1924 #: src/Types/Filters/Order/BillingCompany.php:30
    1925 #: src/Types/Filters/Order/BillingCountry.php:27
    1926 #: src/Types/Filters/Order/BillingState.php:27
    1927 #: src/Types/Filters/Order/CreatedVia.php:26
    1928 #: src/Types/Filters/Order/Number.php:36
    1929 #: src/Types/Filters/Order/PaymentMethod.php:28
    1930 #: src/Types/Filters/Order/ShippingCity.php:30
    1931 #: src/Types/Filters/Order/ShippingCompany.php:30
    1932 #: src/Types/Filters/Order/ShippingCountry.php:27
    1933 #: src/Types/Filters/Order/ShippingMethod.php:27
    1934 #: src/Types/Filters/Order/ShippingState.php:27
    1935 #: src/Types/Filters/Order/ShippingZone.php:27
    1936 #: src/Types/Filters/Order/Status.php:26
    1937 #: src/Types/Filters/Post/Owner.php:26
    1938 #: src/Types/Filters/Post/Status.php:26
    1939 #: src/Types/Filters/Post/Type.php:26
    1940 #: src/Types/Filters/RefererPost.php:32
    1941 #: src/Types/Filters/RefererUrl.php:32
    1942 #: src/Types/Filters/User/Role.php:32
    1943 #: src/Types/Filters/WebhookParameter.php:32
    1944 #: src/Types/Filters/Weekday.php:24
     1785#: src/Types/Filters/BaseFilter.php:452
     1786#: src/Types/Filters/BaseFilter.php:479
    19451787msgid "Is not one of"
     1788msgstr ""
     1789
     1790#: src/Types/Filters/BaseFilter.php:464
     1791msgid "Is before"
     1792msgstr ""
     1793
     1794#: src/Types/Filters/BaseFilter.php:465
     1795msgid "Is after"
     1796msgstr ""
     1797
     1798#: src/Types/Filters/BaseFilter.php:491
     1799msgid "Contains any"
     1800msgstr ""
     1801
     1802#: src/Types/Filters/BaseFilter.php:492
     1803msgid "Contains all"
     1804msgstr ""
     1805
     1806#: src/Types/Filters/BaseFilter.php:493
     1807msgid "Contains none"
     1808msgstr ""
     1809
     1810#: src/Types/Filters/BaseFilter.php:506
     1811msgid "Not equals"
    19461812msgstr ""
    19471813
     
    19871853#: src/Types/Filters/Comment/CreationDate.php:21
    19881854msgid "Filter comments based on creation date."
    1989 msgstr ""
    1990 
    1991 #: src/Types/Filters/Comment/CreationDate.php:25
    1992 #: src/Types/Filters/Order/CompletedDate.php:25
    1993 #: src/Types/Filters/Order/CreationDate.php:25
    1994 #: src/Types/Filters/Order/PaidDate.php:25
    1995 #: src/Types/Filters/Post/CreationDate.php:25
    1996 #: src/Types/Filters/Post/ModifiedDate.php:25
    1997 #: src/Types/Filters/User/CreationDate.php:25
    1998 #: src/Types/Filters/User/LastLogin.php:25
    1999 msgid "Before"
    2000 msgstr ""
    2001 
    2002 #: src/Types/Filters/Comment/CreationDate.php:26
    2003 #: src/Types/Filters/Order/CompletedDate.php:26
    2004 #: src/Types/Filters/Order/CreationDate.php:26
    2005 #: src/Types/Filters/Order/PaidDate.php:26
    2006 #: src/Types/Filters/Post/CreationDate.php:26
    2007 #: src/Types/Filters/Post/ModifiedDate.php:26
    2008 #: src/Types/Filters/User/CreationDate.php:26
    2009 #: src/Types/Filters/User/LastLogin.php:26
    2010 msgid "After"
    20111855msgstr ""
    20121856
     
    20351879
    20361880#: src/Types/Filters/Comment/IsCustomerNote.php:28
    2037 #: src/Types/Filters/Comment/IsOrderStatusNote.php:31
     1881#: src/Types/Filters/Comment/IsOrderStatusNote.php:30
    20381882#: src/Types/Filters/Comment/IsWooCommerceSystemNote.php:31
    20391883#: src/Types/Filters/Customer/IsLastOrder.php:28
     
    20431887
    20441888#: src/Types/Filters/Comment/IsCustomerNote.php:29
    2045 #: src/Types/Filters/Comment/IsOrderStatusNote.php:32
     1889#: src/Types/Filters/Comment/IsOrderStatusNote.php:31
    20461890#: src/Types/Filters/Comment/IsWooCommerceSystemNote.php:32
    20471891#: src/Types/Filters/Customer/IsLastOrder.php:29
     
    20911935#: src/Types/Filters/ConfirmationLink/Clicks.php:21
    20921936msgid "Filter based on nr of previous clicks on the confirmation link."
    2093 msgstr ""
    2094 
    2095 #: src/Types/Filters/ConfirmationLink/Clicks.php:26
    2096 #: src/Types/Filters/Customer/BaseOrderCount.php:21
    2097 #: src/Types/Filters/Order/Total.php:26
    2098 #: src/Types/Filters/User/LoginCount.php:26
    2099 msgid "Not equals"
    21001937msgstr ""
    21011938
     
    21842021msgstr ""
    21852022
    2186 #: src/Types/Filters/Date.php:23
    2187 #: src/Types/Filters/TimeOfDay.php:23
    2188 msgid "Is before"
    2189 msgstr ""
    2190 
    2191 #: src/Types/Filters/Date.php:24
    2192 #: src/Types/Filters/TimeOfDay.php:24
    2193 msgid "Is after"
    2194 msgstr ""
    2195 
    21962023#: src/Types/Filters/DateBetween.php:18
    21972024msgid "Between time / dates"
     
    22392066msgstr ""
    22402067
    2241 #: src/Types/Filters/Option.php:42
     2068#: src/Types/Filters/Option.php:28
    22422069#: src/Types/Parameters/Option.php:26
    22432070msgid "Option name"
     
    23132140msgstr ""
    23142141
     2142#: src/Types/Filters/Order/CustomerNote.php:21
     2143msgid "Customer note"
     2144msgstr ""
     2145
     2146#: src/Types/Filters/Order/CustomerNote.php:22
     2147msgid "Filter WooCommerce orders based customer note."
     2148msgstr ""
     2149
    23152150#: src/Types/Filters/Order/CustomField.php:21
    23162151msgid "Filter object based on value of WooCommerce order custom field."
     
    23782213msgstr ""
    23792214
    2380 #: src/Types/Filters/Order/ProductCategories.php:25
    2381 #: src/Types/Filters/Order/Products.php:25
    2382 #: src/Types/Filters/Order/ProductTags.php:25
    2383 #: src/Types/Filters/Post/Categories.php:25
    2384 #: src/Types/Filters/Post/Tags.php:25
    2385 msgid "Contains any"
    2386 msgstr ""
    2387 
    2388 #: src/Types/Filters/Order/ProductCategories.php:26
    2389 #: src/Types/Filters/Order/Products.php:26
    2390 #: src/Types/Filters/Order/ProductTags.php:26
    2391 #: src/Types/Filters/Post/Categories.php:26
    2392 #: src/Types/Filters/Post/Tags.php:26
    2393 msgid "Contains all"
    2394 msgstr ""
    2395 
    2396 #: src/Types/Filters/Order/ProductCategories.php:27
    2397 #: src/Types/Filters/Order/Products.php:27
    2398 #: src/Types/Filters/Order/ProductTags.php:27
    2399 #: src/Types/Filters/Post/Categories.php:27
    2400 #: src/Types/Filters/Post/Tags.php:27
    2401 msgid "Contains none"
    2402 msgstr ""
    2403 
    24042215#: src/Types/Filters/Order/Products.php:20
    24052216msgid "Order products"
     
    24262237msgstr ""
    24272238
    2428 #: src/Types/Filters/Order/ProductTypes.php:25
    2429 msgid "Contains at least one of"
    2430 msgstr ""
    2431 
    2432 #: src/Types/Filters/Order/ProductTypes.php:26
    2433 msgid "Does not contain any of"
    2434 msgstr ""
    2435 
    2436 #: src/Types/Filters/Order/ProductTypes.php:27
    2437 msgid "Contains only"
    2438 msgstr ""
    2439 
    24402239#: src/Types/Filters/Order/ShippingCity.php:20
    24412240msgid "Order shipping city"
     
    25122311#: src/Types/Filters/Order/VirtualProduct.php:30
    25132312msgid "Only virtual products in order"
     2313msgstr ""
     2314
     2315#: src/Types/Filters/Order/WCPDFInvoiceDate.php:22
     2316#: src/Types/Parameters/Order/WCPDFInvoiceDate.php:23
     2317msgid "WCPDF Invoice date"
     2318msgstr ""
     2319
     2320#: src/Types/Filters/Order/WCPDFInvoiceDate.php:23
     2321msgid "Filter orders based on WCPDF invoice date."
     2322msgstr ""
     2323
     2324#: src/Types/Filters/Order/WCPDFInvoiceNotes.php:22
     2325#: src/Types/Parameters/Order/WCPDFInvoiceNotes.php:22
     2326msgid "WCPDF Invoice notes"
     2327msgstr ""
     2328
     2329#: src/Types/Filters/Order/WCPDFInvoiceNotes.php:23
     2330msgid "Filter orders based on WCPDF invoice notes."
     2331msgstr ""
     2332
     2333#: src/Types/Filters/Order/WCPDFInvoiceNumber.php:22
     2334#: src/Types/Parameters/Order/WCPDFInvoiceNumber.php:22
     2335msgid "WCPDF Invoice number"
     2336msgstr ""
     2337
     2338#: src/Types/Filters/Order/WCPDFInvoiceNumber.php:23
     2339msgid "Filter orders based on WCPDF invoice number."
    25142340msgstr ""
    25152341
     
    26562482msgstr ""
    26572483
    2658 #: src/Types/Filters/WebhookParameter.php:40
     2484#: src/Types/Filters/WebhookParameter.php:28
    26592485msgid "Webhook parameter name"
    26602486msgstr ""
     
    26682494msgstr ""
    26692495
     2496#: src/Types/Filters/Weekday.php:36
     2497msgid "Monday"
     2498msgstr ""
     2499
    26702500#: src/Types/Filters/Weekday.php:40
    2671 msgid "Monday"
     2501msgid "Tuesday"
    26722502msgstr ""
    26732503
    26742504#: src/Types/Filters/Weekday.php:44
    2675 msgid "Tuesday"
     2505msgid "Wednesday"
    26762506msgstr ""
    26772507
    26782508#: src/Types/Filters/Weekday.php:48
    2679 msgid "Wednesday"
     2509msgid "Thursday"
    26802510msgstr ""
    26812511
    26822512#: src/Types/Filters/Weekday.php:52
    2683 msgid "Thursday"
     2513msgid "Friday"
    26842514msgstr ""
    26852515
    26862516#: src/Types/Filters/Weekday.php:56
    2687 msgid "Friday"
     2517msgid "Saturday"
    26882518msgstr ""
    26892519
    26902520#: src/Types/Filters/Weekday.php:60
    2691 msgid "Saturday"
    2692 msgstr ""
    2693 
    2694 #: src/Types/Filters/Weekday.php:64
    26952521msgid "Sunday"
    26962522msgstr ""
     
    29162742msgstr ""
    29172743
     2744#: src/Types/Parameters/Order/CustomerNote.php:21
     2745msgid "Customer note from the WooCommerce order"
     2746msgstr ""
     2747
    29182748#: src/Types/Parameters/Order/CustomField.php:21
    29192749msgid "WooCommerce order custom field"
     
    30582888msgstr ""
    30592889
     2890#: src/Types/Parameters/Post/Term.php:27
     2891msgid "WordPress taxonomy"
     2892msgstr ""
     2893
     2894#: src/Types/Parameters/Post/Term.php:109
     2895msgid "Multiple values"
     2896msgstr ""
     2897
     2898#: src/Types/Parameters/Post/Term.php:110
     2899msgid "Determines how to treat mulitple taxonomy terms"
     2900msgstr ""
     2901
     2902#: src/Types/Parameters/Post/Term.php:116
     2903msgid "Only first term"
     2904msgstr ""
     2905
     2906#: src/Types/Parameters/Post/Term.php:117
     2907msgid "Comma separated list"
     2908msgstr ""
     2909
     2910#: src/Types/Parameters/Post/Term.php:118
     2911msgid "JSON formatted list"
     2912msgstr ""
     2913
     2914#: src/Types/Parameters/Post/Term.php:121
     2915msgid "Comma separated list, space after comma"
     2916msgstr ""
     2917
     2918#: src/Types/Parameters/Post/Term.php:123
     2919msgid "Tab separated list"
     2920msgstr ""
     2921
    30602922#: src/Types/Parameters/Post/Title.php:26
    30612923msgid "WordPress post Title"
     
    31042966#: src/Types/Parameters/Shipping/LastName.php:21
    31052967msgid "Shipping last name from the WooCommerce order"
     2968msgstr ""
     2969
     2970#: src/Types/Parameters/Shipping/Phone.php:22
     2971msgid "Shipping Phone from the WooCommerce order"
    31062972msgstr ""
    31072973
     
    35643430#: src/Types/Triggers/User/Created.php:20
    35653431#: src/Types/Triggers/User/Login.php:20
    3566 #: src/Types/Triggers/User/ProfileUpdated.php:20
     3432#: src/Types/Triggers/User/ProfileUpdated.php:27
    35673433#: src/Types/Triggers/User/RoleChanged.php:20
    35683434msgid "Users"
     
    35853451msgstr ""
    35863452
    3587 #: src/Types/Triggers/User/ProfileUpdated.php:19
     3453#: src/Types/Triggers/User/ProfileUpdated.php:26
    35883454msgid "User profile updated"
    35893455msgstr ""
    35903456
    3591 #: src/Types/Triggers/User/ProfileUpdated.php:21
     3457#: src/Types/Triggers/User/ProfileUpdated.php:28
    35923458msgid "This trigger fires when a user profile is updated"
    35933459msgstr ""
    35943460
    3595 #: src/Types/Triggers/User/ProfileUpdated.php:26
     3461#: src/Types/Triggers/User/ProfileUpdated.php:33
    35963462msgid "The user who's profile was updated"
    35973463msgstr ""
  • wunderautomation/trunk/readme.txt

    r2691051 r2724198  
    55Tested up to: 5.9
    66Requires PHP: 7.0
    7 Stable tag: 1.8.1
     7Stable tag: 1.9.0
    88License: GPLv2 or later
    99
     
    3636WunderAutomation supports WooCommerce out of the box so it can trigger on WooCommerce events such as receiving a new order and perform actions like adding an order note or changing the order status.
    3737
     38From version 1.9.0 we also support the popular WooCommerce PDF Invoices & Packing Slips plugin so that you can use invoice numbers, date and notes into a workflow.
     39
    3840=== Advanced Custom Fields ===
    3941
     
    6163* MailChimp
    6264* MailPoet
     65* BuddyPress
    6366* Slack
    6467* Telegram
     
    104107* Change post / comment status
    105108* Add / remove taxonomy term (tag or comment)
     109* Write a line to a log file
    106110* Send plain text, HTML or WooCommerece email
    107111* Run a http request to a remote REST API
     
    141145
    142146== Changelog ==
     147
     148= 1.9.0 =
     149* Feature: New action to add rows to a text (log) file.
     150* Feature: New action to add debug info to PHP error log.
     151* Feature: Support for WooCommerce PDF Invoices & Packing Slips (filters and parameters).
     152* Feature: New parameter type Term, allows outputting any taxonomy term(s) as a parameter.
     153* Feature: Adds customer_note and shipping_phone as WooCommerce order parameters.
     154* Fixes: Issue with setting owner via login name for Create Post action.
     155* PRO: Adds support for BuddyPress and BuddyBoss.
     156* PRO: Fix issue with MailPoet triggers firing multiple times.
    143157
    144158= 1.8.1 =
  • wunderautomation/trunk/src/Admin.php

    r2685260 r2724198  
    341341        include(WUNDERAUTO_BASE . '/admin/metaboxes/components/actions/ordernote.php');
    342342        include(WUNDERAUTO_BASE . '/admin/metaboxes/components/actions/addobjects.php');
     343        include(WUNDERAUTO_BASE . '/admin/metaboxes/components/actions/log.php');
     344
    343345        //include(WUNDERAUTO_BASE . '/admin/fields/actions/canceldelayedworkflows.php');
    344346        //include(WUNDERAUTO_BASE . '/admin/fields/actions/runworkflow.php');
  • wunderautomation/trunk/src/EvalMath.php

    r2691051 r2724198  
    460460                $allow_neg = true;
    461461                //===============
    462             } elseif ($ex and !$expecting_op) { // do we now have a function/variable/number?
     462            } elseif ($ex and !$expecting_op) { // @phpstan-ignore-line do we now have a function/variable/number?
    463463                $expecting_op = true;
    464464                $val          = $match[1];
  • wunderautomation/trunk/src/Loader.php

    r2685260 r2724198  
    9090
    9191        // Webhook
    92         if (isset($options['enable_webhook_trigger']) && $options['enable_webhook_trigger'] === 1) {
     92        if (isset($options['enable_webhook_trigger']) && $options['enable_webhook_trigger']) {
    9393            wa_add_trigger(['\\WunderAuto\\Types\Triggers\\Webhook\\Webhook']);
    9494            wa_add_filter(['\\WunderAuto\\Types\\Filters\\WebhookParameter']);
     
    114114            wa_add_filter($this->getClasses('acf-filters'));
    115115            wa_add_parameter($this->getClasses('acf-parameters'));
     116        }
     117
     118        // WooCommerce PDF Invoices and Packing Slips
     119        if (class_exists('WPO_WCPDF')) {
     120            wa_add_filter($this->getClasses('wcpdf-filters'));
     121            wa_add_parameter($this->getClasses('wcpdf-parameters'));
    116122        }
    117123
     
    214220                    '\\WunderAuto\\Types\\Actions\\CancelDelayedWorkflows',
    215221                    '\\WunderAuto\\Types\\Actions\\AddObjects',
     222                    '\\WunderAuto\\Types\\Actions\\ErrorLog',
     223                    '\\WunderAuto\\Types\\Actions\\Log',
    216224                    //'\\WunderAuto\\Types\\Actions\\RunWorkflow',
    217225                ];
     
    230238                    '\\WunderAuto\\Types\\Parameters\\Post\\AdminUrl',
    231239                    '\\WunderAuto\\Types\\Parameters\\Post\\CustomField',
     240                    '\\WunderAuto\\Types\\Parameters\\Post\\Term',
    232241
    233242                    '\\WunderAuto\\Types\\Parameters\\User\\Id',
     
    296305                    '\\WunderAuto\\Types\\Filters\\Order\\CustomField',
    297306                    '\\WunderAuto\\Types\\Filters\\Order\\AdvancedCustomField',
     307                    '\\WunderAuto\\Types\\Filters\\Order\\CustomerNote',
    298308
    299309                    '\\WunderAuto\\Types\\Filters\\Order\\BillingEmail',
     
    332342                    '\\WunderAuto\\Types\\Parameters\\Order\\Status',
    333343                    '\\WunderAuto\\Types\\Parameters\\Order\\Email',
     344                    '\\WunderAuto\\Types\\Parameters\\Order\\CustomerNote',
    334345                    '\\WunderAuto\\Types\\Parameters\\Order\\SubTotal',
    335346                    '\\WunderAuto\\Types\\Parameters\\Order\\CartTotal',
     
    373384                    '\\WunderAuto\\Types\\Parameters\\Billing\\Country',
    374385                    '\\WunderAuto\\Types\\Parameters\\Billing\\State',
     386                    '\\WunderAuto\\Types\\Parameters\\Shipping\\Phone',
    375387                    '\\WunderAuto\\Types\\Parameters\\Shipping\\FirstName',
    376388                    '\\WunderAuto\\Types\\Parameters\\Shipping\\LastName',
     
    419431                    '\\WunderAuto\\Types\\Parameters\\Comment\\AdvancedCustomField',
    420432                ];
     433            case 'wcpdf-filters':
     434                return [
     435                        '\\WunderAuto\\Types\\Filters\\Order\\WCPDFInvoiceNumber',
     436                        '\\WunderAuto\\Types\\Filters\\Order\\WCPDFInvoiceDate',
     437                        '\\WunderAuto\\Types\\Filters\\Order\\WCPDFInvoiceNotes',
     438                    ];
     439            case 'wcpdf-parameters':
     440                return [
     441                    '\\WunderAuto\\Types\\Parameters\\Order\\WCPDFInvoiceNumber',
     442                    '\\WunderAuto\\Types\\Parameters\\Order\\WCPDFInvoiceDate',
     443                    '\\WunderAuto\\Types\\Parameters\\Order\\WCPDFInvoiceNotes',
     444                ];
    421445            case 'pro-parameters':
    422446                return [
  • wunderautomation/trunk/src/Tokenizer/Stream.php

    r2685260 r2724198  
    7272    {
    7373        // onlyFirst, advance
    74         return $this->scan($args, true, true); // @phpstan-ignore-line
     74        return $this->scan($args, true, true);
    7575    }
    7676
     
    144144    {
    145145        // onlyFirst, advance, strings
    146         return $this->scan($args, true, true, true); // @phpstan-ignore-line
     146        return $this->scan($args, true, true, true);
    147147    }
    148148
     
    157157    {
    158158        // advance
    159         return $this->scan($args, false, true); // @phpstan-ignore-line
     159        return $this->scan($args, false, true);
    160160    }
    161161
     
    170170    {
    171171        // advance, until
    172         return $this->scan($args, false, true, false, true); // @phpstan-ignore-line
     172        return $this->scan($args, false, true, false, true);
    173173    }
    174174
     
    199199    {
    200200        // onlyFirst, advance
    201         if ($token = $this->scan($args, true, true)) { // @phpstan-ignore-line
     201        if ($token = $this->scan($args, true, true)) {
    202202            return $token;
    203203        }
     
    236236    {
    237237        // advance, strings
    238         return $this->scan($args, false, true, true); // @phpstan-ignore-line
     238        return $this->scan($args, false, true, true);
    239239    }
    240240
     
    249249    {
    250250        // advance, strings, until
    251         return $this->scan($args, false, true, true, true); // @phpstan-ignore-line
     251        return $this->scan($args, false, true, true, true);
    252252    }
    253253
     
    279279    {
    280280        // onlyFirst
    281         return (bool)$this->scan($args, true, false); // @phpstan-ignore-line
     281        return (bool)$this->scan($args, true, false);
    282282    }
    283283
     
    292292    {
    293293        // onlyFirst, prev
    294         return (bool)$this->scan($args, true, false, false, false, true); // @phpstan-ignore-line
     294        return (bool)$this->scan($args, true, false, false, false, true);
    295295    }
    296296
  • wunderautomation/trunk/src/Types/Actions/CreatePost.php

    r2691051 r2724198  
    6666
    6767        if (!is_numeric($owner)) {
     68            $user  = get_user_by('login', $owner);
    6869            $owner = 0;
    69             $user  = get_user_by('login', $owner);
    7070            if ($user) {
    7171                $owner = $user->ID;
  • wunderautomation/trunk/src/Types/Filters/BaseAdvancedCustomField.php

    r2685260 r2724198  
    1717        parent::__construct();
    1818
    19         $this->operators = [
    20             'eq'         => __('Equals', 'wunderauto'),
    21             'neq'        => __('Does not equal', 'wunderauto'),
    22             'contains'   => __('Contains', 'wunderauto'),
    23             'ncontains'  => __('Does not contain', 'wunderauto'),
    24             'startswith' => __('Starts with', 'wunderauto'),
    25             'endswith'   => __('Ends with', 'wunderauto'),
    26             'empty'      => __('Is empty', 'wunderauto'),
    27             'nempty'     => __('Is not empty', 'wunderauto'),
    28             'gte'        => __('Greater than or equals', 'wunderauto'),
    29             'lte'        => __('Lower than or equals', 'wunderauto'),
    30             'isoneof'    => __('Is one of', 'wunderauto'),
    31             'isnotoneof' => __('Is not one of', 'wunderauto'),
    32         ];
    33 
     19        $this->operators               = $this->stringOperators();
    3420        $this->usesAdvancedCustomField = true;
    3521        $this->inputType               = 'scalar';
  • wunderautomation/trunk/src/Types/Filters/BaseCustomField.php

    r2666447 r2724198  
    1717        parent::__construct();
    1818
    19         $this->operators = [
    20             'eq'         => __('Equals', 'wunderauto'),
    21             'neq'        => __('Does not equal', 'wunderauto'),
    22             'contains'   => __('Contains', 'wunderauto'),
    23             'ncontains'  => __('Does not contain', 'wunderauto'),
    24             'startswith' => __('Starts with', 'wunderauto'),
    25             'endswith'   => __('Ends with', 'wunderauto'),
    26             'empty'      => __('Is empty', 'wunderauto'),
    27             'nempty'     => __('Is not empty', 'wunderauto'),
    28             'gte'        => __('Greater than or equals', 'wunderauto'),
    29             'lte'        => __('Lower than or equals', 'wunderauto'),
    30             'isoneof'    => __('Is one of', 'wunderauto'),
    31             'isnotoneof' => __('Is not one of', 'wunderauto'),
    32         ];
    33 
     19        $this->operators = $this->stringOperators();
    3420        $this->inputType = 'scalar';
    3521        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/BaseFilter.php

    r2666447 r2724198  
    44
    55use Exception;
     6use WC_DateTime;
    67use WunderAuto\IPTools\Range;
    78use WunderAuto\JSONPath\JSONPath;
     
    143144     * Used by Filter child classes to simplify filter evaluations
    144145     *
    145      * @param array<int, string|int>|string|float|int $actualValue
     146     * @param WC_DateTime|array<int, string|int>|string|float|int $actualValue
    146147     *
    147148     * @return bool
     
    294295                    break;
    295296                case 'allinlist':
    296                     $ret = count(array_intersect($actualValue, $codes)) == count($actualValue);
     297                    $ret = count(array_intersect($actualValue, $codes)) == count($codes);
    297298                    break;
    298299            }
     
    429430        return $actualValue;
    430431    }
     432
     433    /**
     434     * Standard operators for strings
     435     *
     436     * @return array<string, string>
     437     */
     438    protected function stringOperators()
     439    {
     440        return [
     441            'eq'         => __('Equals', 'wunderauto'),
     442            'neq'        => __('Does not equal', 'wunderauto'),
     443            'contains'   => __('Contains', 'wunderauto'),
     444            'ncontains'  => __('Does not contain', 'wunderauto'),
     445            'startswith' => __('Starts with', 'wunderauto'),
     446            'endswith'   => __('Ends with', 'wunderauto'),
     447            'empty'      => __('Is empty', 'wunderauto'),
     448            'nempty'     => __('Is not empty', 'wunderauto'),
     449            'gte'        => __('Greater than or equals', 'wunderauto'),
     450            'lte'        => __('Lower than or equals', 'wunderauto'),
     451            'isoneof'    => __('Is one of', 'wunderauto'),
     452            'isnotoneof' => __('Is not one of', 'wunderauto'),
     453        ];
     454    }
     455
     456    /**
     457     * Standard operators for dates
     458     *
     459     * @return array<string, string>
     460     */
     461    protected function dateOperators()
     462    {
     463        return [
     464            'datebefore' => __('Is before', 'wunderauto'),
     465            'dateafter'  => __('Is after', 'wunderauto'),
     466            'dateempty'  => __('Is empty', 'wunderauto'),
     467        ];
     468    }
     469
     470    /**
     471     * Standard operators for single value in set
     472     *
     473     * @return array<string, string>
     474     */
     475    protected function setOperators()
     476    {
     477        return [
     478            'isoneof'    => __('Is one of', 'wunderauto'),
     479            'isnotoneof' => __('Is not one of', 'wunderauto'),
     480        ];
     481    }
     482
     483    /**
     484     * Standard operators for multiple values in set
     485     *
     486     * @return array<string, string>
     487     */
     488    protected function multiSetOperators()
     489    {
     490        return [
     491            'anyinlist'  => __('Contains any', 'wunderauto'),
     492            'noneinlist' => __('Contains all', 'wunderauto'),
     493            'allinlist'  => __('Contains none', 'wunderauto'),
     494        ];
     495    }
     496
     497    /**
     498     * Standard operators for numbers
     499     *
     500     * @return array<string, string>
     501     */
     502    protected function numberOperators()
     503    {
     504        return [
     505            'eq'  => __('Equals', 'wunderauto'),
     506            'neq' => __('Not equals', 'wunderauto'),
     507            'gte' => __('Greater than or equals', 'wunderauto'),
     508            'lte' => __('Lower than or equals', 'wunderauto'),
     509        ];
     510    }
    431511}
  • wunderautomation/trunk/src/Types/Filters/Comment/AuthorEmail.php

    r2666447 r2724198  
    2222        $this->objects     = ['comment'];
    2323
    24         $this->operators = [
    25             'eq'         => __('Equals', 'wunderauto'),
    26             'neq'        => __('Does not equal', 'wunderauto'),
    27             'contains'   => __('Contains', 'wunderauto'),
    28             'ncontains'  => __('Does not contain', 'wunderauto'),
    29             'startswith' => __('Starts with', 'wunderauto'),
    30             'endswith'   => __('Ends with', 'wunderauto'),
    31             'empty'      => __('Is empty', 'wunderauto'),
    32             'nempty'     => __('Is not empty', 'wunderauto'),
    33         ];
    34 
     24        $this->operators = $this->stringOperators();
    3525        $this->inputType = 'scalar';
    3626        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Comment/AuthorName.php

    r2666447 r2724198  
    2222        $this->objects     = ['comment'];
    2323
    24         $this->operators = [
    25             'eq'         => __('Equals', 'wunderauto'),
    26             'neq'        => __('Does not equal', 'wunderauto'),
    27             'contains'   => __('Contains', 'wunderauto'),
    28             'ncontains'  => __('Does not contain', 'wunderauto'),
    29             'startswith' => __('Starts with', 'wunderauto'),
    30             'endswith'   => __('Ends with', 'wunderauto'),
    31             'empty'      => __('Is empty', 'wunderauto'),
    32             'nempty'     => __('Is not empty', 'wunderauto'),
    33         ];
    34 
     24        $this->operators = $this->stringOperators();
    3525        $this->inputType = 'scalar';
    3626        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Comment/Content.php

    r2666447 r2724198  
    2222        $this->objects     = ['comment'];
    2323
    24         $this->operators = [
    25             'eq'         => __('Equals', 'wunderauto'),
    26             'neq'        => __('Does not equal', 'wunderauto'),
    27             'contains'   => __('Contains', 'wunderauto'),
    28             'ncontains'  => __('Does not contain', 'wunderauto'),
    29             'startswith' => __('Starts with', 'wunderauto'),
    30             'endswith'   => __('Ends with', 'wunderauto'),
    31             'empty'      => __('Is empty', 'wunderauto'),
    32             'nempty'     => __('Is not empty', 'wunderauto'),
    33         ];
    34 
     24        $this->operators = $this->stringOperators();
    3525        $this->inputType = 'scalar';
    3626        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Comment/CreationDate.php

    r2666447 r2724198  
    2222        $this->objects     = ['comment'];
    2323
    24         $this->operators = [
    25             'datebefore' => __('Before', 'wunderauto'),
    26             'dateafter'  => __('After', 'wunderauto'),
    27         ];
    28 
     24        $this->operators = $this->dateOperators();
    2925        $this->inputType = 'scalar';
    3026        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Comment/IsOrderStatusNote.php

    r2666447 r2724198  
    2525        $this->objects     = ['comment'];
    2626
    27         $this->inputType = 'select';
    28         $this->operators = [];
    29 
     27        $this->inputType     = 'select';
     28        $this->operators     = [];
    3029        $this->compareValues = [
    3130            ['value' => 'yes', 'label' => __('Yes', 'wunderauto')],
  • wunderautomation/trunk/src/Types/Filters/Comment/Status.php

    r2685260 r2724198  
    2222        $this->objects     = ['comment'];
    2323
    24         $this->operators = [
    25             'isoneof'    => __('Is one of', 'wunderauto'),
    26             'isnotoneof' => __('Is not one of', 'wunderauto'),
    27         ];
     24        $this->operators = $this->setOperators();
    2825
    2926        $this->inputType = 'multiselect';
  • wunderautomation/trunk/src/Types/Filters/Comment/Type.php

    r2666447 r2724198  
    2222        $this->objects     = ['comment'];
    2323
    24         $this->operators = [
    25             'eq'         => __('Equals', 'wunderauto'),
    26             'neq'        => __('Does not equal', 'wunderauto'),
    27             'contains'   => __('Contains', 'wunderauto'),
    28             'ncontains'  => __('Does not contain', 'wunderauto'),
    29             'startswith' => __('Starts with', 'wunderauto'),
    30             'endswith'   => __('Ends with', 'wunderauto'),
    31             'empty'      => __('Is empty', 'wunderauto'),
    32             'nempty'     => __('Is not empty', 'wunderauto'),
    33             'isoneof'    => __('Is one of', 'wunderauto'),
    34             'isnotoneof' => __('Is not one of', 'wunderauto'),
    35         ];
    36 
     24        $this->operators = $this->stringOperators();
    3725        $this->inputType = 'scalar';
    3826        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/ConfirmationLink/Clicks.php

    r2666447 r2724198  
    2222        $this->objects     = ['link'];
    2323
    24         $this->operators = [
    25             'eq'  => __('Equals', 'wunderauto'),
    26             'neq' => __('Not equals', 'wunderauto'),
    27             'gte' => __('Greater than or equals', 'wunderauto'),
    28             'lte' => __('Lower than or equals', 'wunderauto'),
    29         ];
    30 
     24        $this->operators = $this->numberOperators();
    3125        $this->inputType = 'scalar';
    3226        $this->valueType = 'number';
  • wunderautomation/trunk/src/Types/Filters/ConfirmationLink/Name.php

    r2666447 r2724198  
    2222        $this->objects     = ['link'];
    2323
    24         $this->operators = [
    25             'eq'         => __('Equals', 'wunderauto'),
    26             'neq'        => __('Does not equal', 'wunderauto'),
    27             'contains'   => __('Contains', 'wunderauto'),
    28             'ncontains'  => __('Does not contain', 'wunderauto'),
    29             'startswith' => __('Starts with', 'wunderauto'),
    30             'endswith'   => __('Ends with', 'wunderauto'),
    31             'empty'      => __('Is empty', 'wunderauto'),
    32             'nempty'     => __('Is not empty', 'wunderauto'),
    33         ];
    34 
     24        $this->operators = $this->stringOperators();
    3525        $this->inputType = 'scalar';
    3626        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Coupon/Name.php

    r2685260 r2724198  
    2323        $this->objects     = ['order'];
    2424
    25         $this->operators = [
    26             'eq'         => __('Equals', 'wunderauto'),
    27             'neq'        => __('Does not equal', 'wunderauto'),
    28             'contains'   => __('Contains', 'wunderauto'),
    29             'ncontains'  => __('Does not contain', 'wunderauto'),
    30             'startswith' => __('Starts with', 'wunderauto'),
    31             'endswith'   => __('Ends with', 'wunderauto'),
    32             'empty'      => __('Is empty', 'wunderauto'),
    33             'nempty'     => __('Is not empty', 'wunderauto'),
    34         ];
    35 
     25        $this->operators = $this->stringOperators();
    3626        $this->inputType = 'scalar';
    3727        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Customer/BaseOrderCount.php

    r2685260 r2724198  
    1717        parent::__construct();
    1818
    19         $this->operators = [
    20             'eq'  => __('Equals', 'wunderauto'),
    21             'neq' => __('Not equals', 'wunderauto'),
    22             'gte' => __('Greater than or equals', 'wunderauto'),
    23             'lte' => __('Lower than or equals', 'wunderauto'),
    24         ];
    25 
     19        $this->operators = $this->numberOperators();
    2620        $this->inputType = 'scalar';
    2721        $this->valueType = 'number';
  • wunderautomation/trunk/src/Types/Filters/Date.php

    r2666447 r2724198  
    2020        $this->objects     = ['*'];
    2121
    22         $this->operators = [
    23             'datebefore' => __('Is before', 'wunderauto'),
    24             'dateafter'  => __('Is after', 'wunderauto'),
    25         ];
    26 
     22        $this->operators = $this->dateOperators();
    2723        $this->inputType = 'scalar';
    2824        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Initiator.php

    r2666447 r2724198  
    2020        $this->objects     = ['*'];
    2121
    22         $this->operators = [
    23             'isoneof'    => __('Is one of', 'wunderauto'),
    24             'isnotoneof' => __('Is not one of', 'wunderauto'),
    25         ];
    26 
     22        $this->operators = $this->setOperators();
    2723        $this->inputType = 'multiselect';
    2824
  • wunderautomation/trunk/src/Types/Filters/Option.php

    r2666447 r2724198  
    2020        $this->objects     = ['*'];
    2121
    22         $this->operators = [
    23             'eq'         => __('Equals', 'wunderauto'),
    24             'neq'        => __('Does not equal', 'wunderauto'),
    25             'contains'   => __('Contains', 'wunderauto'),
    26             'ncontains'  => __('Does not contain', 'wunderauto'),
    27             'startswith' => __('Starts with', 'wunderauto'),
    28             'endswith'   => __('Ends with', 'wunderauto'),
    29             'empty'      => __('Is empty', 'wunderauto'),
    30             'nempty'     => __('Is not empty', 'wunderauto'),
    31             'gte'        => __('Greater than or equals', 'wunderauto'),
    32             'lte'        => __('Lower than or equals', 'wunderauto'),
    33             'isoneof'    => __('Is one of', 'wunderauto'),
    34             'isnotoneof' => __('Is not one of', 'wunderauto'),
    35         ];
    36 
     22        $this->operators = $this->stringOperators();
    3723        $this->inputType = 'scalar';
    3824        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Order/BillingCity.php

    r2666447 r2724198  
    2626        $this->objects     = ['order'];
    2727
    28         $this->operators = [
    29             'isoneof'    => __('Is one of', 'wunderauto'),
    30             'isnotoneof' => __('Is not one of', 'wunderauto'),
    31         ];
    32 
     28        $this->operators = $this->setOperators();
    3329        $this->inputType = 'scalar';
    3430        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Order/BillingCompany.php

    r2685260 r2724198  
    2626        $this->objects     = ['order'];
    2727
    28         $this->operators = [
    29             'isoneof'    => __('Is one of', 'wunderauto'),
    30             'isnotoneof' => __('Is not one of', 'wunderauto'),
    31         ];
    32 
     28        $this->operators = $this->stringOperators();
    3329        $this->inputType = 'scalar';
    3430        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Order/BillingCountry.php

    r2685260 r2724198  
    2323        $this->objects     = ['order'];
    2424
    25         $this->operators = [
    26             'isoneof'    => __('Is one of', 'wunderauto'),
    27             'isnotoneof' => __('Is not one of', 'wunderauto'),
    28         ];
    29 
     25        $this->setOperators();
    3026        $this->inputType = 'multiselect';
    3127    }
  • wunderautomation/trunk/src/Types/Filters/Order/BillingState.php

    r2685260 r2724198  
    2323        $this->objects     = ['order'];
    2424
    25         $this->operators = [
    26             'isoneof'    => __('Is one of', 'wunderauto'),
    27             'isnotoneof' => __('Is not one of', 'wunderauto'),
    28         ];
    29 
     25        $this->operators = $this->setOperators();
    3026        $this->inputType = 'multiselect';
    3127    }
  • wunderautomation/trunk/src/Types/Filters/Order/CompletedDate.php

    r2666447 r2724198  
    2222        $this->objects     = ['order'];
    2323
    24         $this->operators = [
    25             'datebefore' => __('Before', 'wunderauto'),
    26             'dateafter'  => __('After', 'wunderauto'),
    27             'empty'      => __('Is empty', 'wunderauto'),
    28         ];
    29 
     24        $this->operators = $this->dateOperators();
    3025        $this->inputType = 'scalar';
    3126        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Order/CreatedVia.php

    r2685260 r2724198  
    2222        $this->objects     = ['order'];
    2323
    24         $this->operators = [
    25             'isoneof'    => __('Is one of', 'wunderauto'),
    26             'isnotoneof' => __('Is not one of', 'wunderauto'),
    27         ];
    28 
     24        $this->operators = $this->setOperators();
    2925        $this->inputType = 'multiselect';
    3026    }
  • wunderautomation/trunk/src/Types/Filters/Order/CreationDate.php

    r2666447 r2724198  
    2222        $this->objects     = ['order'];
    2323
    24         $this->operators = [
    25             'datebefore' => __('Before', 'wunderauto'),
    26             'dateafter'  => __('After', 'wunderauto'),
    27         ];
    28 
     24        $this->operators = $this->dateOperators();
    2925        $this->inputType = 'scalar';
    3026        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Order/Number.php

    r2685260 r2724198  
    2222        $this->objects     = ['order'];
    2323
    24         $this->operators = [
    25             'eq'         => __('Equals', 'wunderauto'),
    26             'neq'        => __('Does not equal', 'wunderauto'),
    27             'contains'   => __('Contains', 'wunderauto'),
    28             'ncontains'  => __('Does not contain', 'wunderauto'),
    29             'startswith' => __('Starts with', 'wunderauto'),
    30             'endswith'   => __('Ends with', 'wunderauto'),
    31             'empty'      => __('Is empty', 'wunderauto'),
    32             'nempty'     => __('Is not empty', 'wunderauto'),
    33             'gte'        => __('Greater than or equals', 'wunderauto'),
    34             'lte'        => __('Lower than or equals', 'wunderauto'),
    35             'isoneof'    => __('Is one of', 'wunderauto'),
    36             'isnotoneof' => __('Is not one of', 'wunderauto'),
    37         ];
    38 
     24        $this->operators = $this->stringOperators();
    3925        $this->inputType = 'scalar';
    4026        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Order/PaidDate.php

    r2666447 r2724198  
    2222        $this->objects     = ['order'];
    2323
    24         $this->operators = [
    25             'datebefore' => __('Before', 'wunderauto'),
    26             'dateafter'  => __('After', 'wunderauto'),
    27             'dateempty'  => __('Is empty', 'wunderauto'),
    28         ];
    29 
     24        $this->operators = $this->dateOperators();
    3025        $this->inputType = 'scalar';
    3126        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Order/PaymentMethod.php

    r2685260 r2724198  
    2424        $this->objects     = ['order'];
    2525
    26         $this->operators = [
    27             'isoneof'    => __('Is one of', 'wunderauto'),
    28             'isnotoneof' => __('Is not one of', 'wunderauto'),
    29         ];
    30 
     26        $this->operators = $this->setOperators();
    3127        $this->inputType = 'multiselect';
    3228    }
  • wunderautomation/trunk/src/Types/Filters/Order/ProductCategories.php

    r2666447 r2724198  
    2222        $this->objects     = ['order'];
    2323
    24         $this->operators = [
    25             'anyinlist'  => __('Contains any', 'wunderauto'),
    26             'noneinlist' => __('Contains all', 'wunderauto'),
    27             'allinlist'  => __('Contains none', 'wunderauto'),
    28         ];
    29 
     24        $this->operators   = $this->multiSetOperators();
    3025        $this->inputType   = 'ajaxmultiselect';
    3126        $this->ajaxAction  = 'wa_search_wooproduct_cats';
  • wunderautomation/trunk/src/Types/Filters/Order/ProductTags.php

    r2666447 r2724198  
    2222        $this->objects     = ['order'];
    2323
    24         $this->operators = [
    25             'anyinlist'  => __('Contains any', 'wunderauto'),
    26             'noneinlist' => __('Contains all', 'wunderauto'),
    27             'allinlist'  => __('Contains none', 'wunderauto'),
    28         ];
    29 
     24        $this->operators   = $this->multiSetOperators();
    3025        $this->inputType   = 'ajaxmultiselect';
    3126        $this->ajaxAction  = 'wa_search_wooproduct_tags';
  • wunderautomation/trunk/src/Types/Filters/Order/ProductTypes.php

    r2685260 r2724198  
    2222        $this->objects     = ['order'];
    2323
    24         $this->operators = [
    25             'anyinlist'  => __('Contains at least one of', 'wunderauto'),
    26             'noneinlist' => __('Does not contain any of', 'wunderauto'),
    27             'allinlist'  => __('Contains only', 'wunderauto'),
    28         ];
    29 
     24        $this->operators = $this->multiSetOperators();
    3025        $this->inputType = 'multiselect';
    3126    }
  • wunderautomation/trunk/src/Types/Filters/Order/Products.php

    r2666447 r2724198  
    2222        $this->objects     = ['order'];
    2323
    24         $this->operators = [
    25             'anyinlist'  => __('Contains any', 'wunderauto'),
    26             'noneinlist' => __('Contains all', 'wunderauto'),
    27             'allinlist'  => __('Contains none', 'wunderauto'),
    28         ];
    29 
     24        $this->operators   = $this->multiSetOperators();
    3025        $this->inputType   = 'ajaxmultiselect';
    3126        $this->ajaxAction  = 'wa_search_wooproducts';
  • wunderautomation/trunk/src/Types/Filters/Order/ShippingCity.php

    r2666447 r2724198  
    2626        $this->objects     = ['order'];
    2727
    28         $this->operators = [
    29             'isoneof'    => __('Is one of', 'wunderauto'),
    30             'isnotoneof' => __('Is not one of', 'wunderauto'),
    31         ];
    32 
     28        $this->operators = $this->setOperators();
    3329        $this->inputType = 'scalar';
    3430        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Order/ShippingCompany.php

    r2666447 r2724198  
    2626        $this->objects     = ['order'];
    2727
    28         $this->operators = [
    29             'isoneof'    => __('Is one of', 'wunderauto'),
    30             'isnotoneof' => __('Is not one of', 'wunderauto'),
    31         ];
    32 
     28        $this->operators = $this->stringOperators();
    3329        $this->inputType = 'scalar';
    3430        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Order/ShippingCountry.php

    r2685260 r2724198  
    2323        $this->objects     = ['order'];
    2424
    25         $this->operators = [
    26             'isoneof'    => __('Is one of', 'wunderauto'),
    27             'isnotoneof' => __('Is not one of', 'wunderauto'),
    28         ];
    29 
     25        $this->operators = $this->setOperators();
    3026        $this->inputType = 'multiselect';
    3127    }
  • wunderautomation/trunk/src/Types/Filters/Order/ShippingMethod.php

    r2685260 r2724198  
    2323        $this->objects     = ['order'];
    2424
    25         $this->operators = [
    26             'isoneof'    => __('Is one of', 'wunderauto'),
    27             'isnotoneof' => __('Is not one of', 'wunderauto'),
    28         ];
    29 
     25        $this->operators = $this->setOperators();
    3026        $this->inputType = 'multiselect';
    3127    }
  • wunderautomation/trunk/src/Types/Filters/Order/ShippingState.php

    r2685260 r2724198  
    2323        $this->objects     = ['order'];
    2424
    25         $this->operators = [
    26             'isoneof'    => __('Is one of', 'wunderauto'),
    27             'isnotoneof' => __('Is not one of', 'wunderauto'),
    28         ];
    29 
     25        $this->operators = $this->setOperators();
    3026        $this->inputType = 'multiselect';
    3127    }
  • wunderautomation/trunk/src/Types/Filters/Order/ShippingZone.php

    r2685260 r2724198  
    2323        $this->objects     = ['order'];
    2424
    25         $this->operators = [
    26             'isoneof'    => __('Is one of', 'wunderauto'),
    27             'isnotoneof' => __('Is not one of', 'wunderauto'),
    28         ];
    29 
     25        $this->operators = $this->setOperators();
    3026        $this->inputType = 'multiselect';
    3127    }
  • wunderautomation/trunk/src/Types/Filters/Order/Status.php

    r2685260 r2724198  
    2222        $this->objects     = ['order'];
    2323
    24         $this->operators = [
    25             'isoneof'    => __('Is one of', 'wunderauto'),
    26             'isnotoneof' => __('Is not one of', 'wunderauto'),
    27         ];
    28 
     24        $this->operators = $this->setOperators();
    2925        $this->inputType = 'multiselect';
    3026    }
  • wunderautomation/trunk/src/Types/Filters/Order/Total.php

    r2666447 r2724198  
    2222        $this->objects     = ['order'];
    2323
    24         $this->operators = [
    25             'eq'  => __('Equals', 'wunderauto'),
    26             'neq' => __('Not equals', 'wunderauto'),
    27             'gte' => __('Greater than or equals', 'wunderauto'),
    28             'lte' => __('Lower than or equals', 'wunderauto'),
    29         ];
    30 
     24        $this->operators = $this->numberOperators();
    3125        $this->inputType = 'scalar';
    3226        $this->valueType = 'number';
  • wunderautomation/trunk/src/Types/Filters/Post/Categories.php

    r2666447 r2724198  
    2222        $this->objects     = ['post'];
    2323
    24         $this->operators = [
    25             'anyinlist'  => __('Contains any', 'wunderauto'),
    26             'noneinlist' => __('Contains all', 'wunderauto'),
    27             'allinlist'  => __('Contains none', 'wunderauto'),
    28         ];
    29 
     24        $this->operators   = $this->multiSetOperators();
    3025        $this->inputType   = 'ajaxmultiselect';
    3126        $this->ajaxAction  = 'wa_search_categories';
  • wunderautomation/trunk/src/Types/Filters/Post/Content.php

    r2666447 r2724198  
    2222        $this->objects     = ['post'];
    2323
    24         $this->operators = [
    25             'eq'         => __('Equals', 'wunderauto'),
    26             'neq'        => __('Does not equal', 'wunderauto'),
    27             'contains'   => __('Contains', 'wunderauto'),
    28             'ncontains'  => __('Does not contain', 'wunderauto'),
    29             'startswith' => __('Starts with', 'wunderauto'),
    30             'endswith'   => __('Ends with', 'wunderauto'),
    31             'empty'      => __('Is empty', 'wunderauto'),
    32             'nempty'     => __('Is not empty', 'wunderauto'),
    33         ];
    34 
     24        $this->operators = $this->stringOperators();
    3525        $this->inputType = 'scalar';
    3626        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Post/CreationDate.php

    r2666447 r2724198  
    2222        $this->objects     = ['post'];
    2323
    24         $this->operators = [
    25             'datebefore' => __('Before', 'wunderauto'),
    26             'dateafter'  => __('After', 'wunderauto'),
    27         ];
    28 
     24        $this->operators = $this->dateOperators();
    2925        $this->inputType = 'scalar';
    3026        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Post/ModifiedDate.php

    r2666447 r2724198  
    2222        $this->objects     = ['post'];
    2323
    24         $this->operators = [
    25             'datebefore' => __('Before', 'wunderauto'),
    26             'dateafter'  => __('After', 'wunderauto'),
    27         ];
    28 
     24        $this->operators = $this->dateOperators();
    2925        $this->inputType = 'scalar';
    3026        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Post/Owner.php

    r2666447 r2724198  
    2222        $this->objects     = ['post'];
    2323
    24         $this->operators = [
    25             'isoneof'    => __('Is one of', 'wunderauto'),
    26             'isnotoneof' => __('Is not one of', 'wunderauto'),
    27         ];
    28 
     24        $this->operators   = $this->setOperators();
    2925        $this->inputType   = 'ajaxmultiselect';
    3026        $this->ajaxAction  = 'wa_search_users';
  • wunderautomation/trunk/src/Types/Filters/Post/Status.php

    r2685260 r2724198  
    2222        $this->objects     = ['post'];
    2323
    24         $this->operators = [
    25             'isoneof'    => __('Is one of', 'wunderauto'),
    26             'isnotoneof' => __('Is not one of', 'wunderauto'),
    27         ];
    28 
     24        $this->operators = $this->setOperators();
    2925        $this->inputType = 'multiselect';
    3026    }
  • wunderautomation/trunk/src/Types/Filters/Post/Tags.php

    r2666447 r2724198  
    2222        $this->objects     = ['post'];
    2323
    24         $this->operators = [
    25             'anyinlist'  => __('Contains any', 'wunderauto'),
    26             'noneinlist' => __('Contains all', 'wunderauto'),
    27             'allinlist'  => __('Contains none', 'wunderauto'),
    28         ];
    29 
     24        $this->operators   = $this->multiSetOperators();
    3025        $this->inputType   = 'ajaxmultiselect';
    3126        $this->ajaxAction  = 'wa_search_tags';
  • wunderautomation/trunk/src/Types/Filters/Post/Title.php

    r2666447 r2724198  
    2222        $this->objects     = ['post'];
    2323
    24         $this->operators = [
    25             'eq'         => __('Equals', 'wunderauto'),
    26             'neq'        => __('Does not equal', 'wunderauto'),
    27             'contains'   => __('Contains', 'wunderauto'),
    28             'ncontains'  => __('Does not contain', 'wunderauto'),
    29             'startswith' => __('Starts with', 'wunderauto'),
    30             'endswith'   => __('Ends with', 'wunderauto'),
    31             'empty'      => __('Is empty', 'wunderauto'),
    32             'nempty'     => __('Is not empty', 'wunderauto'),
    33         ];
    34 
     24        $this->operators = $this->stringOperators();
    3525        $this->inputType = 'scalar';
    3626        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Post/Type.php

    r2685260 r2724198  
    2222        $this->objects     = ['post'];
    2323
    24         $this->operators = [
    25             'isoneof'    => __('Is one of', 'wunderauto'),
    26             'isnotoneof' => __('Is not one of', 'wunderauto'),
    27         ];
    28 
     24        $this->operators = $this->setOperators();
    2925        $this->inputType = 'multiselect';
    3026    }
  • wunderautomation/trunk/src/Types/Filters/RefererPost.php

    r2666447 r2724198  
    2020        $this->objects     = ['*'];
    2121
    22         $this->operators = [
    23             'eq'         => __('Equals', 'wunderauto'),
    24             'neq'        => __('Does not equal', 'wunderauto'),
    25             'contains'   => __('Contains', 'wunderauto'),
    26             'ncontains'  => __('Does not contain', 'wunderauto'),
    27             'startswith' => __('Starts with', 'wunderauto'),
    28             'endswith'   => __('Ends with', 'wunderauto'),
    29             'empty'      => __('Is empty', 'wunderauto'),
    30             'nempty'     => __('Is not empty', 'wunderauto'),
    31             'isoneof'    => __('Is one of', 'wunderauto'),
    32             'isnotoneof' => __('Is not one of', 'wunderauto'),
    33         ];
    34 
     22        $this->operators = $this->numberOperators();
    3523        $this->inputType = 'scalar';
    3624        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/RefererUrl.php

    r2666447 r2724198  
    2020        $this->objects     = ['*'];
    2121
    22         $this->operators = [
    23             'eq'         => __('Equals', 'wunderauto'),
    24             'neq'        => __('Does not equal', 'wunderauto'),
    25             'contains'   => __('Contains', 'wunderauto'),
    26             'ncontains'  => __('Does not contain', 'wunderauto'),
    27             'startswith' => __('Starts with', 'wunderauto'),
    28             'endswith'   => __('Ends with', 'wunderauto'),
    29             'empty'      => __('Is empty', 'wunderauto'),
    30             'nempty'     => __('Is not empty', 'wunderauto'),
    31             'isoneof'    => __('Is one of', 'wunderauto'),
    32             'isnotoneof' => __('Is not one of', 'wunderauto'),
    33         ];
    34 
     22        $this->operators = $this->stringOperators();
    3523        $this->inputType = 'scalar';
    3624        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/TimeOfDay.php

    r2666447 r2724198  
    2020        $this->objects     = ['*'];
    2121
    22         $this->operators = [
    23             'datebefore' => __('Is before', 'wunderauto'),
    24             'dateafter'  => __('Is after', 'wunderauto'),
    25         ];
    26 
     22        $this->operators = $this->dateOperators();
    2723        $this->inputType = 'scalar';
    2824        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/User/CreationDate.php

    r2685260 r2724198  
    2222        $this->objects     = ['user'];
    2323
    24         $this->operators = [
    25             'datebefore' => __('Before', 'wunderauto'),
    26             'dateafter'  => __('After', 'wunderauto'),
    27         ];
    28 
     24        $this->operators = $this->dateOperators();
    2925        $this->inputType = 'scalar';
    3026        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/User/Email.php

    r2685260 r2724198  
    2828        $this->description  = __('Filters based on user email address', 'wunderauto');
    2929        $this->objects      = ['user'];
    30         $this->operators    = [
    31             'eq'         => __('Equals', 'wunderauto'),
    32             'neq'        => __('Does not equal', 'wunderauto'),
    33             'contains'   => __('Contains', 'wunderauto'),
    34             'ncontains'  => __('Does not contain', 'wunderauto'),
    35             'startswith' => __('Starts with', 'wunderauto'),
    36             'endswith'   => __('Ends with', 'wunderauto'),
    37         ];
    3830
     31        $this->operators = $this->stringOperators();
    3932        $this->inputType = 'scalar';
    4033        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/User/LastLogin.php

    r2685260 r2724198  
    2222        $this->objects     = ['user'];
    2323
    24         $this->operators = [
    25             'datebefore' => __('Before', 'wunderauto'),
    26             'dateafter'  => __('After', 'wunderauto'),
    27         ];
    28 
     24        $this->operators = $this->dateOperators();
    2925        $this->inputType = 'scalar';
    3026        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/User/LoginCount.php

    r2685260 r2724198  
    2222        $this->objects     = ['user'];
    2323
    24         $this->operators = [
    25             'eq'  => __('Equals', 'wunderauto'),
    26             'neq' => __('Not equals', 'wunderauto'),
    27             'gte' => __('Greater than or equals', 'wunderauto'),
    28             'lte' => __('Lower than or equals', 'wunderauto'),
    29         ];
    30 
     24        $this->operators = $this->numberOperators();
    3125        $this->inputType = 'scalar';
    3226        $this->valueType = 'number';
  • wunderautomation/trunk/src/Types/Filters/User/Role.php

    r2666447 r2724198  
    2828        $this->objects      = ['user'];
    2929
    30         $this->operators = [
    31             'isoneof'    => __('Is one of', 'wunderauto'),
    32             'isnotoneof' => __('Is not one of', 'wunderauto'),
    33         ];
    34 
     30        $this->operators = $this->setOperators();
    3531        $this->inputType = 'multiselect';
    3632    }
  • wunderautomation/trunk/src/Types/Filters/WebhookParameter.php

    r2685260 r2724198  
    2020        $this->objects     = ['webhook'];
    2121
    22         $this->operators = [
    23             'eq'         => __('Equals', 'wunderauto'),
    24             'neq'        => __('Does not equal', 'wunderauto'),
    25             'contains'   => __('Contains', 'wunderauto'),
    26             'ncontains'  => __('Does not contain', 'wunderauto'),
    27             'startswith' => __('Starts with', 'wunderauto'),
    28             'endswith'   => __('Ends with', 'wunderauto'),
    29             'empty'      => __('Is empty', 'wunderauto'),
    30             'nempty'     => __('Is not empty', 'wunderauto'),
    31             'isoneof'    => __('Is one of', 'wunderauto'),
    32             'isnotoneof' => __('Is not one of', 'wunderauto'),
    33         ];
    34 
     22        $this->operators = $this->stringOperators();
    3523        $this->inputType = 'scalar';
    3624        $this->valueType = 'text';
  • wunderautomation/trunk/src/Types/Filters/Weekday.php

    r2685260 r2724198  
    2020        $this->objects     = ['*'];
    2121
    22         $this->operators = [
    23             'isoneof'    => __('Is one of', 'wunderauto'),
    24             'isnotoneof' => __('Is not one of', 'wunderauto'),
    25         ];
    26 
     22        $this->operators = $this->setOperators();
    2723        $this->inputType = 'multiselect';
    2824    }
  • wunderautomation/trunk/src/Types/Internal/BaseInternalType.php

    r2685260 r2724198  
    1212     */
    1313    protected static $wpPostMetaMode = false;
     14
     15    /**
     16     * @var bool
     17     */
     18    protected static $stateFromUI = false;
    1419
    1520    /**
  • wunderautomation/trunk/src/Types/Internal/Filter.php

    r2668497 r2724198  
    6262        parent::__construct($state);
    6363
     64        if (isset($state->arrValue) && !empty($state->arrValue)) {
     65            $this->value = $state->arrValue;
     66        }
     67
    6468        $this->filter    = str_replace('|', '\\', $this->filter);
    6569        $this->filterKey = str_replace('|', '\\', $this->filterKey);
     
    7276        $this->sanitizeObjectProp($this, 'path', 'text');
    7377
    74         if (is_array($this->value)) {
     78        if (is_array($this->value) && count($this->value) > 0) {
    7579            foreach ($this->value as &$value) {
    7680                $this->sanitizeObjectProp($value, 'label', 'text');
     
    8791                $this->object = $parts[0];
    8892                $this->filter = $parts[1];
    89             }
    90 
    91             if (class_exists($this->filter)) {
    92                 /** @var BaseFilter $filterObj */
    93                 $filterObj = new $this->filter();
    94                 if (in_array($filterObj->inputType, ['multiselect', 'ajaxmultiselect'])) {
    95                     $this->value = $this->arrValue;
    96                 }
    9793            }
    9894        }
     
    111107                case 'map':
    112108                    break;
     109                case 'arrValue':
     110                    if (static::$wpPostMetaMode === false) {
     111                        $return[$property] = $value;
     112                    }
     113                    break;
    113114                case 'filter':
    114115                case 'filterKey':
  • wunderautomation/trunk/src/Types/Parameters/BaseParameter.php

    r2666447 r2724198  
    5858     */
    5959    public $usesOutputFormat = false;
     60
     61    /**
     62     * @var bool
     63     */
     64    public $useTaxonomy = false;
    6065
    6166    /**
  • wunderautomation/trunk/src/Types/Triggers/BaseTrigger.php

    r2691051 r2724198  
    4343
    4444    /**
    45      * @var Workflow
     45     * @var Workflow|null
    4646     */
    47     protected $workflow;
     47    protected $workflow = null;
    4848
    4949    /**
  • wunderautomation/trunk/src/Types/Triggers/Post/Saved.php

    r2691051 r2724198  
    7979        }
    8080
    81         if (!$this->registeredForPostMeta) {
     81        if (!$this->registeredForPostMeta && !is_null($this->workflow)) {
    8282            /** @var WorkflowState $state */
    8383            $state = $this->workflow->getState();
  • wunderautomation/trunk/src/Types/Triggers/User/ProfileUpdated.php

    r2685260 r2724198  
    1010class ProfileUpdated extends BaseTrigger
    1111{
     12    /**
     13     * Keep track of updated users
     14     *
     15     * @var array<int, int>
     16     */
     17    private $updatedUsers = [];
     18
    1219    /**
    1320     * Constructor
     
    5259    public function userProfileUpdated($userId, $oldUserData)
    5360    {
    54         $user = get_user_by('id', $userId);
    55         if ($user instanceof \WP_User) {
    56             $objects = ['user' => $user];
    57             $this->doTrigger($objects);
     61        $this->updatedUsers[] = $userId;
     62        if (count($this->updatedUsers) === 1) {
     63            add_action('shutdown', [$this, 'handleUpdatedUsers']);
     64        }
     65    }
     66
     67    /**
     68     * Handle all updated users at end of request life cycle.
     69     *
     70     * @return void
     71     */
     72    public function handleUpdatedUsers()
     73    {
     74        $this->updatedUsers = array_unique($this->updatedUsers);
     75
     76        foreach ($this->updatedUsers as $updatedUserId) {
     77            $user = get_user_by('id', $updatedUserId);
     78            if ($user instanceof \WP_User) {
     79                $objects = ['user' => $user];
     80                $this->doTrigger($objects);
     81            }
    5882        }
    5983    }
  • wunderautomation/trunk/src/functions.php

    r2691051 r2724198  
    185185
    186186/**
    187  * @param array<string, string > $args
     187 * @param array<string, int|string> $args
    188188 *
    189189 * @return WP_Post
  • wunderautomation/trunk/vendor/autoload.php

    r2691051 r2724198  
    33// autoload.php @generated by Composer
    44
     5if (PHP_VERSION_ID < 50600) {
     6    echo 'Composer 2.3.0 dropped support for autoloading on PHP <5.6 and you are running '.PHP_VERSION.', please upgrade PHP or use Composer 2.2 LTS via "composer self-update --2.2". Aborting.'.PHP_EOL;
     7    exit(1);
     8}
     9
    510require_once __DIR__ . '/composer/autoload_real.php';
    611
    7 return ComposerAutoloaderInit284ec760a017acd06d64c37b772db48b::getLoader();
     12return ComposerAutoloaderInit576a6f74b312e3f23a1fd64823f8b7ef::getLoader();
  • wunderautomation/trunk/vendor/composer/InstalledVersions.php

    r2666447 r2724198  
    2222 *
    2323 * To require its presence, you can require `composer-runtime-api ^2.0`
     24 *
     25 * @final
    2426 */
    2527class InstalledVersions
  • wunderautomation/trunk/vendor/composer/autoload_classmap.php

    r2414675 r2724198  
    33// autoload_classmap.php @generated by Composer
    44
    5 $vendorDir = dirname(dirname(__FILE__));
     5$vendorDir = dirname(__DIR__);
    66$baseDir = dirname($vendorDir);
    77
  • wunderautomation/trunk/vendor/composer/autoload_namespaces.php

    r2193691 r2724198  
    33// autoload_namespaces.php @generated by Composer
    44
    5 $vendorDir = dirname(dirname(__FILE__));
     5$vendorDir = dirname(__DIR__);
    66$baseDir = dirname($vendorDir);
    77
  • wunderautomation/trunk/vendor/composer/autoload_psr4.php

    r2193691 r2724198  
    33// autoload_psr4.php @generated by Composer
    44
    5 $vendorDir = dirname(dirname(__FILE__));
     5$vendorDir = dirname(__DIR__);
    66$baseDir = dirname($vendorDir);
    77
  • wunderautomation/trunk/vendor/composer/autoload_real.php

    r2691051 r2724198  
    33// autoload_real.php @generated by Composer
    44
    5 class ComposerAutoloaderInit284ec760a017acd06d64c37b772db48b
     5class ComposerAutoloaderInit576a6f74b312e3f23a1fd64823f8b7ef
    66{
    77    private static $loader;
     
    2323        }
    2424
    25         spl_autoload_register(array('ComposerAutoloaderInit284ec760a017acd06d64c37b772db48b', 'loadClassLoader'), true, true);
    26         self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(\dirname(__FILE__)));
    27         spl_autoload_unregister(array('ComposerAutoloaderInit284ec760a017acd06d64c37b772db48b', 'loadClassLoader'));
     25        spl_autoload_register(array('ComposerAutoloaderInit576a6f74b312e3f23a1fd64823f8b7ef', 'loadClassLoader'), true, true);
     26        self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
     27        spl_autoload_unregister(array('ComposerAutoloaderInit576a6f74b312e3f23a1fd64823f8b7ef', 'loadClassLoader'));
    2828
    29         $useStaticLoader = PHP_VERSION_ID >= 50600 && !defined('HHVM_VERSION') && (!function_exists('zend_loader_file_encoded') || !zend_loader_file_encoded());
    30         if ($useStaticLoader) {
    31             require __DIR__ . '/autoload_static.php';
    32 
    33             call_user_func(\Composer\Autoload\ComposerStaticInit284ec760a017acd06d64c37b772db48b::getInitializer($loader));
    34         } else {
    35             $map = require __DIR__ . '/autoload_namespaces.php';
    36             foreach ($map as $namespace => $path) {
    37                 $loader->set($namespace, $path);
    38             }
    39 
    40             $map = require __DIR__ . '/autoload_psr4.php';
    41             foreach ($map as $namespace => $path) {
    42                 $loader->setPsr4($namespace, $path);
    43             }
    44 
    45             $classMap = require __DIR__ . '/autoload_classmap.php';
    46             if ($classMap) {
    47                 $loader->addClassMap($classMap);
    48             }
    49         }
     29        require __DIR__ . '/autoload_static.php';
     30        call_user_func(\Composer\Autoload\ComposerStaticInit576a6f74b312e3f23a1fd64823f8b7ef::getInitializer($loader));
    5031
    5132        $loader->register(true);
  • wunderautomation/trunk/vendor/composer/autoload_static.php

    r2691051 r2724198  
    55namespace Composer\Autoload;
    66
    7 class ComposerStaticInit284ec760a017acd06d64c37b772db48b
     7class ComposerStaticInit576a6f74b312e3f23a1fd64823f8b7ef
    88{
    99    public static $prefixLengthsPsr4 = array (
     
    2828    {
    2929        return \Closure::bind(function () use ($loader) {
    30             $loader->prefixLengthsPsr4 = ComposerStaticInit284ec760a017acd06d64c37b772db48b::$prefixLengthsPsr4;
    31             $loader->prefixDirsPsr4 = ComposerStaticInit284ec760a017acd06d64c37b772db48b::$prefixDirsPsr4;
    32             $loader->classMap = ComposerStaticInit284ec760a017acd06d64c37b772db48b::$classMap;
     30            $loader->prefixLengthsPsr4 = ComposerStaticInit576a6f74b312e3f23a1fd64823f8b7ef::$prefixLengthsPsr4;
     31            $loader->prefixDirsPsr4 = ComposerStaticInit576a6f74b312e3f23a1fd64823f8b7ef::$prefixDirsPsr4;
     32            $loader->classMap = ComposerStaticInit576a6f74b312e3f23a1fd64823f8b7ef::$classMap;
    3333
    3434        }, null, ClassLoader::class);
  • wunderautomation/trunk/vendor/composer/installed.php

    r2691051 r2724198  
    66        'install_path' => __DIR__ . '/../../',
    77        'aliases' => array(),
    8         'reference' => '43dde42eef22f599ec9dbadf9d4188bbd740e7ef',
     8        'reference' => 'fd4b773de93128cfa774aad411283b27785fbd20',
    99        'name' => '__root__',
    1010        'dev' => false,
     
    1717            'install_path' => __DIR__ . '/../../',
    1818            'aliases' => array(),
    19             'reference' => '43dde42eef22f599ec9dbadf9d4188bbd740e7ef',
     19            'reference' => 'fd4b773de93128cfa774aad411283b27785fbd20',
    2020            'dev_requirement' => false,
    2121        ),
  • wunderautomation/trunk/wunderautomation.php

    r2691051 r2724198  
    1616 * Plugin URI:        https://www.wundermatics.com/wunderautomation/
    1717 * Description:       A wunderful automation tool for WordPress and WooCommerce
    18  * Version:           1.8.1
     18 * Version:           1.9.0
    1919 * Author:            Wundermatics
    2020 * Author URI:        https://wundermatics.com/about
     
    3434}
    3535
    36 $wunderautomation_version = '1.8.1';
     36$wunderautomation_version = '1.9.0';
    3737$wunderautomation_db_version = '1.6.0';
    3838$wunderautomation_is_pro     = false;
Note: See TracChangeset for help on using the changeset viewer.