小编lil*_*uit的帖子

如何在woocommerce管理产品列表中添加/删除列

我想在查看产品列表时在管理员中自定义Woocommerce中的列.

具体来说,我想删除一些列,并添加几个自定义字段列.

我尝试了在线列出的许多解决方案,我可以删除列并添加新的列,如下所示:

add_filter( 'manage_edit-product_columns', 'show_product_order',15 );
function show_product_order($columns){

   //remove column
   unset( $columns['tags'] );

   //add column
   $columns['offercode'] = __( 'Offer Code'); 

   return $columns;
}
Run Code Online (Sandbox Code Playgroud)

但是,如何使用实际产品数据填充新列(在本例中,称为"offercode"的自定义字段)?

php wordpress product backend woocommerce

19
推荐指数
2
解决办法
2万
查看次数

Flutter 小部件状态未更新 - 抛出“查找已停用小部件的祖先是不安全的”

我正在尝试使用此示例在 Flutter 中实现登录/注销。登录工作正常,控制台输出为:

flutter: LOGIN WIDGET BUILD CONTEXT:
flutter: LoginScreen(dirty, state: LoginScreenState#552db)
flutter: _ctx:
flutter: LoginScreen(state: LoginScreenState#552db)
Run Code Online (Sandbox Code Playgroud)

但是注销后,我无法重新登录(上下文丢失)。注销然后尝试重新登录后,onAuthStateChanged()注销后其中的上下文丢失:

flutter: LOGIN WIDGET BUILD CONTEXT:
flutter: LoginScreen(dirty, state: LoginScreenState#d112e)
flutter: _ctx
flutter: LoginScreen
Run Code Online (Sandbox Code Playgroud)

login.dart

class LoginScreen extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return new LoginScreenState();
  }
}
class LoginScreenState extends State<LoginScreen>

   BuildContext _ctx;

   @override
   onAuthStateChanged(AuthState state) {
      print("_ctx");
      print(_ctx.toString());   
      if(state == AuthState.LOGGED_IN) { 
         print("ready to login");
         Navigator.of(_ctx).pushReplacementNamed("/home");  
      } 
   }

   @override
   Widget build(BuildContext context) {
      _ctx = context; …
Run Code Online (Sandbox Code Playgroud)

flutter

9
推荐指数
2
解决办法
7987
查看次数

用textarea和键盘显示离子模态的正确方法

我有一个发送消息的模态,为了让键盘显示,我必须将焦点设置textarea在触发模态之后.

HTML

  <script id="new-post.html" type="text/ng-template">
  <div class="modal">
    <form ng-submit="sendPost(post)">
      <ion-header-bar class="bar-royal">
          <button class="button button-clear button-light" ng-click="closeNewPost()">Cancel</button>
          <h1 class="title">New Message</h1>
          <button type="submit" class="button button-clear">Post</button>          
      </ion-header-bar>
      <ion-content>

          <div class="list">
            <label class="item item-input">
              <textarea class="textareas" id="postMessageInput" ng-model="$parent.post.message" placeholder="What do you want to say?"  autofocus ></textarea>
            </label>
          </div>
      </ion-content>
    </form>
  </div>
Run Code Online (Sandbox Code Playgroud)

控制器:

$ionicModal.fromTemplateUrl('new-post.html', function(modal) {
    $scope.postModal = modal;
}, {
   scope: $scope,
   focusFirstInput: true
});
$scope.newPost = function() {
    $scope.postModal.show().then(document.getElementById('postMessageInput').focus());    
};
Run Code Online (Sandbox Code Playgroud)

会发生的是模态首先滑动,然后键盘向上滑动.当模态首次显示时,有时会出现屏幕闪烁.整个经历根本不顺利.有时,textarea甚至被推到模态标题下.

理想情况下,我希望使用已在视图上呈现的键盘向上滑动模态,就好像键盘嵌入到模态中一样.这就是其他应用程序(ios)似乎的工作方式.这是可能的,还是有一种标准方法用键盘和textarea显示模态?

angularjs ionic-framework

8
推荐指数
1
解决办法
8135
查看次数

使用ios上的cordova媒体捕获通过mp4格式保存视频

我正在使用cordova媒体捕获插件,以便使用摄像机在Ionic项目中捕获视频.工作得很好,除了它记录在quicktime MOV(我目前只在ios工作).

是否有可能在MP4中录制?

我想我需要在capture命令的options参数中以某种方式指定mp4:

navigator.device.capture.captureVideo(captureSuccess, captureError, options);
Run Code Online (Sandbox Code Playgroud)

但是当我尝试以这种方式获得格式时:

navigator.device.capture.supportedVideoModes
Run Code Online (Sandbox Code Playgroud)

我只得到一个空数组.

ios cordova ionic-framework cordova-plugins

7
推荐指数
0
解决办法
1058
查看次数

如何在 Flutter 中将参数传递给小部件

我正在 Flutter 中打开一个模态对话框,并希望将单个参数 (postId) 传递给模态以进行进一步处理。但这会产生如图所示的错误。

class SharingDialog extends StatefulWidget {
 @override

 final String postId;  // <--- generates the error, "Field doesn't override an inherited getter or setter"
 SharingDialog({
   String postId
 }): this.postId = postId;

 SharingDialogState createState() => new SharingDialogState(postId);
}

class SharingDialogState extends State<SharingDialog> {

 SharingDialogState(this.postId);
 final String postId;

 @override
 Widget build(BuildContext context) {
   return new Scaffold(
     appBar: 
       child: AppBar(           
         title: const Text('Share this Post'),
      actions: [
        new FlatButton(
          onPressed: () {
            print("Sharing Post ID: " + this.postId);
          },
          child: …
Run Code Online (Sandbox Code Playgroud)

dart flutter

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

如何将公历日期(以秒为单位)转换为PHP中的unix时间戳

我有一个web服务返回格里高利秒的时间戳.

如何将格里高利日期(以秒为单位)转换为PHP中的unix时间戳?

php datetime gregorian-calendar

6
推荐指数
1
解决办法
4547
查看次数

Android ViewPager2 - 如何检测用户发起的页面更改

我有 ViewPager2 回调设置,但需要检测用户启动的页面更改何时完成。回调不会区分用户启动和代码启动。这是我现在所拥有的:

ViewPager2.OnPageChangeCallback swipeListener = new ViewPager2.OnPageChangeCallback() {
        @Override
        public void onPageSelected(int position) {
            //I want to run code only if user initiated this page change
            //but this runs whether user initiated or code initiated
        }
}
Run Code Online (Sandbox Code Playgroud)

通过代码完成的页面更改:

viewPager.setCurrentItem(targetSlide);
Run Code Online (Sandbox Code Playgroud)

ViewPager2 的文档显示了一种isUserInputEnabled()方法,可以告诉您用户是否“可以”手动更改页面,但我需要检测用户是否“确实”启动了页面更改。

java android android-viewpager2

6
推荐指数
1
解决办法
5345
查看次数

离子代理适用于离子服务,而不适用于ios模拟器或设备

我的离子应用程序中有一个简单的Web服务...它连接到远程服务器以执行简单的任务.

代理是以离子方式设置的,如下所示:

  "proxies": [{
     "path": "/api",
     "proxyUrl": "http://example.com/api"
   }]
Run Code Online (Sandbox Code Playgroud)

并且呼叫是"/ api".这些可以http://example.com/api在localhost浏览器中正确解析(使用离子服务器).

但是在xcode中,url被解析为:

file:///api
Run Code Online (Sandbox Code Playgroud)

我没有具体找到任何相关内容.怎么表明我要求ios?

xcode ios cordova ionic

5
推荐指数
1
解决办法
3818
查看次数

离子(angularjs)离子滑动盒,ng-repeat不更新

我有一个ion-slide-box使用ng-repeat显示从远程服务器获取的图像.

    <ion-slide-box on-slide-changed="slideChanged(index)" auto-play="true" does-continue="true">
      <ion-slide ng-repeat="slide in files">
        <img ng-src="{{slide.filename}}" > 
      </ion-slide>
    </ion-slide-box>
Run Code Online (Sandbox Code Playgroud)

和js:

  $scope.getFiles = function() {
     Files.query({  
        //some parameters

     }).$promise.then(function(data) {
        $scope.files = data;
  });
Run Code Online (Sandbox Code Playgroud)

当调用getFiles()(触发此处未显示的服务)时,$ scope.files会成功更新.但DOM(加载到离子滑动盒中的图像)不会自动更新.如何刷新DOM?我已经尝试过timeout(没有任何反应)和$scope.$apply(抛出$ dispatch已经引发的错误.)

即使这是一个移动应用程序,在桌面浏览器中进行测试时,我可以重新调整浏览器的大小,并自动显示图像.所以我要么弄清楚如何保持更新,要么找到一个更好的图像滑块/轮播使用.

angularjs ionic-framework

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

Ionic/AngularJS base64图像将不会显示

我试图在Ionic应用程序中简单地显示base64图像.

如果我这样做,图像将不会显示:

HTML:

 <img ng-src="data:image/jpeg;base64,{{myImage}}"/>
Run Code Online (Sandbox Code Playgroud)

控制器:

$scope.myImage= "/9j/4AAQSkZJ ...";
Run Code Online (Sandbox Code Playgroud)

但是如果我只是将编码的字符串直接放在图像元素中,则会显示图像:

 <img ng-src="data:image/jpeg;base64,/9j/4AAQSkZJ ..."/>
Run Code Online (Sandbox Code Playgroud)

我检查了每个不安全的安全设置,看了几十个其他的SO帖子等等.如果我把这个小例子放在CodePen中,它可以双向工作.

$scope.myImage变量会发生什么情况会阻止它绑定到图像元素?这是离子的吗?有角度的问题?

angularjs ionic-framework

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