标签: wordpress-plugin

显示WPGlobus插件的语言切换器按钮短代码 - Wordpress

我正在使用WPGlobus插件来制作网站多语言.小部件正在小部件区域中显示,但我想手动添加语言切换器按钮.我搜索它的短代码来显示语言切换器标志.但没有找到任何短代码.通过短代码手动显示按钮的最佳方法.

wordpress multilingual multiple-languages wordpress-plugin

4
推荐指数
1
解决办法
2457
查看次数

如何生成WordPress插件安装链接

我创建了一个插件,取代了我之前编写的插件,并添加了一些额外的东西.我想在我的旧插件的设置页面中创建一个警报,其中包含下载和安装我的新插件的链接,并告知他们开发人员不再支持旧插件.目前,从我的管理面板的插件页面,安装链接如下所示:

http://www.example.com/wp-admin/network/update.php?action=install-plugin&plugin=wptouch&_wpnonce=a8d64aa295
Run Code Online (Sandbox Code Playgroud)

在我看来,创建URI时至少要记住两件事:

  1. 检查这是否是多站点设置
  2. 确保我生成正确的nonce.

有谁知道如何正确地做到这一点?生成此URI时还需要考虑其他事项吗?

在此先感谢您的帮助.

wordpress wordpress-plugin nonce

3
推荐指数
1
解决办法
907
查看次数

当用户更新其电子邮件地址时,Wordpress挂钩/事件/操作

当用户更新其电子邮件地址时是否会触发任何钩子/事件/操作/方法?当用户更新其电子邮件地址时,我需要从我的插件中执行某些操作.有没有办法从我的插件检查,而不改变Wordpress的核心?

wordpress wordpress-plugin

3
推荐指数
1
解决办法
2140
查看次数

WP插件:在类中使用add_filter

我正在使用WP v3.3.1,我正在尝试制作一个插件.我已经半工作了.它启动了,add_action工作,但由于某些原因我的过滤器没有被触发.当我用Google搜索时,我看到我本应该这样做,但它不起作用.我也尝试将它包括在课外,这也没有用.错误日志是从构造函数写入的,但不是xmlAddMethod.我在单个文件中测试了xmlrpc调用,但是它有效,但是在编写类时遇到了问题.

//DOESN'T WORK HERE
add_filter( 'xmlrpc_methods', array( &$this, 'xmlAddMethod') );

class TargetDomain extends Domain 
{
    public function __construct() 
    {        
        error_log('TARGET: __construct');
        //DOESN'T WORK HERE EITHER
        add_filter( 'xmlrpc_methods', array( &$this, 'xmlAddMethod') );
        parent::__construct();
    }

    function xmlAddMethod( $methods ) 
    {
        error_log('TARGET: xml_add_method');
        $methods['myBlog.publishPost'] = 'publishMyPost';
        return $methods;
    }
Run Code Online (Sandbox Code Playgroud)

wordpress wordpress-plugin

3
推荐指数
2
解决办法
5561
查看次数

PHP - Wordpress - 插件小部件更新功能 - 更新数组值[Foreach循环不工作]

我正在开发一个带有小部件的wordpress插件.目前,小部件的更新功能如下所示.

function update($new, $old){
    $instance = $old;
    //Update Values
    $instance['element-one'] = $new['element-one'];
    $instance['element-two'] = $new['element-two'];
    $instance['element-three'] = $new['element-three'];
    $instance['element-four'] = $new['element-four'];
    //Return New Instance
    return $instance;
Run Code Online (Sandbox Code Playgroud)

这应该是应该的.但我有一长串的元素,为了清洁代码我试图用一个简单的功能实现它们如下:

function update($new, $old){
    $instance = $old;
    //Update Values
    foreach($instance as $k => $v){
        $instance[$k] = $new[$k];
    }
    //Return New Instance
    return $instance;
Run Code Online (Sandbox Code Playgroud)

虽然这似乎不起作用.如果我使用此功能,则不会更新Widget值.所以只是为了测试它是否按照我想要的方式工作......我写了一个工作正常的示例脚本.脚本如下.

$a = array(
  'a' => '1',
  'b' => '2',
  'c' => '3'
);

$b = array(
  'a' => 'A',
  'b' => 'B',
  'c' => 'C'
);

function swap_values($old, $new){
  $result …
Run Code Online (Sandbox Code Playgroud)

php foreach function wordpress-plugin

3
推荐指数
1
解决办法
2584
查看次数

在WordPress中将类方法作为回调函数传递

我正在寻找一种方法将类方法传递给回调函数参数.

我通常使用create_function()如下,但我听说它很慢并且很难调试.

add_action('init', create_function('', '$o = new AdminPageClass;'));
class AdminPageClass {

    function __construct() {
        add_action('admin_menu', array(&$this, 'admin_menu'));  
    }
    function admin_menu() {
        add_options_page(
            'Sample Admin Page Class', 
            'Sample Admin Page Class', 
            'manage_options',
            'sample_admin-page_class', 
            array(&$this, 'admin_page'));
    }
    function admin_page() {
        ?>
        <div class="wrap">
            <h1>Hi there</h1>
            <p>Hello World!</p>
        </div>
        <?php
    }
}
Run Code Online (Sandbox Code Playgroud)

当然,它可以通过这样的额外功能来完成; 但是,如果可能的话,我想在没有它的情况下这样做.

add_action('init', 'load_admin_page_class');
function load_admin_page_class() {
    $o = new AdminPageClass;
}
Run Code Online (Sandbox Code Playgroud)

此外,在它之前实例化类对象使其成为可能,但它也创建了一个额外的行.

$o = new AdminPageClass;
add_action('admin_menu', array(&$o, 'admin_menu'));

class AdminPageClass {

    function admin_menu() {
        add_options_page(
            'Sample Admin …
Run Code Online (Sandbox Code Playgroud)

php wordpress class wordpress-plugin

3
推荐指数
2
解决办法
7327
查看次数

WP Super Cache缓存损坏

我有一个模棱两可的错误。错误中的路径是正确的:

警告!WP Super Cache缓存损坏!脚本advanced-cache.php无法加载wp-cache-phase1.php。

请编辑/wp-content/advanced-cache.php,并确保/wp-content/plugins/wp-super-cache/wp-cache-phase1.php的路径正确。

需要解决什么?

wordpress wordpress-plugin

3
推荐指数
1
解决办法
1万
查看次数

调用未定义的函数add_options_page()

我为我的wordpress项目开发了插件.我用5.3 php在我的本地xampp服务器上成功测试了它.然后我用php 5.2将我的项目上传到web主机.我遇到的第一个麻烦是不支持php 5.2中的匿名函数.没问题,我用名字重新声明了所有功能.但后来我得到错误调用未定义的函数add_options_page(),我没有解释.Plz帮助我们提出建议

我的代码部分:

function mainPage(){
        ///some code
        }

function mainPage2(){

    add_options_page('Submissions of MAIN page contact form', 'Submissions of MAIN page contact form', 'manage_options','ea_submissions2', mainPage());

    }
add_action('admin_menu',mainPage2());
Run Code Online (Sandbox Code Playgroud)

我认为我的功能有问题,请仔细看看. 我认为php 5.2没有问题,这部分代码也不适用于php 5.3!我的代码有问题

wordpress wordpress-plugin

3
推荐指数
1
解决办法
2442
查看次数

复制/复制订单Woocommerce

任何人都知道如何从woocommmerce复制/复制订单并从旧订单创建新订单?

我在支付网关工作,在定期订阅付款后,我需要复制新订单并标记为付款!!!!

那可能吗?

干杯.

payment-gateway wordpress-plugin woocommerce

3
推荐指数
1
解决办法
4266
查看次数

Woocommerce仅在选择了特定付款方式的情况下运行javascript

我已经为Woocommerce开发了一个支付网关插件,它在很大程度上依赖于一些JavaScript,这些JavaScript会加载弹出窗口来捕获用户详细信息。仅当从单选按钮中选择该网关时,我才需要运行该javascript。由于某种原因,它不起作用。这是我的代码

jQuery(document).ready(function() {
  usingGateway();
  jQuery('form[name="checkout"] input[name="payment_method"]:checked').change(function(){
    usingGateway();
  });
});

function usingGateway(){
    console.log(jQuery("input[name='payment_method']:checked").val());
    if(jQuery('form[name="checkout"] input[name="payment_method"]:checked').val() == 'my_gateway'){
        console.log("Using my gateway");
        //Etc etc
    }else{
         console.log("Not using my gateway. Proceed as usual");
    }
}
Run Code Online (Sandbox Code Playgroud)

似乎woocommerce以某种方式覆盖了javascript,因为即使选中了单选按钮,我的payment_method的console.log始终是未定义的。然后,IF块将被跳过,并且始终显示“不使用我的网关。当我注释掉IF语句时,支付网关可以正常工作。

但是我需要它工作,因为如果用户选择其他付款方式(甚至是BACS或离线付款),则javascript仍会加载弹出窗口,并尝试使用我的自定义网关处理付款。

更新:根据rnevius的评论,我检查了woocommerce checkout.js并将其从那里复制到我的插件javascript中:

var payment_methods = jQuery('.woocommerce-checkout').find( 'input[name="payment_method"]' );
if ( 0 === payment_methods.filter( ':checked' ).size() ) {
payment_methods.eq(0).attr( 'checked', 'checked' );
}
Run Code Online (Sandbox Code Playgroud)

因此,基本上,如果尚未检查任何内容,woocommerce将强制检查第一项。不知道为什么我需要这样做,因为woocommerce已经在checkout.js中做到了,现在可以工作,但是如果我的网关还不是第一个选定的网关,那么“ change”功能仍然无法使用(当您更改到我的网关时)从另一个)。请帮忙。

javascript wordpress payment-gateway wordpress-plugin woocommerce

3
推荐指数
1
解决办法
2028
查看次数